giving up on porting fio. favors stdio

This commit is contained in:
hyung-hwan 2022-11-15 14:31:14 +00:00
parent 8f53d6c0fa
commit 1aeb22039e
8 changed files with 89 additions and 2005 deletions

View File

@ -41,7 +41,6 @@ include_HEADERS = \
hio-dns.h \ hio-dns.h \
hio-ecs.h \ hio-ecs.h \
hio-fcgi.h \ hio-fcgi.h \
hio-fio.h \
hio-fmt.h \ hio-fmt.h \
hio-htb.h \ hio-htb.h \
hio-htrd.h \ hio-htrd.h \
@ -77,7 +76,6 @@ libhio_la_SOURCES = \
ecs-imp.h \ ecs-imp.h \
err.c \ err.c \
fcgi-cli.c \ fcgi-cli.c \
fio.c \
fmt.c \ fmt.c \
fmt-imp.h \ fmt-imp.h \
htb.c \ htb.c \

View File

@ -148,8 +148,8 @@ libhio_la_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_3) $(am__DEPENDENCIES_4) $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_4)
am__libhio_la_SOURCES_DIST = chr.c dhcp-svr.c dns.c dns-cli.c ecs.c \ am__libhio_la_SOURCES_DIST = chr.c dhcp-svr.c dns.c dns-cli.c ecs.c \
ecs-imp.h err.c fcgi-cli.c fio.c fmt.c fmt-imp.h htb.c htrd.c \ ecs-imp.h err.c fcgi-cli.c fmt.c fmt-imp.h htb.c htrd.c htre.c \
htre.c http.c http-cgi.c http-fcgi.c http-file.c http-prv.h \ http.c http-cgi.c http-fcgi.c http-file.c http-prv.h \
http-svr.c http-thr.c http-txt.c json.c hio-prv.h hio.c md5.c \ http-svr.c http-thr.c http-txt.c json.c hio-prv.h hio.c md5.c \
nwif.c opt.c opt-imp.h path.c pipe.c pro.c pty.c rad-msg.c \ nwif.c opt.c opt-imp.h path.c pipe.c pro.c pty.c rad-msg.c \
sck.c shw.c skad.c sys.c sys-ass.c sys-err.c sys-log.c \ sck.c shw.c skad.c sys.c sys-ass.c sys-err.c sys-log.c \
@ -159,21 +159,20 @@ am__libhio_la_SOURCES_DIST = chr.c dhcp-svr.c dns.c dns-cli.c ecs.c \
@ENABLE_MARIADB_TRUE@ libhio_la-mar-cli.lo @ENABLE_MARIADB_TRUE@ libhio_la-mar-cli.lo
am_libhio_la_OBJECTS = libhio_la-chr.lo libhio_la-dhcp-svr.lo \ am_libhio_la_OBJECTS = libhio_la-chr.lo libhio_la-dhcp-svr.lo \
libhio_la-dns.lo libhio_la-dns-cli.lo libhio_la-ecs.lo \ libhio_la-dns.lo libhio_la-dns-cli.lo libhio_la-ecs.lo \
libhio_la-err.lo libhio_la-fcgi-cli.lo libhio_la-fio.lo \ libhio_la-err.lo libhio_la-fcgi-cli.lo libhio_la-fmt.lo \
libhio_la-fmt.lo libhio_la-htb.lo libhio_la-htrd.lo \ libhio_la-htb.lo libhio_la-htrd.lo libhio_la-htre.lo \
libhio_la-htre.lo libhio_la-http.lo libhio_la-http-cgi.lo \ libhio_la-http.lo libhio_la-http-cgi.lo libhio_la-http-fcgi.lo \
libhio_la-http-fcgi.lo libhio_la-http-file.lo \ libhio_la-http-file.lo libhio_la-http-svr.lo \
libhio_la-http-svr.lo libhio_la-http-thr.lo \ libhio_la-http-thr.lo libhio_la-http-txt.lo libhio_la-json.lo \
libhio_la-http-txt.lo libhio_la-json.lo libhio_la-hio.lo \ libhio_la-hio.lo libhio_la-md5.lo libhio_la-nwif.lo \
libhio_la-md5.lo libhio_la-nwif.lo libhio_la-opt.lo \ libhio_la-opt.lo libhio_la-path.lo libhio_la-pipe.lo \
libhio_la-path.lo libhio_la-pipe.lo libhio_la-pro.lo \ libhio_la-pro.lo libhio_la-pty.lo libhio_la-rad-msg.lo \
libhio_la-pty.lo libhio_la-rad-msg.lo libhio_la-sck.lo \ libhio_la-sck.lo libhio_la-shw.lo libhio_la-skad.lo \
libhio_la-shw.lo libhio_la-skad.lo libhio_la-sys.lo \ libhio_la-sys.lo libhio_la-sys-ass.lo libhio_la-sys-err.lo \
libhio_la-sys-ass.lo libhio_la-sys-err.lo libhio_la-sys-log.lo \ libhio_la-sys-log.lo libhio_la-sys-mux.lo libhio_la-sys-tim.lo \
libhio_la-sys-mux.lo libhio_la-sys-tim.lo libhio_la-thr.lo \ libhio_la-thr.lo libhio_la-tar.lo libhio_la-tmr.lo \
libhio_la-tar.lo libhio_la-tmr.lo libhio_la-utf8.lo \ libhio_la-utf8.lo libhio_la-utl.lo libhio_la-utl-siph.lo \
libhio_la-utl.lo libhio_la-utl-siph.lo libhio_la-utl-str.lo \ libhio_la-utl-str.lo $(am__objects_1)
$(am__objects_1)
libhio_la_OBJECTS = $(am_libhio_la_OBJECTS) libhio_la_OBJECTS = $(am_libhio_la_OBJECTS)
AM_V_lt = $(am__v_lt_@AM_V@) AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
@ -203,9 +202,9 @@ am__depfiles_remade = ./$(DEPDIR)/libhio_la-chr.Plo \
./$(DEPDIR)/libhio_la-dns.Plo ./$(DEPDIR)/libhio_la-ecs.Plo \ ./$(DEPDIR)/libhio_la-dns.Plo ./$(DEPDIR)/libhio_la-ecs.Plo \
./$(DEPDIR)/libhio_la-err.Plo \ ./$(DEPDIR)/libhio_la-err.Plo \
./$(DEPDIR)/libhio_la-fcgi-cli.Plo \ ./$(DEPDIR)/libhio_la-fcgi-cli.Plo \
./$(DEPDIR)/libhio_la-fio.Plo ./$(DEPDIR)/libhio_la-fmt.Plo \ ./$(DEPDIR)/libhio_la-fmt.Plo ./$(DEPDIR)/libhio_la-hio.Plo \
./$(DEPDIR)/libhio_la-hio.Plo ./$(DEPDIR)/libhio_la-htb.Plo \ ./$(DEPDIR)/libhio_la-htb.Plo ./$(DEPDIR)/libhio_la-htrd.Plo \
./$(DEPDIR)/libhio_la-htrd.Plo ./$(DEPDIR)/libhio_la-htre.Plo \ ./$(DEPDIR)/libhio_la-htre.Plo \
./$(DEPDIR)/libhio_la-http-cgi.Plo \ ./$(DEPDIR)/libhio_la-http-cgi.Plo \
./$(DEPDIR)/libhio_la-http-fcgi.Plo \ ./$(DEPDIR)/libhio_la-http-fcgi.Plo \
./$(DEPDIR)/libhio_la-http-file.Plo \ ./$(DEPDIR)/libhio_la-http-file.Plo \
@ -259,11 +258,11 @@ am__can_run_installinfo = \
*) (install-info --version) >/dev/null 2>&1;; \ *) (install-info --version) >/dev/null 2>&1;; \
esac esac
am__include_HEADERS_DIST = hio-chr.h hio-cmn.h hio-dhcp.h hio-dns.h \ am__include_HEADERS_DIST = hio-chr.h hio-cmn.h hio-dhcp.h hio-dns.h \
hio-ecs.h hio-fcgi.h hio-fio.h hio-fmt.h hio-htb.h hio-htrd.h \ hio-ecs.h hio-fcgi.h hio-fmt.h hio-htb.h hio-htrd.h hio-htre.h \
hio-htre.h hio-http.h hio-json.h hio-md5.h hio-nwif.h \ hio-http.h hio-json.h hio-md5.h hio-nwif.h hio-opt.h \
hio-opt.h hio-pac1.h hio-path.h hio-pipe.h hio-pro.h hio-pty.h \ hio-pac1.h hio-path.h hio-pipe.h hio-pro.h hio-pty.h hio-rad.h \
hio-rad.h hio-sck.h hio-shw.h hio-skad.h hio-str.h hio-tar.h \ hio-sck.h hio-shw.h hio-skad.h hio-str.h hio-tar.h hio-thr.h \
hio-thr.h hio-upac.h hio-utl.h hio.h hio-mar.h hio-upac.h hio-utl.h hio.h hio-mar.h
HEADERS = $(include_HEADERS) HEADERS = $(include_HEADERS)
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \ am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \
hio-cfg.h.in hio-cfg.h.in
@ -462,20 +461,20 @@ LIBADD_LIB_COMMON = $(LIBM)
# Never list hio-cfg.h in include_HEADERS. # Never list hio-cfg.h in include_HEADERS.
include_HEADERS = hio-chr.h hio-cmn.h hio-dhcp.h hio-dns.h hio-ecs.h \ include_HEADERS = hio-chr.h hio-cmn.h hio-dhcp.h hio-dns.h hio-ecs.h \
hio-fcgi.h hio-fio.h hio-fmt.h hio-htb.h hio-htrd.h hio-htre.h \ hio-fcgi.h hio-fmt.h hio-htb.h hio-htrd.h hio-htre.h \
hio-http.h hio-json.h hio-md5.h hio-nwif.h hio-opt.h \ hio-http.h hio-json.h hio-md5.h hio-nwif.h hio-opt.h \
hio-pac1.h hio-path.h hio-pipe.h hio-pro.h hio-pty.h hio-rad.h \ hio-pac1.h hio-path.h hio-pipe.h hio-pro.h hio-pty.h hio-rad.h \
hio-sck.h hio-shw.h hio-skad.h hio-str.h hio-tar.h hio-thr.h \ hio-sck.h hio-shw.h hio-skad.h hio-str.h hio-tar.h hio-thr.h \
hio-upac.h hio-utl.h hio.h $(am__append_1) hio-upac.h hio-utl.h hio.h $(am__append_1)
lib_LTLIBRARIES = libhio.la lib_LTLIBRARIES = libhio.la
libhio_la_SOURCES = chr.c dhcp-svr.c dns.c dns-cli.c ecs.c ecs-imp.h \ libhio_la_SOURCES = chr.c dhcp-svr.c dns.c dns-cli.c ecs.c ecs-imp.h \
err.c fcgi-cli.c fio.c fmt.c fmt-imp.h htb.c htrd.c htre.c \ err.c fcgi-cli.c fmt.c fmt-imp.h htb.c htrd.c htre.c http.c \
http.c http-cgi.c http-fcgi.c http-file.c http-prv.h \ http-cgi.c http-fcgi.c http-file.c http-prv.h http-svr.c \
http-svr.c http-thr.c http-txt.c json.c hio-prv.h hio.c md5.c \ http-thr.c http-txt.c json.c hio-prv.h hio.c md5.c nwif.c \
nwif.c opt.c opt-imp.h path.c pipe.c pro.c pty.c rad-msg.c \ opt.c opt-imp.h path.c pipe.c pro.c pty.c rad-msg.c sck.c \
sck.c shw.c skad.c sys.c sys-ass.c sys-err.c sys-log.c \ shw.c skad.c sys.c sys-ass.c sys-err.c sys-log.c sys-mux.c \
sys-mux.c sys-prv.h sys-tim.c thr.c uch-case.h uch-prop.h \ sys-prv.h sys-tim.c thr.c uch-case.h uch-prop.h tar.c tmr.c \
tar.c tmr.c utf8.c utl.c utl-siph.c utl-str.c $(am__append_2) utf8.c utl.c utl-siph.c utl-str.c $(am__append_2)
libhio_la_CPPFLAGS = $(CPPFLAGS_LIB_COMMON) libhio_la_CPPFLAGS = $(CPPFLAGS_LIB_COMMON)
libhio_la_CFLAGS = $(CFLAGS_LIB_COMMON) $(am__append_3) libhio_la_CFLAGS = $(CFLAGS_LIB_COMMON) $(am__append_3)
libhio_la_LDFLAGS = $(LDFLAGS_LIB_COMMON) $(am__append_4) libhio_la_LDFLAGS = $(LDFLAGS_LIB_COMMON) $(am__append_4)
@ -582,7 +581,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhio_la-ecs.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhio_la-ecs.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhio_la-err.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhio_la-err.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhio_la-fcgi-cli.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhio_la-fcgi-cli.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhio_la-fio.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhio_la-fmt.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhio_la-fmt.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhio_la-hio.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhio_la-hio.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhio_la-htb.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhio_la-htb.Plo@am__quote@ # am--include-marker
@ -702,13 +700,6 @@ libhio_la-fcgi-cli.lo: fcgi-cli.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhio_la_CPPFLAGS) $(CPPFLAGS) $(libhio_la_CFLAGS) $(CFLAGS) -c -o libhio_la-fcgi-cli.lo `test -f 'fcgi-cli.c' || echo '$(srcdir)/'`fcgi-cli.c @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhio_la_CPPFLAGS) $(CPPFLAGS) $(libhio_la_CFLAGS) $(CFLAGS) -c -o libhio_la-fcgi-cli.lo `test -f 'fcgi-cli.c' || echo '$(srcdir)/'`fcgi-cli.c
libhio_la-fio.lo: fio.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhio_la_CPPFLAGS) $(CPPFLAGS) $(libhio_la_CFLAGS) $(CFLAGS) -MT libhio_la-fio.lo -MD -MP -MF $(DEPDIR)/libhio_la-fio.Tpo -c -o libhio_la-fio.lo `test -f 'fio.c' || echo '$(srcdir)/'`fio.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libhio_la-fio.Tpo $(DEPDIR)/libhio_la-fio.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fio.c' object='libhio_la-fio.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhio_la_CPPFLAGS) $(CPPFLAGS) $(libhio_la_CFLAGS) $(CFLAGS) -c -o libhio_la-fio.lo `test -f 'fio.c' || echo '$(srcdir)/'`fio.c
libhio_la-fmt.lo: fmt.c libhio_la-fmt.lo: fmt.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhio_la_CPPFLAGS) $(CPPFLAGS) $(libhio_la_CFLAGS) $(CFLAGS) -MT libhio_la-fmt.lo -MD -MP -MF $(DEPDIR)/libhio_la-fmt.Tpo -c -o libhio_la-fmt.lo `test -f 'fmt.c' || echo '$(srcdir)/'`fmt.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhio_la_CPPFLAGS) $(CPPFLAGS) $(libhio_la_CFLAGS) $(CFLAGS) -MT libhio_la-fmt.lo -MD -MP -MF $(DEPDIR)/libhio_la-fmt.Tpo -c -o libhio_la-fmt.lo `test -f 'fmt.c' || echo '$(srcdir)/'`fmt.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libhio_la-fmt.Tpo $(DEPDIR)/libhio_la-fmt.Plo @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libhio_la-fmt.Tpo $(DEPDIR)/libhio_la-fmt.Plo
@ -1148,7 +1139,6 @@ distclean: distclean-am
-rm -f ./$(DEPDIR)/libhio_la-ecs.Plo -rm -f ./$(DEPDIR)/libhio_la-ecs.Plo
-rm -f ./$(DEPDIR)/libhio_la-err.Plo -rm -f ./$(DEPDIR)/libhio_la-err.Plo
-rm -f ./$(DEPDIR)/libhio_la-fcgi-cli.Plo -rm -f ./$(DEPDIR)/libhio_la-fcgi-cli.Plo
-rm -f ./$(DEPDIR)/libhio_la-fio.Plo
-rm -f ./$(DEPDIR)/libhio_la-fmt.Plo -rm -f ./$(DEPDIR)/libhio_la-fmt.Plo
-rm -f ./$(DEPDIR)/libhio_la-hio.Plo -rm -f ./$(DEPDIR)/libhio_la-hio.Plo
-rm -f ./$(DEPDIR)/libhio_la-htb.Plo -rm -f ./$(DEPDIR)/libhio_la-htb.Plo
@ -1241,7 +1231,6 @@ maintainer-clean: maintainer-clean-am
-rm -f ./$(DEPDIR)/libhio_la-ecs.Plo -rm -f ./$(DEPDIR)/libhio_la-ecs.Plo
-rm -f ./$(DEPDIR)/libhio_la-err.Plo -rm -f ./$(DEPDIR)/libhio_la-err.Plo
-rm -f ./$(DEPDIR)/libhio_la-fcgi-cli.Plo -rm -f ./$(DEPDIR)/libhio_la-fcgi-cli.Plo
-rm -f ./$(DEPDIR)/libhio_la-fio.Plo
-rm -f ./$(DEPDIR)/libhio_la-fmt.Plo -rm -f ./$(DEPDIR)/libhio_la-fmt.Plo
-rm -f ./$(DEPDIR)/libhio_la-hio.Plo -rm -f ./$(DEPDIR)/libhio_la-hio.Plo
-rm -f ./$(DEPDIR)/libhio_la-htb.Plo -rm -f ./$(DEPDIR)/libhio_la-htb.Plo

View File

@ -37,27 +37,28 @@ static hio_ooch_t errstr_8[] = {'e', 'x', 'i', 's', 't', 'i', 'n', 'g', '/', 'd'
static hio_ooch_t errstr_9[] = {'s', 'y', 's', 't', 'e', 'm', ' ', 'b', 'u', 's', 'y', '\0' }; static hio_ooch_t errstr_9[] = {'s', 'y', 's', 't', 'e', 'm', ' ', 'b', 'u', 's', 'y', '\0' };
static hio_ooch_t errstr_10[] = {'a', 'c', 'c', 'e', 's', 's', ' ', 'd', 'e', 'n', 'i', 'e', 'd', '\0' }; static hio_ooch_t errstr_10[] = {'a', 'c', 'c', 'e', 's', 's', ' ', 'd', 'e', 'n', 'i', 'e', 'd', '\0' };
static hio_ooch_t errstr_11[] = {'o', 'p', 'e', 'r', 'a', 't', 'i', 'o', 'n', ' ', 'n', 'o', 't', ' ', 'p', 'e', 'r', 'm', 'i', 't', 't', 'e', 'd', '\0' }; static hio_ooch_t errstr_11[] = {'o', 'p', 'e', 'r', 'a', 't', 'i', 'o', 'n', ' ', 'n', 'o', 't', ' ', 'p', 'e', 'r', 'm', 'i', 't', 't', 'e', 'd', '\0' };
static hio_ooch_t errstr_12[] = {'n', 'o', 't', ' ', 'd', 'i', 'r', 'e', 'c', 't', 'o', 'r', 'y', '\0' }; static hio_ooch_t errstr_12[] = {'i', 's', ' ', 'd', 'i', 'r', 'e', 'c', 't', 'o', 'r', 'y', '\0' };
static hio_ooch_t errstr_13[] = {'i', 'n', 't', 'e', 'r', 'r', 'u', 'p', 't', 'e', 'd', '\0' }; static hio_ooch_t errstr_13[] = {'n', 'o', 't', ' ', 'd', 'i', 'r', 'e', 'c', 't', 'o', 'r', 'y', '\0' };
static hio_ooch_t errstr_14[] = {'p', 'i', 'p', 'e', ' ', 'e', 'r', 'r', 'o', 'r', '\0' }; static hio_ooch_t errstr_14[] = {'i', 'n', 't', 'e', 'r', 'r', 'u', 'p', 't', 'e', 'd', '\0' };
static hio_ooch_t errstr_15[] = {'r', 'e', 's', 'o', 'u', 'r', 'c', 'e', ' ', 't', 'e', 'm', 'p', 'o', 'r', 'a', 'r', 'i', 'l', 'y', ' ', 'u', 'n', 'a', 'v', 'a', 'i', 'l', 'a', 'b', 'l', 'e', '\0' }; static hio_ooch_t errstr_15[] = {'p', 'i', 'p', 'e', ' ', 'e', 'r', 'r', 'o', 'r', '\0' };
static hio_ooch_t errstr_16[] = {'b', 'a', 'd', ' ', 's', 'y', 's', 't', 'e', 'm', ' ', 'h', 'a', 'n', 'd', 'l', 'e', '\0' }; static hio_ooch_t errstr_16[] = {'r', 'e', 's', 'o', 'u', 'r', 'c', 'e', ' ', 't', 'e', 'm', 'p', 'o', 'r', 'a', 'r', 'i', 'l', 'y', ' ', 'u', 'n', 'a', 'v', 'a', 'i', 'l', 'a', 'b', 'l', 'e', '\0' };
static hio_ooch_t errstr_17[] = {'b', 'a', 'd', ' ', 'r', 'e', 'q', 'u', 'e', 's', 't', ' ', 'o', 'r', ' ', 'r', 'e', 's', 'p', 'o', 'n', 's', 'e', '\0' }; static hio_ooch_t errstr_17[] = {'b', 'a', 'd', ' ', 's', 'y', 's', 't', 'e', 'm', ' ', 'h', 'a', 'n', 'd', 'l', 'e', '\0' };
static hio_ooch_t errstr_18[] = {'t', 'o', 'o', ' ', 'm', 'a', 'n', 'y', ' ', 'o', 'p', 'e', 'n', ' ', 'f', 'i', 'l', 'e', 's', '\0' }; static hio_ooch_t errstr_18[] = {'b', 'a', 'd', ' ', 'r', 'e', 'q', 'u', 'e', 's', 't', ' ', 'o', 'r', ' ', 'r', 'e', 's', 'p', 'o', 'n', 's', 'e', '\0' };
static hio_ooch_t errstr_19[] = {'t', 'o', 'o', ' ', 'm', 'a', 'n', 'y', ' ', 'o', 'p', 'e', 'n', ' ', 'f', 'i', 'l', 'e', 's', '\0' }; static hio_ooch_t errstr_19[] = {'t', 'o', 'o', ' ', 'm', 'a', 'n', 'y', ' ', 'o', 'p', 'e', 'n', ' ', 'f', 'i', 'l', 'e', 's', '\0' };
static hio_ooch_t errstr_20[] = {'I', '/', 'O', ' ', 'e', 'r', 'r', 'o', 'r', '\0' }; static hio_ooch_t errstr_20[] = {'t', 'o', 'o', ' ', 'm', 'a', 'n', 'y', ' ', 'o', 'p', 'e', 'n', ' ', 'f', 'i', 'l', 'e', 's', '\0' };
static hio_ooch_t errstr_21[] = {'e', 'n', 'c', 'o', 'd', 'i', 'n', 'g', ' ', 'c', 'o', 'n', 'v', 'e', 'r', 's', 'i', 'o', 'n', ' ', 'e', 'r', 'r', 'o', 'r', '\0' }; static hio_ooch_t errstr_21[] = {'I', '/', 'O', ' ', 'e', 'r', 'r', 'o', 'r', '\0' };
static hio_ooch_t errstr_22[] = {'i', 'n', 's', 'u', 'f', 'f', 'i', 'c', 'i', 'e', 'n', 't', ' ', 'd', 'a', 't', 'a', ' ', 'f', 'o', 'r', ' ', 'e', 'n', 'c', 'o', 'd', 'i', 'n', 'g', ' ', 'c', 'o', 'n', 'v', 'e', 'r', 's', 'i', 'o', 'n', '\0' }; static hio_ooch_t errstr_22[] = {'e', 'n', 'c', 'o', 'd', 'i', 'n', 'g', ' ', 'c', 'o', 'n', 'v', 'e', 'r', 's', 'i', 'o', 'n', ' ', 'e', 'r', 'r', 'o', 'r', '\0' };
static hio_ooch_t errstr_23[] = {'b', 'u', 'f', 'f', 'e', 'r', ' ', 'f', 'u', 'l', 'l', '\0' }; static hio_ooch_t errstr_23[] = {'i', 'n', 's', 'u', 'f', 'f', 'i', 'c', 'i', 'e', 'n', 't', ' ', 'd', 'a', 't', 'a', ' ', 'f', 'o', 'r', ' ', 'e', 'n', 'c', 'o', 'd', 'i', 'n', 'g', ' ', 'c', 'o', 'n', 'v', 'e', 'r', 's', 'i', 'o', 'n', '\0' };
static hio_ooch_t errstr_24[] = {'c', 'o', 'n', 'n', 'e', 'c', 't', 'i', 'o', 'n', ' ', 'l', 'o', 's', 't', '\0' }; static hio_ooch_t errstr_24[] = {'b', 'u', 'f', 'f', 'e', 'r', ' ', 'f', 'u', 'l', 'l', '\0' };
static hio_ooch_t errstr_25[] = {'c', 'o', 'n', 'n', 'e', 'c', 't', 'i', 'o', 'n', ' ', 'r', 'e', 'f', 'u', 's', 'e', 'd', '\0' }; static hio_ooch_t errstr_25[] = {'c', 'o', 'n', 'n', 'e', 'c', 't', 'i', 'o', 'n', ' ', 'l', 'o', 's', 't', '\0' };
static hio_ooch_t errstr_26[] = {'c', 'o', 'n', 'n', 'e', 'c', 't', 'i', 'o', 'n', ' ', 'r', 'e', 's', 'e', 't', '\0' }; static hio_ooch_t errstr_26[] = {'c', 'o', 'n', 'n', 'e', 'c', 't', 'i', 'o', 'n', ' ', 'r', 'e', 'f', 'u', 's', 'e', 'd', '\0' };
static hio_ooch_t errstr_27[] = {'n', 'o', ' ', 'c', 'a', 'p', 'a', 'b', 'i', 'l', 'i', 't', 'y', '\0' }; static hio_ooch_t errstr_27[] = {'c', 'o', 'n', 'n', 'e', 'c', 't', 'i', 'o', 'n', ' ', 'r', 'e', 's', 'e', 't', '\0' };
static hio_ooch_t errstr_28[] = {'t', 'i', 'm', 'e', 'd', ' ', 'o', 'u', 't', '\0' }; static hio_ooch_t errstr_28[] = {'n', 'o', ' ', 'c', 'a', 'p', 'a', 'b', 'i', 'l', 'i', 't', 'y', '\0' };
static hio_ooch_t errstr_29[] = {'n', 'o', ' ', 'r', 'e', 's', 'p', 'o', 'n', 's', 'e', '\0' }; static hio_ooch_t errstr_29[] = {'t', 'i', 'm', 'e', 'd', ' ', 'o', 'u', 't', '\0' };
static hio_ooch_t errstr_30[] = {'u', 'n', 'a', 'b', 'l', 'e', ' ', 't', 'o', ' ', 'm', 'a', 'k', 'e', ' ', 'd', 'e', 'v', 'i', 'c', 'e', '\0' }; static hio_ooch_t errstr_30[] = {'n', 'o', ' ', 'r', 'e', 's', 'p', 'o', 'n', 's', 'e', '\0' };
static hio_ooch_t errstr_31[] = {'d', 'e', 'v', 'i', 'c', 'e', ' ', 'e', 'r', 'r', 'o', 'r', '\0' }; static hio_ooch_t errstr_31[] = {'u', 'n', 'a', 'b', 'l', 'e', ' ', 't', 'o', ' ', 'm', 'a', 'k', 'e', ' ', 'd', 'e', 'v', 'i', 'c', 'e', '\0' };
static hio_ooch_t errstr_32[] = {'d', 'e', 'v', 'i', 'c', 'e', ' ', 'h', 'a', 'n', 'g', '-', 'u', 'p', '\0' }; static hio_ooch_t errstr_32[] = {'d', 'e', 'v', 'i', 'c', 'e', ' ', 'e', 'r', 'r', 'o', 'r', '\0' };
static hio_ooch_t errstr_33[] = {'d', 'e', 'v', 'i', 'c', 'e', ' ', 'h', 'a', 'n', 'g', '-', 'u', 'p', '\0' };
static hio_ooch_t* errstr[] = static hio_ooch_t* errstr[] =
{ {
errstr_0, errstr_1, errstr_2, errstr_3, errstr_4, errstr_0, errstr_1, errstr_2, errstr_3, errstr_4,
@ -66,7 +67,7 @@ static hio_ooch_t* errstr[] =
errstr_15, errstr_16, errstr_17, errstr_18, errstr_19, errstr_15, errstr_16, errstr_17, errstr_18, errstr_19,
errstr_20, errstr_21, errstr_22, errstr_23, errstr_24, errstr_20, errstr_21, errstr_22, errstr_23, errstr_24,
errstr_25, errstr_26, errstr_27, errstr_28, errstr_29, errstr_25, errstr_26, errstr_27, errstr_28, errstr_29,
errstr_30, errstr_31, errstr_32 errstr_30, errstr_31, errstr_32, errstr_33
}; };

1635
lib/fio.c

File diff suppressed because it is too large Load Diff

View File

@ -1,293 +0,0 @@
/*
Copyright (c) 2016-2020 Chung, Hyung-Hwan. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef _HIO_FIO_H_
#define _HIO_FIO_H_
#include <hio-cmn.h>
enum hio_fio_flag_t
{
/* (1 << 0) to (1 << 7) reserved for hio_sio_flag_t.
* see <hio/cmn/sio.h>. nerver use this value. */
HIO_FIO_RESERVED = 0xFF,
/** treat the file name pointer as a handle pointer */
HIO_FIO_HANDLE = (1 << 8),
/** treat the file name pointer as a pointer to file name
* template to use when making a temporary file name */
HIO_FIO_TEMPORARY = (1 << 9),
/** don't close an I/O handle in hio_fio_fini() and hio_fio_close() */
HIO_FIO_NOCLOSE = (1 << 10),
/** treat the path name as a multi-byte string */
HIO_FIO_BCSTRPATH = (1 << 11),
/* normal open flags */
HIO_FIO_READ = (1 << 14),
HIO_FIO_WRITE = (1 << 15),
HIO_FIO_APPEND = (1 << 16),
HIO_FIO_CREATE = (1 << 17),
HIO_FIO_TRUNCATE = (1 << 18),
HIO_FIO_EXCLUSIVE = (1 << 19),
HIO_FIO_SYNC = (1 << 20),
/* do not follow a symbolic link, only on a supported platform */
HIO_FIO_NOFOLLOW = (1 << 23),
/* for WIN32 only. harmless(no effect) when used on other platforms */
HIO_FIO_NOSHREAD = (1 << 24),
HIO_FIO_NOSHWRITE = (1 << 25),
HIO_FIO_NOSHDELETE = (1 << 26),
/* hints to OS. harmless(no effect) when used on unsupported platforms */
HIO_FIO_RANDOM = (1 << 27), /* hint that access be random */
HIO_FIO_SEQUENTIAL = (1 << 28) /* hint that access is sequential */
};
enum hio_fio_std_t
{
HIO_FIO_STDIN = 0,
HIO_FIO_STDOUT = 1,
HIO_FIO_STDERR = 2
};
typedef enum hio_fio_std_t hio_fio_std_t;
/* seek origin */
enum hio_fio_ori_t
{
HIO_FIO_BEGIN = 0,
HIO_FIO_CURRENT = 1,
HIO_FIO_END = 2
};
/* file origin for seek */
typedef enum hio_fio_ori_t hio_fio_ori_t;
enum hio_fio_mode_t
{
HIO_FIO_SUID = 04000, /* set UID */
HIO_FIO_SGID = 02000, /* set GID */
HIO_FIO_SVTX = 01000, /* sticky bit */
HIO_FIO_RUSR = 00400, /* can be read by owner */
HIO_FIO_WUSR = 00200, /* can be written by owner */
HIO_FIO_XUSR = 00100, /* can be executed by owner */
HIO_FIO_RGRP = 00040, /* can be read by group */
HIO_FIO_WGRP = 00020, /* can be written by group */
HIO_FIO_XGRP = 00010, /* can be executed by group */
HIO_FIO_ROTH = 00004, /* can be read by others */
HIO_FIO_WOTH = 00002, /* can be written by others */
HIO_FIO_XOTH = 00001 /* can be executed by others */
};
#if defined(_WIN32)
/* <winnt.h> => typedef PVOID HANDLE; */
typedef void* hio_fio_hnd_t;
#elif defined(__OS2__)
/* <os2def.h> => typedef LHANDLE HFILE;
typedef unsigned long LHANDLE; */
typedef unsigned long hio_fio_hnd_t;
#elif defined(__DOS__)
typedef int hio_fio_hnd_t;
#elif defined(vms) || defined(__vms)
typedef void* hio_fio_hnd_t; /* struct FAB*, struct RAB* */
#else
typedef int hio_fio_hnd_t;
#endif
/* file offset */
typedef hio_foff_t hio_fio_off_t;
typedef struct hio_fio_t hio_fio_t;
typedef struct hio_fio_lck_t hio_fio_lck_t;
struct hio_fio_t
{
hio_t* gem;
hio_fio_hnd_t handle;
int status;
};
struct hio_fio_lck_t
{
int type; /* READ, WRITE */
hio_fio_off_t offset; /* starting offset */
hio_fio_off_t length; /* length */
hio_fio_ori_t origin; /* origin */
};
#define HIO_FIO_HANDLE(fio) ((fio)->handle)
#if defined(__cplusplus)
extern "C" {
#endif
/**
* The hio_fio_open() function opens a file.
* To open a file, you should set the flags with at least one of
* HIO_FIO_READ, HIO_FIO_WRITE, HIO_FIO_APPEND.
*
* If the #HIO_FIO_HANDLE flag is set, the \a path parameter is interpreted
* as a pointer to hio_fio_hnd_t.
*
* If the #HIO_FIO_TEMPORARY flag is set, the \a path parameter is
* interpreted as a path name template and an actual file name to open
* is internally generated using the template. The \a path parameter
* is filled with the last actual path name attempted when the function
* returns. So, you must not pass a constant string to the \a path
* parameter when #HIO_FIO_TEMPORARY is set.
*/
HIO_EXPORT hio_fio_t* hio_fio_open (
hio_gem_t* gem,
hio_oow_t xtnsize,
const hio_ooch_t* path,
int flags,
int mode
);
/**
* The hio_fio_close() function closes a file.
*/
HIO_EXPORT void hio_fio_close (
hio_fio_t* fio
);
/**
* The hio_fio_close() function opens a file into \a fio.
*/
HIO_EXPORT int hio_fio_init (
hio_fio_t* fio,
hio_gem_t* gem,
const hio_ooch_t* path,
int flags,
int mode
);
/**
* The hio_fio_close() function finalizes a file by closing the handle
* stored in @a fio.
*/
HIO_EXPORT void hio_fio_fini (
hio_fio_t* fio
);
#if defined(HIO_HAVE_INLINE)
static HIO_INLINE void* hio_fio_getxtn (hio_fio_t* fio) { return (void*)(fio + 1); }
#else
#define hio_fio_getxtn(fio) ((void*)((hio_fio_t*)(fio) + 1))
#endif
/**
* The hio_fio_gethnd() function returns the native file handle.
*/
HIO_EXPORT hio_fio_hnd_t hio_fio_gethnd (
const hio_fio_t* fio
);
/**
* The hio_fio_seek() function changes the current file position.
*/
HIO_EXPORT hio_fio_off_t hio_fio_seek (
hio_fio_t* fio,
hio_fio_off_t offset,
hio_fio_ori_t origin
);
/**
* The hio_fio_truncate() function truncates a file to @a size.
*/
HIO_EXPORT int hio_fio_truncate (
hio_fio_t* fio,
hio_fio_off_t size
);
/**
* The hio_fio_read() function reads data.
*/
HIO_EXPORT hio_ooi_t hio_fio_read (
hio_fio_t* fio,
void* buf,
hio_oow_t size
);
/**
* The hio_fio_write() function writes data.
*/
HIO_EXPORT hio_ooi_t hio_fio_write (
hio_fio_t* fio,
const void* data,
hio_oow_t size
);
/**
* The hio_fio_chmod() function changes the file mode.
*
* \note
* On _WIN32, this function is implemented on the best-effort basis and
* returns an error on the following conditions:
* - The file size is 0.
* - The file is opened without #HIO_FIO_READ.
*/
HIO_EXPORT int hio_fio_chmod (
hio_fio_t* fio,
int mode
);
/**
* The hio_fio_sync() function synchronizes file contents into storage media
* It is useful in determining the media error, without which hio_fio_close()
* may succeed despite such an error.
*/
HIO_EXPORT int hio_fio_sync (
hio_fio_t* fio
);
HIO_EXPORT int hio_fio_lock (
hio_fio_t* fio,
hio_fio_lck_t* lck,
int flags
);
HIO_EXPORT int hio_fio_unlock (
hio_fio_t* fio,
hio_fio_lck_t* lck,
int flags
);
/**
* The hio_get_std_fio_handle() returns a low-level system handle to
* commonly used I/O channels.
*/
HIO_EXPORT int hio_get_std_fio_handle (
hio_fio_std_t std,
hio_fio_hnd_t* hnd
);
#if defined(__cplusplus)
}
#endif
#endif

View File

@ -84,6 +84,7 @@ enum hio_errnum_t
HIO_EBUSY, /**< system busy */ HIO_EBUSY, /**< system busy */
HIO_EACCES, /**< access denied */ HIO_EACCES, /**< access denied */
HIO_EPERM, /**< operation not permitted */ HIO_EPERM, /**< operation not permitted */
HIO_EISDIR, /**< is directory */
HIO_ENOTDIR, /**< not directory */ HIO_ENOTDIR, /**< not directory */
HIO_EINTR, /**< interrupted */ HIO_EINTR, /**< interrupted */
HIO_EPIPE, /**< pipe error */ HIO_EPIPE, /**< pipe error */

View File

@ -41,6 +41,9 @@ static hio_errnum_t errno_to_errnum (int errcode)
#if defined(EPERM) #if defined(EPERM)
case EPERM: return HIO_EPERM; case EPERM: return HIO_EPERM;
#endif #endif
#if defined(EISDIR)
case EISDIR: return HIO_EISDIR;
#endif
#if defined(ENOTDIR) #if defined(ENOTDIR)
case ENOTDIR: return HIO_ENOTDIR; case ENOTDIR: return HIO_ENOTDIR;
#endif #endif

View File

@ -1,9 +1,11 @@
#include <hio-tar.h> #include <hio-tar.h>
#include <hio-utl.h> #include <hio-utl.h>
#include <hio-prv.h> #include <hio-prv.h>
#include <stdio.h>
#include <sys/types.h> #include <sys/types.h>
#include <sys/stat.h> #include <sys/stat.h>
#include <stdio.h>
#include <errno.h>
static hio_uint8_t _end_block[HIO_TAR_BLKSIZE] = { 0, }; static hio_uint8_t _end_block[HIO_TAR_BLKSIZE] = { 0, };
@ -247,18 +249,31 @@ static int process_header (hio_tar_t* tar)
tar->hi.filesize = hio_bchars_to_uintmax(hdr->size, HIO_COUNTOF(hdr->size), HIO_BCHARS_TO_UINTMAX_MAKE_OPTION(0,0,0,8), &endptr, &is_sober); tar->hi.filesize = hio_bchars_to_uintmax(hdr->size, HIO_COUNTOF(hdr->size), HIO_BCHARS_TO_UINTMAX_MAKE_OPTION(0,0,0,8), &endptr, &is_sober);
//mode = hio_bchars_to_uintmax(hdr->mode, HIO_COUNTOF(hdr->mode), HIO_BCHARS_TO_UINTMAX_MAKE_OPTION(0,0,0,8), &endptr, &is_sober); //mode = hio_bchars_to_uintmax(hdr->mode, HIO_COUNTOF(hdr->mode), HIO_BCHARS_TO_UINTMAX_MAKE_OPTION(0,0,0,8), &endptr, &is_sober);
if (tar->hi.filesize > 0) if (tar->hi.filesize > 0)
{ {
FILE* fp;
tar->state = HIO_TAR_STATE_FILE; tar->state = HIO_TAR_STATE_FILE;
/* open here? */ /* open here? */
/* COMPOSE an actual file name... /*TODO: hdr->prefix + hdr->name */
hdr->prefix + hdr->name
fp = fopen(hdr->name, "w"); fp = fopen(hdr->name, "w");
} if (!fp)
else
{ {
/* empty file? just create an empty file here??? */ hio_seterrwithsyserr (tar->hio, 0, errno);
/* open ... close or just create */ return -1;
}
tar->hi.fp = fp;
}
if (tar->hi.filesize <= 0)
{
if (tar->hi.fp)
{
fclose (tar->hi.fp);
tar->hi.fp = HIO_NULL;
}
} }
} }
@ -275,18 +290,23 @@ static int process_content (hio_tar_t* tar)
chunksize = tar->hi.filesize < tar->blk.len? tar->hi.filesize: tar->blk.len; chunksize = tar->hi.filesize < tar->blk.len? tar->hi.filesize: tar->blk.len;
#if 0 /* TODO: error check */
write callback(tar->hi.).. tar->blk.buf, tar->blk.len); fwrite (tar->blk.buf, 1, chunksize, tar->hi.fp);
#endif
tar->hi.filesize -= chunksize; tar->hi.filesize -= chunksize;
if (tar->hi.filesize <= 0) if (tar->hi.filesize <= 0)
{ {
/* end of file */ /* end of file */
/* close file??? also close if there is an exception or error??? */ if (tar->hi.fp)
{
fclose (tar->hi.fp);
tar->hi.fp = HIO_NULL;
} }
} }
return 0;
}
int hio_tar_feed (hio_tar_t* tar, const void* ptr, hio_oow_t len) int hio_tar_feed (hio_tar_t* tar, const void* ptr, hio_oow_t len)
{ {
if (!ptr) if (!ptr)