moved more files to si
This commit is contained in:
		| @ -16,10 +16,14 @@ libqsesi_la_SOURCES =  \ | ||||
| 	intr.c \ | ||||
| 	mtx.c \ | ||||
| 	mux.c \ | ||||
| 	nwad.c \ | ||||
| 	nwad-skad.c \ | ||||
| 	nwif.c \ | ||||
| 	nwif-cfg.c \ | ||||
| 	nwio.c  \ | ||||
| 	pio.c  \ | ||||
| 	rwl.c \ | ||||
| 	sck.c \ | ||||
| 	sio.c  \ | ||||
| 	task.c \ | ||||
| 	thr.c \ | ||||
|  | ||||
| @ -78,8 +78,8 @@ PRE_UNINSTALL = : | ||||
| POST_UNINSTALL = : | ||||
| build_triplet = @build@ | ||||
| host_triplet = @host@ | ||||
| @ENABLE_CXX_TRUE@am__append_1 = libqsesysxx.la | ||||
| subdir = lib/sys | ||||
| @ENABLE_CXX_TRUE@am__append_1 = libqsesixx.la | ||||
| subdir = lib/si | ||||
| DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ | ||||
| 	$(top_srcdir)/ac/depcomp | ||||
| ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | ||||
| @ -127,28 +127,32 @@ am__uninstall_files_from_dir = { \ | ||||
| am__installdirs = "$(DESTDIR)$(libdir)" | ||||
| LTLIBRARIES = $(lib_LTLIBRARIES) | ||||
| am__DEPENDENCIES_1 = | ||||
| libqsesys_la_DEPENDENCIES = $(am__DEPENDENCIES_1) | ||||
| am_libqsesys_la_OBJECTS = libqsesys_la-cnd.lo libqsesys_la-intr.lo \ | ||||
| 	libqsesys_la-mtx.lo libqsesys_la-mux.lo libqsesys_la-rwl.lo \ | ||||
| 	libqsesys_la-task.lo libqsesys_la-thr.lo | ||||
| libqsesys_la_OBJECTS = $(am_libqsesys_la_OBJECTS) | ||||
| libqsesi_la_DEPENDENCIES = $(am__DEPENDENCIES_1) | ||||
| am_libqsesi_la_OBJECTS = libqsesi_la-aio.lo libqsesi_la-aio-pro.lo \ | ||||
| 	libqsesi_la-aio-sck.lo libqsesi_la-aio-tmr.lo \ | ||||
| 	libqsesi_la-cnd.lo libqsesi_la-fio.lo libqsesi_la-intr.lo \ | ||||
| 	libqsesi_la-mtx.lo libqsesi_la-mux.lo libqsesi_la-nwad.lo \ | ||||
| 	libqsesi_la-nwad-skad.lo libqsesi_la-nwif.lo \ | ||||
| 	libqsesi_la-nwif-cfg.lo libqsesi_la-nwio.lo libqsesi_la-pio.lo \ | ||||
| 	libqsesi_la-rwl.lo libqsesi_la-sck.lo libqsesi_la-sio.lo \ | ||||
| 	libqsesi_la-task.lo libqsesi_la-thr.lo libqsesi_la-tio.lo | ||||
| libqsesi_la_OBJECTS = $(am_libqsesi_la_OBJECTS) | ||||
| AM_V_lt = $(am__v_lt_@AM_V@) | ||||
| am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) | ||||
| am__v_lt_0 = --silent | ||||
| am__v_lt_1 =  | ||||
| libqsesys_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ | ||||
| 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libqsesys_la_CFLAGS) \ | ||||
| 	$(CFLAGS) $(libqsesys_la_LDFLAGS) $(LDFLAGS) -o $@ | ||||
| libqsesysxx_la_DEPENDENCIES = | ||||
| am__libqsesysxx_la_SOURCES_DIST = SocketAddress.cpp Socket.cpp | ||||
| @ENABLE_CXX_TRUE@am_libqsesysxx_la_OBJECTS = SocketAddress.lo \ | ||||
| @ENABLE_CXX_TRUE@	Socket.lo | ||||
| libqsesysxx_la_OBJECTS = $(am_libqsesysxx_la_OBJECTS) | ||||
| libqsesysxx_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ | ||||
| libqsesi_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ | ||||
| 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libqsesi_la_CFLAGS) \ | ||||
| 	$(CFLAGS) $(libqsesi_la_LDFLAGS) $(LDFLAGS) -o $@ | ||||
| libqsesixx_la_DEPENDENCIES = | ||||
| am__libqsesixx_la_SOURCES_DIST = SocketAddress.cpp Socket.cpp | ||||
| @ENABLE_CXX_TRUE@am_libqsesixx_la_OBJECTS = SocketAddress.lo Socket.lo | ||||
| libqsesixx_la_OBJECTS = $(am_libqsesixx_la_OBJECTS) | ||||
| libqsesixx_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ | ||||
| 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ | ||||
| 	$(AM_CXXFLAGS) $(CXXFLAGS) $(libqsesysxx_la_LDFLAGS) \ | ||||
| 	$(LDFLAGS) -o $@ | ||||
| @ENABLE_CXX_TRUE@am_libqsesysxx_la_rpath = -rpath $(libdir) | ||||
| 	$(AM_CXXFLAGS) $(CXXFLAGS) $(libqsesixx_la_LDFLAGS) $(LDFLAGS) \ | ||||
| 	-o $@ | ||||
| @ENABLE_CXX_TRUE@am_libqsesixx_la_rpath = -rpath $(libdir) | ||||
| AM_V_P = $(am__v_P_@AM_V@) | ||||
| am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) | ||||
| am__v_P_0 = false | ||||
| @ -201,9 +205,9 @@ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) | ||||
| am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) | ||||
| am__v_CXXLD_0 = @echo "  CXXLD   " $@; | ||||
| am__v_CXXLD_1 =  | ||||
| SOURCES = $(libqsesys_la_SOURCES) $(libqsesysxx_la_SOURCES) | ||||
| DIST_SOURCES = $(libqsesys_la_SOURCES) \ | ||||
| 	$(am__libqsesysxx_la_SOURCES_DIST) | ||||
| SOURCES = $(libqsesi_la_SOURCES) $(libqsesixx_la_SOURCES) | ||||
| DIST_SOURCES = $(libqsesi_la_SOURCES) \ | ||||
| 	$(am__libqsesixx_la_SOURCES_DIST) | ||||
| am__can_run_installinfo = \ | ||||
|   case $$AM_UPDATE_INFO_DIR in \ | ||||
|     n|no|NO) false;; \ | ||||
| @ -409,26 +413,41 @@ AM_CPPFLAGS = \ | ||||
| 	-I$(top_builddir)/include \ | ||||
| 	-I$(top_srcdir)/include | ||||
|  | ||||
| lib_LTLIBRARIES = libqsesys.la $(am__append_1) | ||||
| libqsesys_la_SOURCES = \ | ||||
| lib_LTLIBRARIES = libqsesi.la $(am__append_1) | ||||
| libqsesi_la_SOURCES = \ | ||||
| 	aio-prv.h \ | ||||
| 	aio.c \ | ||||
| 	aio-pro.c  \ | ||||
| 	aio-sck.c  \ | ||||
| 	aio-tmr.c  \ | ||||
| 	cnd.c \ | ||||
| 	fio.c  \ | ||||
| 	intr.c \ | ||||
| 	mtx.c \ | ||||
| 	mux.c \ | ||||
| 	nwad.c \ | ||||
| 	nwad-skad.c \ | ||||
| 	nwif.c \ | ||||
| 	nwif-cfg.c \ | ||||
| 	nwio.c  \ | ||||
| 	pio.c  \ | ||||
| 	rwl.c \ | ||||
| 	sck.c \ | ||||
| 	sio.c  \ | ||||
| 	task.c \ | ||||
| 	thr.c \ | ||||
| 	thr.h | ||||
| 	thr.h \ | ||||
| 	tio.c | ||||
|  | ||||
| libqsesys_la_CFLAGS = $(PTHREAD_CFLAGS) | ||||
| libqsesys_la_LDFLAGS = -L../cmn -version-info 1:0:0 -no-undefined | ||||
| libqsesys_la_LIBADD = -lqsecmn $(PTHREAD_LIBS) | ||||
| @ENABLE_CXX_TRUE@libqsesysxx_la_SOURCES = \ | ||||
| libqsesi_la_CFLAGS = $(PTHREAD_CFLAGS) | ||||
| libqsesi_la_LDFLAGS = -L../cmn -version-info 1:0:0 -no-undefined | ||||
| libqsesi_la_LIBADD = -lqsecmn $(PTHREAD_LIBS) | ||||
| @ENABLE_CXX_TRUE@libqsesixx_la_SOURCES = \ | ||||
| @ENABLE_CXX_TRUE@	SocketAddress.cpp \ | ||||
| @ENABLE_CXX_TRUE@	Socket.cpp | ||||
|  | ||||
| @ENABLE_CXX_TRUE@libqsesysxx_la_LDFLAGS = -L. -L../cmn -version-info 1:0:0 -no-undefined | ||||
| @ENABLE_CXX_TRUE@libqsesysxx_la_LIBADD = -lqsecmnxx -lqsecmn  | ||||
| @ENABLE_CXX_TRUE@libqsesixx_la_LDFLAGS = -L. -L../cmn -version-info 1:0:0 -no-undefined | ||||
| @ENABLE_CXX_TRUE@libqsesixx_la_LIBADD = -lqsecmnxx -lqsecmn  | ||||
| all: all-am | ||||
|  | ||||
| .SUFFIXES: | ||||
| @ -442,9 +461,9 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps) | ||||
| 	      exit 1;; \ | ||||
| 	  esac; \ | ||||
| 	done; \ | ||||
| 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign lib/sys/Makefile'; \ | ||||
| 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign lib/si/Makefile'; \ | ||||
| 	$(am__cd) $(top_srcdir) && \ | ||||
| 	  $(AUTOMAKE) --foreign lib/sys/Makefile | ||||
| 	  $(AUTOMAKE) --foreign lib/si/Makefile | ||||
| .PRECIOUS: Makefile | ||||
| Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status | ||||
| 	@case '$?' in \ | ||||
| @ -499,11 +518,11 @@ clean-libLTLIBRARIES: | ||||
| 	  rm -f $${locs}; \ | ||||
| 	} | ||||
|  | ||||
| libqsesys.la: $(libqsesys_la_OBJECTS) $(libqsesys_la_DEPENDENCIES) $(EXTRA_libqsesys_la_DEPENDENCIES)  | ||||
| 	$(AM_V_CCLD)$(libqsesys_la_LINK) -rpath $(libdir) $(libqsesys_la_OBJECTS) $(libqsesys_la_LIBADD) $(LIBS) | ||||
| libqsesi.la: $(libqsesi_la_OBJECTS) $(libqsesi_la_DEPENDENCIES) $(EXTRA_libqsesi_la_DEPENDENCIES)  | ||||
| 	$(AM_V_CCLD)$(libqsesi_la_LINK) -rpath $(libdir) $(libqsesi_la_OBJECTS) $(libqsesi_la_LIBADD) $(LIBS) | ||||
|  | ||||
| libqsesysxx.la: $(libqsesysxx_la_OBJECTS) $(libqsesysxx_la_DEPENDENCIES) $(EXTRA_libqsesysxx_la_DEPENDENCIES)  | ||||
| 	$(AM_V_CXXLD)$(libqsesysxx_la_LINK) $(am_libqsesysxx_la_rpath) $(libqsesysxx_la_OBJECTS) $(libqsesysxx_la_LIBADD) $(LIBS) | ||||
| libqsesixx.la: $(libqsesixx_la_OBJECTS) $(libqsesixx_la_DEPENDENCIES) $(EXTRA_libqsesixx_la_DEPENDENCIES)  | ||||
| 	$(AM_V_CXXLD)$(libqsesixx_la_LINK) $(am_libqsesixx_la_rpath) $(libqsesixx_la_OBJECTS) $(libqsesixx_la_LIBADD) $(LIBS) | ||||
|  | ||||
| mostlyclean-compile: | ||||
| 	-rm -f *.$(OBJEXT) | ||||
| @ -513,13 +532,27 @@ distclean-compile: | ||||
|  | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Socket.Plo@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SocketAddress.Plo@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqsesys_la-cnd.Plo@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqsesys_la-intr.Plo@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqsesys_la-mtx.Plo@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqsesys_la-mux.Plo@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqsesys_la-rwl.Plo@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqsesys_la-task.Plo@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqsesys_la-thr.Plo@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqsesi_la-aio-pro.Plo@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqsesi_la-aio-sck.Plo@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqsesi_la-aio-tmr.Plo@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqsesi_la-aio.Plo@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqsesi_la-cnd.Plo@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqsesi_la-fio.Plo@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqsesi_la-intr.Plo@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqsesi_la-mtx.Plo@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqsesi_la-mux.Plo@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqsesi_la-nwad-skad.Plo@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqsesi_la-nwad.Plo@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqsesi_la-nwif-cfg.Plo@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqsesi_la-nwif.Plo@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqsesi_la-nwio.Plo@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqsesi_la-pio.Plo@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqsesi_la-rwl.Plo@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqsesi_la-sck.Plo@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqsesi_la-sio.Plo@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqsesi_la-task.Plo@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqsesi_la-thr.Plo@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libqsesi_la-tio.Plo@am__quote@ | ||||
|  | ||||
| .c.o: | ||||
| @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< | ||||
| @ -542,54 +575,152 @@ distclean-compile: | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||||
| @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< | ||||
|  | ||||
| libqsesys_la-cnd.lo: cnd.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesys_la_CFLAGS) $(CFLAGS) -MT libqsesys_la-cnd.lo -MD -MP -MF $(DEPDIR)/libqsesys_la-cnd.Tpo -c -o libqsesys_la-cnd.lo `test -f 'cnd.c' || echo '$(srcdir)/'`cnd.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libqsesys_la-cnd.Tpo $(DEPDIR)/libqsesys_la-cnd.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='cnd.c' object='libqsesys_la-cnd.lo' libtool=yes @AMDEPBACKSLASH@ | ||||
| libqsesi_la-aio.lo: aio.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -MT libqsesi_la-aio.lo -MD -MP -MF $(DEPDIR)/libqsesi_la-aio.Tpo -c -o libqsesi_la-aio.lo `test -f 'aio.c' || echo '$(srcdir)/'`aio.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libqsesi_la-aio.Tpo $(DEPDIR)/libqsesi_la-aio.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='aio.c' object='libqsesi_la-aio.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesys_la_CFLAGS) $(CFLAGS) -c -o libqsesys_la-cnd.lo `test -f 'cnd.c' || echo '$(srcdir)/'`cnd.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -c -o libqsesi_la-aio.lo `test -f 'aio.c' || echo '$(srcdir)/'`aio.c | ||||
|  | ||||
| libqsesys_la-intr.lo: intr.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesys_la_CFLAGS) $(CFLAGS) -MT libqsesys_la-intr.lo -MD -MP -MF $(DEPDIR)/libqsesys_la-intr.Tpo -c -o libqsesys_la-intr.lo `test -f 'intr.c' || echo '$(srcdir)/'`intr.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libqsesys_la-intr.Tpo $(DEPDIR)/libqsesys_la-intr.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='intr.c' object='libqsesys_la-intr.lo' libtool=yes @AMDEPBACKSLASH@ | ||||
| libqsesi_la-aio-pro.lo: aio-pro.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -MT libqsesi_la-aio-pro.lo -MD -MP -MF $(DEPDIR)/libqsesi_la-aio-pro.Tpo -c -o libqsesi_la-aio-pro.lo `test -f 'aio-pro.c' || echo '$(srcdir)/'`aio-pro.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libqsesi_la-aio-pro.Tpo $(DEPDIR)/libqsesi_la-aio-pro.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='aio-pro.c' object='libqsesi_la-aio-pro.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesys_la_CFLAGS) $(CFLAGS) -c -o libqsesys_la-intr.lo `test -f 'intr.c' || echo '$(srcdir)/'`intr.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -c -o libqsesi_la-aio-pro.lo `test -f 'aio-pro.c' || echo '$(srcdir)/'`aio-pro.c | ||||
|  | ||||
| libqsesys_la-mtx.lo: mtx.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesys_la_CFLAGS) $(CFLAGS) -MT libqsesys_la-mtx.lo -MD -MP -MF $(DEPDIR)/libqsesys_la-mtx.Tpo -c -o libqsesys_la-mtx.lo `test -f 'mtx.c' || echo '$(srcdir)/'`mtx.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libqsesys_la-mtx.Tpo $(DEPDIR)/libqsesys_la-mtx.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mtx.c' object='libqsesys_la-mtx.lo' libtool=yes @AMDEPBACKSLASH@ | ||||
| libqsesi_la-aio-sck.lo: aio-sck.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -MT libqsesi_la-aio-sck.lo -MD -MP -MF $(DEPDIR)/libqsesi_la-aio-sck.Tpo -c -o libqsesi_la-aio-sck.lo `test -f 'aio-sck.c' || echo '$(srcdir)/'`aio-sck.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libqsesi_la-aio-sck.Tpo $(DEPDIR)/libqsesi_la-aio-sck.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='aio-sck.c' object='libqsesi_la-aio-sck.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesys_la_CFLAGS) $(CFLAGS) -c -o libqsesys_la-mtx.lo `test -f 'mtx.c' || echo '$(srcdir)/'`mtx.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -c -o libqsesi_la-aio-sck.lo `test -f 'aio-sck.c' || echo '$(srcdir)/'`aio-sck.c | ||||
|  | ||||
| libqsesys_la-mux.lo: mux.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesys_la_CFLAGS) $(CFLAGS) -MT libqsesys_la-mux.lo -MD -MP -MF $(DEPDIR)/libqsesys_la-mux.Tpo -c -o libqsesys_la-mux.lo `test -f 'mux.c' || echo '$(srcdir)/'`mux.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libqsesys_la-mux.Tpo $(DEPDIR)/libqsesys_la-mux.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mux.c' object='libqsesys_la-mux.lo' libtool=yes @AMDEPBACKSLASH@ | ||||
| libqsesi_la-aio-tmr.lo: aio-tmr.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -MT libqsesi_la-aio-tmr.lo -MD -MP -MF $(DEPDIR)/libqsesi_la-aio-tmr.Tpo -c -o libqsesi_la-aio-tmr.lo `test -f 'aio-tmr.c' || echo '$(srcdir)/'`aio-tmr.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libqsesi_la-aio-tmr.Tpo $(DEPDIR)/libqsesi_la-aio-tmr.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='aio-tmr.c' object='libqsesi_la-aio-tmr.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesys_la_CFLAGS) $(CFLAGS) -c -o libqsesys_la-mux.lo `test -f 'mux.c' || echo '$(srcdir)/'`mux.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -c -o libqsesi_la-aio-tmr.lo `test -f 'aio-tmr.c' || echo '$(srcdir)/'`aio-tmr.c | ||||
|  | ||||
| libqsesys_la-rwl.lo: rwl.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesys_la_CFLAGS) $(CFLAGS) -MT libqsesys_la-rwl.lo -MD -MP -MF $(DEPDIR)/libqsesys_la-rwl.Tpo -c -o libqsesys_la-rwl.lo `test -f 'rwl.c' || echo '$(srcdir)/'`rwl.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libqsesys_la-rwl.Tpo $(DEPDIR)/libqsesys_la-rwl.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='rwl.c' object='libqsesys_la-rwl.lo' libtool=yes @AMDEPBACKSLASH@ | ||||
| libqsesi_la-cnd.lo: cnd.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -MT libqsesi_la-cnd.lo -MD -MP -MF $(DEPDIR)/libqsesi_la-cnd.Tpo -c -o libqsesi_la-cnd.lo `test -f 'cnd.c' || echo '$(srcdir)/'`cnd.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libqsesi_la-cnd.Tpo $(DEPDIR)/libqsesi_la-cnd.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='cnd.c' object='libqsesi_la-cnd.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesys_la_CFLAGS) $(CFLAGS) -c -o libqsesys_la-rwl.lo `test -f 'rwl.c' || echo '$(srcdir)/'`rwl.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -c -o libqsesi_la-cnd.lo `test -f 'cnd.c' || echo '$(srcdir)/'`cnd.c | ||||
|  | ||||
| libqsesys_la-task.lo: task.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesys_la_CFLAGS) $(CFLAGS) -MT libqsesys_la-task.lo -MD -MP -MF $(DEPDIR)/libqsesys_la-task.Tpo -c -o libqsesys_la-task.lo `test -f 'task.c' || echo '$(srcdir)/'`task.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libqsesys_la-task.Tpo $(DEPDIR)/libqsesys_la-task.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='task.c' object='libqsesys_la-task.lo' libtool=yes @AMDEPBACKSLASH@ | ||||
| libqsesi_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) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -MT libqsesi_la-fio.lo -MD -MP -MF $(DEPDIR)/libqsesi_la-fio.Tpo -c -o libqsesi_la-fio.lo `test -f 'fio.c' || echo '$(srcdir)/'`fio.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libqsesi_la-fio.Tpo $(DEPDIR)/libqsesi_la-fio.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='fio.c' object='libqsesi_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) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesys_la_CFLAGS) $(CFLAGS) -c -o libqsesys_la-task.lo `test -f 'task.c' || echo '$(srcdir)/'`task.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -c -o libqsesi_la-fio.lo `test -f 'fio.c' || echo '$(srcdir)/'`fio.c | ||||
|  | ||||
| libqsesys_la-thr.lo: thr.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesys_la_CFLAGS) $(CFLAGS) -MT libqsesys_la-thr.lo -MD -MP -MF $(DEPDIR)/libqsesys_la-thr.Tpo -c -o libqsesys_la-thr.lo `test -f 'thr.c' || echo '$(srcdir)/'`thr.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libqsesys_la-thr.Tpo $(DEPDIR)/libqsesys_la-thr.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='thr.c' object='libqsesys_la-thr.lo' libtool=yes @AMDEPBACKSLASH@ | ||||
| libqsesi_la-intr.lo: intr.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -MT libqsesi_la-intr.lo -MD -MP -MF $(DEPDIR)/libqsesi_la-intr.Tpo -c -o libqsesi_la-intr.lo `test -f 'intr.c' || echo '$(srcdir)/'`intr.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libqsesi_la-intr.Tpo $(DEPDIR)/libqsesi_la-intr.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='intr.c' object='libqsesi_la-intr.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesys_la_CFLAGS) $(CFLAGS) -c -o libqsesys_la-thr.lo `test -f 'thr.c' || echo '$(srcdir)/'`thr.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -c -o libqsesi_la-intr.lo `test -f 'intr.c' || echo '$(srcdir)/'`intr.c | ||||
|  | ||||
| libqsesi_la-mtx.lo: mtx.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -MT libqsesi_la-mtx.lo -MD -MP -MF $(DEPDIR)/libqsesi_la-mtx.Tpo -c -o libqsesi_la-mtx.lo `test -f 'mtx.c' || echo '$(srcdir)/'`mtx.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libqsesi_la-mtx.Tpo $(DEPDIR)/libqsesi_la-mtx.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mtx.c' object='libqsesi_la-mtx.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -c -o libqsesi_la-mtx.lo `test -f 'mtx.c' || echo '$(srcdir)/'`mtx.c | ||||
|  | ||||
| libqsesi_la-mux.lo: mux.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -MT libqsesi_la-mux.lo -MD -MP -MF $(DEPDIR)/libqsesi_la-mux.Tpo -c -o libqsesi_la-mux.lo `test -f 'mux.c' || echo '$(srcdir)/'`mux.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libqsesi_la-mux.Tpo $(DEPDIR)/libqsesi_la-mux.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='mux.c' object='libqsesi_la-mux.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -c -o libqsesi_la-mux.lo `test -f 'mux.c' || echo '$(srcdir)/'`mux.c | ||||
|  | ||||
| libqsesi_la-nwad.lo: nwad.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -MT libqsesi_la-nwad.lo -MD -MP -MF $(DEPDIR)/libqsesi_la-nwad.Tpo -c -o libqsesi_la-nwad.lo `test -f 'nwad.c' || echo '$(srcdir)/'`nwad.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libqsesi_la-nwad.Tpo $(DEPDIR)/libqsesi_la-nwad.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='nwad.c' object='libqsesi_la-nwad.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -c -o libqsesi_la-nwad.lo `test -f 'nwad.c' || echo '$(srcdir)/'`nwad.c | ||||
|  | ||||
| libqsesi_la-nwad-skad.lo: nwad-skad.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -MT libqsesi_la-nwad-skad.lo -MD -MP -MF $(DEPDIR)/libqsesi_la-nwad-skad.Tpo -c -o libqsesi_la-nwad-skad.lo `test -f 'nwad-skad.c' || echo '$(srcdir)/'`nwad-skad.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libqsesi_la-nwad-skad.Tpo $(DEPDIR)/libqsesi_la-nwad-skad.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='nwad-skad.c' object='libqsesi_la-nwad-skad.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -c -o libqsesi_la-nwad-skad.lo `test -f 'nwad-skad.c' || echo '$(srcdir)/'`nwad-skad.c | ||||
|  | ||||
| libqsesi_la-nwif.lo: nwif.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -MT libqsesi_la-nwif.lo -MD -MP -MF $(DEPDIR)/libqsesi_la-nwif.Tpo -c -o libqsesi_la-nwif.lo `test -f 'nwif.c' || echo '$(srcdir)/'`nwif.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libqsesi_la-nwif.Tpo $(DEPDIR)/libqsesi_la-nwif.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='nwif.c' object='libqsesi_la-nwif.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -c -o libqsesi_la-nwif.lo `test -f 'nwif.c' || echo '$(srcdir)/'`nwif.c | ||||
|  | ||||
| libqsesi_la-nwif-cfg.lo: nwif-cfg.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -MT libqsesi_la-nwif-cfg.lo -MD -MP -MF $(DEPDIR)/libqsesi_la-nwif-cfg.Tpo -c -o libqsesi_la-nwif-cfg.lo `test -f 'nwif-cfg.c' || echo '$(srcdir)/'`nwif-cfg.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libqsesi_la-nwif-cfg.Tpo $(DEPDIR)/libqsesi_la-nwif-cfg.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='nwif-cfg.c' object='libqsesi_la-nwif-cfg.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -c -o libqsesi_la-nwif-cfg.lo `test -f 'nwif-cfg.c' || echo '$(srcdir)/'`nwif-cfg.c | ||||
|  | ||||
| libqsesi_la-nwio.lo: nwio.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -MT libqsesi_la-nwio.lo -MD -MP -MF $(DEPDIR)/libqsesi_la-nwio.Tpo -c -o libqsesi_la-nwio.lo `test -f 'nwio.c' || echo '$(srcdir)/'`nwio.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libqsesi_la-nwio.Tpo $(DEPDIR)/libqsesi_la-nwio.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='nwio.c' object='libqsesi_la-nwio.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -c -o libqsesi_la-nwio.lo `test -f 'nwio.c' || echo '$(srcdir)/'`nwio.c | ||||
|  | ||||
| libqsesi_la-pio.lo: pio.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -MT libqsesi_la-pio.lo -MD -MP -MF $(DEPDIR)/libqsesi_la-pio.Tpo -c -o libqsesi_la-pio.lo `test -f 'pio.c' || echo '$(srcdir)/'`pio.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libqsesi_la-pio.Tpo $(DEPDIR)/libqsesi_la-pio.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pio.c' object='libqsesi_la-pio.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -c -o libqsesi_la-pio.lo `test -f 'pio.c' || echo '$(srcdir)/'`pio.c | ||||
|  | ||||
| libqsesi_la-rwl.lo: rwl.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -MT libqsesi_la-rwl.lo -MD -MP -MF $(DEPDIR)/libqsesi_la-rwl.Tpo -c -o libqsesi_la-rwl.lo `test -f 'rwl.c' || echo '$(srcdir)/'`rwl.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libqsesi_la-rwl.Tpo $(DEPDIR)/libqsesi_la-rwl.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='rwl.c' object='libqsesi_la-rwl.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -c -o libqsesi_la-rwl.lo `test -f 'rwl.c' || echo '$(srcdir)/'`rwl.c | ||||
|  | ||||
| libqsesi_la-sck.lo: sck.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -MT libqsesi_la-sck.lo -MD -MP -MF $(DEPDIR)/libqsesi_la-sck.Tpo -c -o libqsesi_la-sck.lo `test -f 'sck.c' || echo '$(srcdir)/'`sck.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libqsesi_la-sck.Tpo $(DEPDIR)/libqsesi_la-sck.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='sck.c' object='libqsesi_la-sck.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -c -o libqsesi_la-sck.lo `test -f 'sck.c' || echo '$(srcdir)/'`sck.c | ||||
|  | ||||
| libqsesi_la-sio.lo: sio.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -MT libqsesi_la-sio.lo -MD -MP -MF $(DEPDIR)/libqsesi_la-sio.Tpo -c -o libqsesi_la-sio.lo `test -f 'sio.c' || echo '$(srcdir)/'`sio.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libqsesi_la-sio.Tpo $(DEPDIR)/libqsesi_la-sio.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='sio.c' object='libqsesi_la-sio.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -c -o libqsesi_la-sio.lo `test -f 'sio.c' || echo '$(srcdir)/'`sio.c | ||||
|  | ||||
| libqsesi_la-task.lo: task.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -MT libqsesi_la-task.lo -MD -MP -MF $(DEPDIR)/libqsesi_la-task.Tpo -c -o libqsesi_la-task.lo `test -f 'task.c' || echo '$(srcdir)/'`task.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libqsesi_la-task.Tpo $(DEPDIR)/libqsesi_la-task.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='task.c' object='libqsesi_la-task.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -c -o libqsesi_la-task.lo `test -f 'task.c' || echo '$(srcdir)/'`task.c | ||||
|  | ||||
| libqsesi_la-thr.lo: thr.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -MT libqsesi_la-thr.lo -MD -MP -MF $(DEPDIR)/libqsesi_la-thr.Tpo -c -o libqsesi_la-thr.lo `test -f 'thr.c' || echo '$(srcdir)/'`thr.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libqsesi_la-thr.Tpo $(DEPDIR)/libqsesi_la-thr.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='thr.c' object='libqsesi_la-thr.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -c -o libqsesi_la-thr.lo `test -f 'thr.c' || echo '$(srcdir)/'`thr.c | ||||
|  | ||||
| libqsesi_la-tio.lo: tio.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -MT libqsesi_la-tio.lo -MD -MP -MF $(DEPDIR)/libqsesi_la-tio.Tpo -c -o libqsesi_la-tio.lo `test -f 'tio.c' || echo '$(srcdir)/'`tio.c | ||||
| @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libqsesi_la-tio.Tpo $(DEPDIR)/libqsesi_la-tio.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='tio.c' object='libqsesi_la-tio.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) $(AM_CPPFLAGS) $(CPPFLAGS) $(libqsesi_la_CFLAGS) $(CFLAGS) -c -o libqsesi_la-tio.lo `test -f 'tio.c' || echo '$(srcdir)/'`tio.c | ||||
|  | ||||
| .cpp.o: | ||||
| @am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< | ||||
|  | ||||
							
								
								
									
										295
									
								
								qse/lib/si/nwad-skad.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										295
									
								
								qse/lib/si/nwad-skad.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,295 @@ | ||||
| /* | ||||
|  * $Id$ | ||||
|  * | ||||
|     Copyright (c) 2006-2014 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. | ||||
|  */ | ||||
|  | ||||
| #include <qse/si/nwad.h> | ||||
|  | ||||
| #include <qse/cmn/mbwc.h> | ||||
| #include "../cmn/mem.h" | ||||
|  | ||||
| #if defined(_WIN32) | ||||
| #	include <winsock2.h> | ||||
| #	include <ws2tcpip.h> /* sockaddr_in6 */ | ||||
| #	include <windows.h> | ||||
| #	undef AF_UNIX | ||||
| #	if defined(__WATCOMC__) && (__WATCOMC__ < 1200) | ||||
| 		/* the header files shipped with watcom 11 doesn't contain | ||||
| 		 * proper inet6 support. note using the compiler version | ||||
| 		 * in the contidional isn't that good idea since you  | ||||
| 		 * can use newer header files with this old compiler. | ||||
| 		 * never mind it for the time being. | ||||
| 		 */ | ||||
| #		undef AF_INET6 | ||||
| #	endif | ||||
| #elif defined(__OS2__) | ||||
| #	include <types.h> | ||||
| #	include <sys/socket.h> | ||||
| #	include <netinet/in.h> | ||||
| 	/* though AF_INET6 is defined, there is no support | ||||
| 	 * for it. so undefine it */ | ||||
| #	undef AF_INET6 | ||||
| #	undef AF_UNIX | ||||
| #	pragma library("tcpip32.lib") | ||||
| #elif defined(__DOS__) | ||||
| #	include <tcp.h> /* watt-32 */ | ||||
| #	undef AF_UNIX | ||||
| #else | ||||
| #	if defined(HAVE_SYS_TYPES_H) | ||||
| #		include <sys/types.h> | ||||
| #	endif | ||||
| #	include <sys/socket.h> | ||||
| #	include <netinet/in.h> | ||||
| #	if defined(HAVE_SYS_UN_H) | ||||
| #		include <sys/un.h> | ||||
| #	endif | ||||
|  | ||||
| #	if defined(QSE_SIZEOF_STRUCT_SOCKADDR_IN6) && (QSE_SIZEOF_STRUCT_SOCKADDR_IN6 <= 0) | ||||
| #		undef AF_INET6 | ||||
| #	endif | ||||
|  | ||||
| #	if defined(QSE_SIZEOF_STRUCT_SOCKADDR_UN) && (QSE_SIZEOF_STRUCT_SOCKADDR_UN <= 0) | ||||
| #		undef AF_UNIX | ||||
| #	endif | ||||
|  | ||||
| #endif | ||||
|  | ||||
| union sockaddr_t | ||||
| { | ||||
| #if defined(AF_INET) || defined(AF_INET6) || defined(AF_UNIX) | ||||
| 	#if defined(AF_INET) | ||||
| 	struct sockaddr_in in4; | ||||
| 	#endif | ||||
| 	#if defined(AF_INET6) | ||||
| 	struct sockaddr_in6 in6; | ||||
| 	#endif | ||||
| 	#if defined(AF_UNIX) | ||||
| 	struct sockaddr_un un; | ||||
| 	#endif | ||||
| #else | ||||
| 	int dummy; | ||||
| #endif | ||||
| }; | ||||
|  | ||||
| typedef union sockaddr_t sockaddr_t; | ||||
|  | ||||
| #if defined(AF_INET) | ||||
| #	define FAMILY(x) (((struct sockaddr_in*)(x))->sin_family) | ||||
| #elif defined(AF_INET6) | ||||
| #	define FAMILY(x) (((struct sockaddr_in6*)(x))->sin6_family) | ||||
| #elif defined(AF_UNIX) | ||||
| #	define FAMILY(x) (((struct sockaddr_un*)(x))->sun_family) | ||||
| #else | ||||
| #	define FAMILY(x) (-1) | ||||
| #endif | ||||
|  | ||||
| static QSE_INLINE int skad_to_nwad (const sockaddr_t* skad, qse_nwad_t* nwad) | ||||
| { | ||||
| 	int addrsize = -1; | ||||
|  | ||||
| 	switch (FAMILY(skad)) | ||||
| 	{ | ||||
| #if defined(AF_INET) | ||||
| 		case AF_INET: | ||||
| 		{ | ||||
| 			struct sockaddr_in* in; | ||||
| 			in = (struct sockaddr_in*)skad; | ||||
| 			addrsize = QSE_SIZEOF(*in); | ||||
|  | ||||
| 			QSE_MEMSET (nwad, 0, QSE_SIZEOF(*nwad)); | ||||
| 			nwad->type = QSE_NWAD_IN4; | ||||
| 			nwad->u.in4.addr.value = in->sin_addr.s_addr; | ||||
| 			nwad->u.in4.port = in->sin_port; | ||||
| 			break; | ||||
| 		} | ||||
| #endif | ||||
|  | ||||
| #if defined(AF_INET6) | ||||
| 		case AF_INET6: | ||||
| 		{ | ||||
| 			struct sockaddr_in6* in; | ||||
| 			in = (struct sockaddr_in6*)skad; | ||||
| 			addrsize = QSE_SIZEOF(*in); | ||||
|  | ||||
| 			QSE_MEMSET (nwad, 0, QSE_SIZEOF(*nwad)); | ||||
| 			nwad->type = QSE_NWAD_IN6; | ||||
| 			QSE_MEMCPY (&nwad->u.in6.addr, &in->sin6_addr, QSE_SIZEOF(nwad->u.in6.addr)); | ||||
| 		#if defined(HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID) | ||||
| 			nwad->u.in6.scope = in->sin6_scope_id; | ||||
| 		#endif | ||||
| 			nwad->u.in6.port = in->sin6_port; | ||||
| 			break; | ||||
| 		} | ||||
| #endif | ||||
|  | ||||
| #if defined(AF_UNIX) | ||||
| 		case AF_UNIX: | ||||
| 		{ | ||||
| 			struct sockaddr_un* un; | ||||
| 			un = (struct sockaddr_un*)skad; | ||||
| 			addrsize = QSE_SIZEOF(*un); | ||||
|  | ||||
| 			QSE_MEMSET (nwad, 0, QSE_SIZEOF(*nwad)); | ||||
| 			nwad->type = QSE_NWAD_LOCAL; | ||||
| 		#if defined(QSE_CHAR_IS_MCHAR) | ||||
| 			qse_mbsxcpy (nwad->u.local.path, QSE_COUNTOF(nwad->u.local.path), un->sun_path); | ||||
| 		#else | ||||
| 			{ | ||||
| 				qse_size_t wcslen, mbslen; | ||||
| 				mbslen = QSE_COUNTOF(nwad->u.local.path); | ||||
| 				qse_wcstombs (un->sun_path, &wcslen, nwad->u.local.path, &mbslen); | ||||
| 				/* don't care about conversion errors */ | ||||
| 			} | ||||
| 		#endif | ||||
| 			break; | ||||
| 		} | ||||
| #endif | ||||
| 		default: | ||||
| 			break; | ||||
| 	} | ||||
|  | ||||
| 	return addrsize; | ||||
| } | ||||
|  | ||||
| static QSE_INLINE int nwad_to_skad (const qse_nwad_t* nwad, sockaddr_t* skad) | ||||
| { | ||||
| 	int addrsize = -1; | ||||
|  | ||||
| 	switch (nwad->type) | ||||
| 	{ | ||||
| 		case QSE_NWAD_IN4: | ||||
| 		{ | ||||
| #if defined(AF_INET) | ||||
| 			struct sockaddr_in* in; | ||||
|  | ||||
| 			in = (struct sockaddr_in*)skad; | ||||
| 			addrsize = QSE_SIZEOF(*in); | ||||
| 			QSE_MEMSET (in, 0, addrsize); | ||||
|  | ||||
| 			in->sin_family = AF_INET; | ||||
| 			in->sin_addr.s_addr = nwad->u.in4.addr.value; | ||||
| 			in->sin_port = nwad->u.in4.port; | ||||
| #endif | ||||
| 			break; | ||||
| 		} | ||||
|  | ||||
| 		case QSE_NWAD_IN6: | ||||
| 		{ | ||||
| #if defined(AF_INET6) | ||||
| 			struct sockaddr_in6* in; | ||||
|  | ||||
| 			in = (struct sockaddr_in6*)skad; | ||||
| 			addrsize = QSE_SIZEOF(*in); | ||||
| 			QSE_MEMSET (in, 0, addrsize); | ||||
|  | ||||
| 			in->sin6_family = AF_INET6; | ||||
| 			QSE_MEMCPY (&in->sin6_addr, &nwad->u.in6.addr, QSE_SIZEOF(nwad->u.in6.addr)); | ||||
| 		#if defined(HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID) | ||||
| 			in->sin6_scope_id = nwad->u.in6.scope; | ||||
| 		#endif | ||||
| 			in->sin6_port = nwad->u.in6.port; | ||||
| #endif | ||||
| 			break; | ||||
| 		} | ||||
|  | ||||
|  | ||||
| 		case QSE_NWAD_LOCAL: | ||||
| 		{ | ||||
| #if defined(AF_UNIX) | ||||
| 			struct sockaddr_un* un; | ||||
|  | ||||
| 			un = (struct sockaddr_un*)skad; | ||||
| 			addrsize = QSE_SIZEOF(*un); | ||||
| 			QSE_MEMSET (un, 0, addrsize); | ||||
|  | ||||
| 			un->sun_family = AF_UNIX; | ||||
| 		#if defined(QSE_CHAR_IS_MCHAR) | ||||
| 			qse_mbsxcpy (un->sun_path, QSE_COUNTOF(un->sun_path), nwad->u.local.path); | ||||
| 		#else | ||||
| 			{ | ||||
| 				qse_size_t wcslen, mbslen; | ||||
| 				mbslen = QSE_COUNTOF(un->sun_path); | ||||
| 				qse_wcstombs (nwad->u.local.path, &wcslen, un->sun_path, &mbslen); | ||||
| 				/* don't care about conversion errors */ | ||||
| 			} | ||||
|  | ||||
| 		#endif | ||||
| #endif | ||||
| 			break; | ||||
| 		} | ||||
|  | ||||
| 	} | ||||
|  | ||||
| 	return addrsize; | ||||
| } | ||||
|  | ||||
| int qse_skadtonwad (const qse_skad_t* skad, qse_nwad_t* nwad) | ||||
| { | ||||
| 	QSE_ASSERT (QSE_SIZEOF(*skad) >= QSE_SIZEOF(sockaddr_t)); | ||||
| 	return skad_to_nwad ((const sockaddr_t*)skad, nwad); | ||||
| } | ||||
|  | ||||
| int qse_nwadtoskad (const qse_nwad_t* nwad, qse_skad_t* skad) | ||||
| { | ||||
| 	QSE_ASSERT (QSE_SIZEOF(*skad) >= QSE_SIZEOF(sockaddr_t)); | ||||
| 	return nwad_to_skad (nwad, (sockaddr_t*)skad); | ||||
| } | ||||
|  | ||||
| int qse_skadfamily (const qse_skad_t* skad) | ||||
| { | ||||
| 	QSE_ASSERT (QSE_SIZEOF(*skad) >= QSE_SIZEOF(sockaddr_t)); | ||||
| 	return FAMILY(skad); | ||||
| } | ||||
|  | ||||
| int qse_skadsize (const qse_skad_t* skad) | ||||
| { | ||||
| 	switch (FAMILY(skad)) | ||||
| 	{ | ||||
| #if defined(AF_INET) | ||||
| 		case AF_INET: | ||||
| 		{ | ||||
| 			struct sockaddr_in in; | ||||
| 			return QSE_SIZEOF(in); | ||||
| 		} | ||||
| #endif | ||||
|  | ||||
| #if defined(AF_INET6) | ||||
| 		case AF_INET6: | ||||
| 		{ | ||||
| 			struct sockaddr_in in6; | ||||
| 			return QSE_SIZEOF(in6); | ||||
| 		} | ||||
| #endif | ||||
|  | ||||
| #if defined(AF_UNIX) | ||||
| 		case AF_UNIX: | ||||
| 		{ | ||||
| 			struct sockaddr_un un; | ||||
| 			return QSE_SIZEOF(un); | ||||
| 		} | ||||
| #endif | ||||
| 	} | ||||
|  | ||||
| 	return 0; | ||||
| } | ||||
							
								
								
									
										720
									
								
								qse/lib/si/nwad.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										720
									
								
								qse/lib/si/nwad.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,720 @@ | ||||
| /* | ||||
|  * $Id$ | ||||
|  * | ||||
|     Copyright (c) 2006-2014 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. | ||||
|  */ | ||||
|  | ||||
| #include <qse/si/nwad.h> | ||||
| #include <qse/si/nwif.h> | ||||
|  | ||||
| #include <qse/cmn/hton.h> | ||||
| #include <qse/cmn/str.h> | ||||
| #include <qse/cmn/fmt.h> | ||||
| #include <qse/cmn/mbwc.h> | ||||
|  | ||||
| #include "../cmn/mem.h" | ||||
|  | ||||
| int qse_nwadequal (const qse_nwad_t* x, const qse_nwad_t* y) | ||||
| { | ||||
| 	if (x->type != y->type) return 0; | ||||
|  | ||||
| 	switch (x->type) | ||||
| 	{ | ||||
| 		case QSE_NWAD_IN4: | ||||
| 			return (x->u.in4.port == y->u.in4.port && | ||||
| 			        QSE_MEMCMP (&x->u.in4.addr, &y->u.in4.addr, QSE_SIZEOF(x->u.in4.addr)) == 0)? 1: 0; | ||||
|  | ||||
| 		case QSE_NWAD_IN6: | ||||
| 			return (x->u.in6.port == y->u.in6.port && | ||||
| 			        x->u.in6.scope == y->u.in6.scope && | ||||
| 			        QSE_MEMCMP (&x->u.in6.addr, &y->u.in6.addr, QSE_SIZEOF(x->u.in6.addr)) == 0)? 1: 0; | ||||
|  | ||||
| 		case QSE_NWAD_LOCAL: | ||||
| 			return qse_strcmp (x->u.local.path, y->u.local.path) == 0; | ||||
|  | ||||
| 		default:  | ||||
| 			/* can't compare */ | ||||
| 			return -1; | ||||
| 	} | ||||
| } | ||||
|  | ||||
| void qse_clearnwad (qse_nwad_t* nwad, qse_nwad_type_t type) | ||||
| { | ||||
| 	QSE_MEMSET (nwad, 0, QSE_SIZEOF(*nwad)); | ||||
| 	nwad->type = type; | ||||
| } | ||||
|  | ||||
| void qse_setnwadport (qse_nwad_t* nwad, qse_uint16_t port) | ||||
| { | ||||
| 	switch (nwad->type) | ||||
| 	{ | ||||
| 		case QSE_NWAD_IN4: | ||||
| 			nwad->u.in4.port = port; | ||||
| 			break; | ||||
|  | ||||
| 		case QSE_NWAD_IN6: | ||||
| 			nwad->u.in6.port = port; | ||||
| 			break; | ||||
|  | ||||
| 		case QSE_NWAD_LOCAL: | ||||
| 			/* no port for QSE_NWAD_LOCAL */ | ||||
| 			break; | ||||
| 	} | ||||
| } | ||||
|  | ||||
| qse_uint16_t qse_getnwadport (qse_nwad_t* nwad) | ||||
| { | ||||
| 	switch (nwad->type) | ||||
| 	{ | ||||
| 		case QSE_NWAD_IN4: | ||||
| 			return nwad->u.in4.port; | ||||
|  | ||||
| 		case QSE_NWAD_IN6: | ||||
| 			return nwad->u.in6.port; | ||||
|  | ||||
| 		case QSE_NWAD_LOCAL: | ||||
| 		default: | ||||
| 			return 0; | ||||
| 	} | ||||
| } | ||||
|  | ||||
| int qse_mbstonwad (const qse_mchar_t* str, qse_nwad_t* nwad) | ||||
| { | ||||
| 	return qse_mbsntonwad (str, qse_mbslen(str), nwad); | ||||
| } | ||||
|  | ||||
| int qse_mbsntonwad (const qse_mchar_t* str, qse_size_t len, qse_nwad_t* nwad) | ||||
| { | ||||
| 	const qse_mchar_t* p; | ||||
| 	const qse_mchar_t* end; | ||||
| 	qse_mcstr_t tmp; | ||||
| 	qse_nwad_t tmpad; | ||||
|  | ||||
| 	QSE_MEMSET (&tmpad, 0, QSE_SIZEOF(tmpad)); | ||||
|  | ||||
| 	p = str; | ||||
| 	end = str + len; | ||||
|  | ||||
| 	if (p >= end) return -1; | ||||
|  | ||||
| 	if (*p == QSE_MT('@') && len >= 2) | ||||
| 	{ | ||||
| 		/* the string begins with @. it's a local name */ | ||||
| 	#if defined(QSE_CHAR_IS_MCHAR) | ||||
| 		qse_mbsxncpy (tmpad.u.local.path, QSE_COUNTOF(tmpad.u.local.path), p + 1, len - 1); | ||||
| 	#else | ||||
| 		qse_size_t mbslen = len - 1; | ||||
| 		qse_size_t wcslen = QSE_COUNTOF(tmpad.u.local.path) - 1; | ||||
| 		if (qse_mbsntowcsn (p + 1, &mbslen, tmpad.u.local.path, &wcslen) <= -1) return -1; | ||||
| 		tmpad.u.local.path[wcslen] = QSE_WT('\0'); | ||||
| 	#endif | ||||
|  | ||||
| 		tmpad.type = QSE_NWAD_LOCAL; | ||||
| 		goto done; | ||||
| 	} | ||||
|  | ||||
| 	if (*p == QSE_MT('[')) | ||||
| 	{ | ||||
| 		/* IPv6 address */ | ||||
| 		tmp.ptr = ++p; /* skip [ and remember the position */ | ||||
| 		while (p < end && *p != QSE_MT('%') && *p != QSE_MT(']')) p++; | ||||
|  | ||||
| 		if (p >= end) return -1; | ||||
|  | ||||
| 		tmp.len = p - tmp.ptr; | ||||
| 		if (*p == QSE_MT('%')) | ||||
| 		{ | ||||
| 			/* handle scope id */ | ||||
| 			qse_uint32_t x; | ||||
|  | ||||
| 			p++; /* skip % */ | ||||
|  | ||||
| 			if (p >= end) | ||||
| 			{ | ||||
| 				/* premature end */ | ||||
| 				return -1; | ||||
| 			} | ||||
|  | ||||
| 			if (*p >= QSE_MT('0') && *p <= QSE_MT('9'))  | ||||
| 			{ | ||||
| 				/* numeric scope id */ | ||||
| 				tmpad.u.in6.scope = 0; | ||||
| 				do | ||||
| 				{ | ||||
| 					x = tmpad.u.in6.scope * 10 + (*p - QSE_MT('0')); | ||||
| 					if (x < tmpad.u.in6.scope) return -1; /* overflow */ | ||||
| 					tmpad.u.in6.scope = x; | ||||
| 					p++; | ||||
| 				} | ||||
| 				while (p < end && *p >= QSE_MT('0') && *p <= QSE_MT('9')); | ||||
| 			} | ||||
| 			else | ||||
| 			{ | ||||
| 				/* interface name as a scope id? */ | ||||
| 				const qse_mchar_t* stmp = p; | ||||
| 				unsigned int index; | ||||
| 				do p++; while (p < end && *p != QSE_MT(']')); | ||||
| 				if (qse_nwifmbsntoindex (stmp, p - stmp, &index) <= -1) return -1; | ||||
| 				tmpad.u.in6.scope = index; | ||||
| 			} | ||||
|  | ||||
| 			if (p >= end || *p != QSE_MT(']')) return -1; | ||||
| 		} | ||||
| 		p++; /* skip ] */ | ||||
|  | ||||
| 		if (qse_mbsntoip6ad (tmp.ptr, tmp.len, &tmpad.u.in6.addr) <= -1) return -1; | ||||
| 		tmpad.type = QSE_NWAD_IN6; | ||||
| 	} | ||||
| 	else | ||||
| 	{ | ||||
| 		/* host name or IPv4 address */ | ||||
| 		tmp.ptr = p; | ||||
| 		while (p < end && *p != QSE_MT(':')) p++; | ||||
| 		tmp.len = p - tmp.ptr; | ||||
|  | ||||
| 		if (qse_mbsntoip4ad (tmp.ptr, tmp.len, &tmpad.u.in4.addr) <= -1) | ||||
| 		{ | ||||
| 			if (p >= end || *p != QSE_MT(':')) return -1; | ||||
| 			 | ||||
| 			/* check if it is an IPv6 address not enclosed in [].  | ||||
| 			 * the port number can't be specified in this format. */ | ||||
|  | ||||
| 			while (p < end && *p != QSE_MT('%')) p++; | ||||
| 			tmp.len = p - tmp.ptr; | ||||
|  | ||||
| 			if (qse_mbsntoip6ad (tmp.ptr, tmp.len, &tmpad.u.in6.addr) <= -1)  | ||||
| 				return -1; | ||||
|  | ||||
| 			if (p < end && *p == QSE_MT('%')) | ||||
| 			{ | ||||
| 				/* handle scope id */ | ||||
| 				qse_uint32_t x; | ||||
|  | ||||
| 				p++; /* skip % */ | ||||
|  | ||||
| 				if (p >= end) | ||||
| 				{ | ||||
| 					/* premature end */ | ||||
| 					return -1; | ||||
| 				} | ||||
|  | ||||
| 				if (*p >= QSE_MT('0') && *p <= QSE_MT('9'))  | ||||
| 				{ | ||||
| 					/* numeric scope id */ | ||||
| 					tmpad.u.in6.scope = 0; | ||||
| 					do | ||||
| 					{ | ||||
| 						x = tmpad.u.in6.scope * 10 + (*p - QSE_MT('0')); | ||||
| 						if (x < tmpad.u.in6.scope) return -1; /* overflow */ | ||||
| 						tmpad.u.in6.scope = x; | ||||
| 						p++; | ||||
| 					} | ||||
| 					while (p < end && *p >= QSE_MT('0') && *p <= QSE_MT('9')); | ||||
| 				} | ||||
| 				else | ||||
| 				{ | ||||
| 					/* interface name as a scope id? */ | ||||
| 					const qse_mchar_t* stmp = p; | ||||
| 					unsigned int index; | ||||
| 					do p++; while (p < end); | ||||
| 					if (qse_nwifmbsntoindex (stmp, p - stmp, &index) <= -1) return -1; | ||||
| 					tmpad.u.in6.scope = index; | ||||
| 				} | ||||
| 			} | ||||
|  | ||||
| 			if (p < end) return -1; | ||||
|  | ||||
| 			tmpad.type = QSE_NWAD_IN6; | ||||
| 			goto done; | ||||
| 		} | ||||
|  | ||||
| 		tmpad.type = QSE_NWAD_IN4; | ||||
| 	} | ||||
|  | ||||
| 	if (p < end && *p == QSE_MT(':'))  | ||||
| 	{ | ||||
| 		/* port number */ | ||||
| 		qse_uint32_t port = 0; | ||||
|  | ||||
| 		p++; /* skip : */ | ||||
|  | ||||
| 		tmp.ptr = p; | ||||
| 		while (p < end && *p >= QSE_MT('0') && *p <= QSE_MT('9')) | ||||
| 		{ | ||||
| 			port = port * 10 + (*p - QSE_MT('0')); | ||||
| 			p++; | ||||
| 		} | ||||
|  | ||||
| 		tmp.len = p - tmp.ptr; | ||||
| 		if (tmp.len <= 0 || tmp.len >= 6 ||  | ||||
| 		    port > QSE_TYPE_MAX(qse_uint16_t)) return -1; | ||||
|  | ||||
| 		if (tmpad.type == QSE_NWAD_IN4) | ||||
| 			tmpad.u.in4.port = qse_hton16 (port); | ||||
| 		else | ||||
| 			tmpad.u.in6.port = qse_hton16 (port); | ||||
| 	} | ||||
|  | ||||
| done: | ||||
| 	if (nwad) *nwad = tmpad; | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| int qse_wcstonwad (const qse_wchar_t* str, qse_nwad_t* nwad) | ||||
| { | ||||
| 	return qse_wcsntonwad (str, qse_wcslen(str), nwad); | ||||
| } | ||||
|  | ||||
| int qse_wcsntonwad (const qse_wchar_t* str, qse_size_t len, qse_nwad_t* nwad) | ||||
| { | ||||
| 	const qse_wchar_t* p; | ||||
| 	const qse_wchar_t* end; | ||||
| 	qse_wcstr_t tmp; | ||||
| 	qse_nwad_t tmpad; | ||||
|  | ||||
| 	QSE_MEMSET (&tmpad, 0, QSE_SIZEOF(tmpad)); | ||||
|  | ||||
| 	p = str; | ||||
| 	end = str + len; | ||||
|  | ||||
| 	if (p >= end) return -1; | ||||
|  | ||||
| 	if (*p == QSE_WT('@') && len >= 2) | ||||
| 	{ | ||||
| 		/* the string begins with @. it's a local name */ | ||||
| 	#if defined(QSE_CHAR_IS_MCHAR) | ||||
| 		qse_size_t wcslen = len - 1; | ||||
| 		qse_size_t mbslen = QSE_COUNTOF(tmpad.u.local.path) - 1; | ||||
| 		if (qse_wcsntombsn (p + 1, &wcslen, tmpad.u.local.path, &mbslen) <= -1) return -1; | ||||
| 		tmpad.u.local.path[mbslen] = QSE_MT('\0'); | ||||
| 	#else | ||||
| 		qse_wcsxncpy (tmpad.u.local.path, QSE_COUNTOF(tmpad.u.local.path), p + 1, len - 1); | ||||
| 	#endif | ||||
|  | ||||
| 		tmpad.type = QSE_NWAD_LOCAL; | ||||
| 		goto done; | ||||
| 	} | ||||
|  | ||||
| 	if (*p == QSE_WT('[')) | ||||
| 	{ | ||||
| 		/* IPv6 address */ | ||||
| 		tmp.ptr = ++p; /* skip [ and remember the position */ | ||||
| 		while (p < end && *p != QSE_WT('%') && *p != QSE_WT(']')) p++; | ||||
|  | ||||
| 		if (p >= end) return -1; | ||||
|  | ||||
| 		tmp.len = p - tmp.ptr; | ||||
| 		if (*p == QSE_WT('%')) | ||||
| 		{ | ||||
| 			/* handle scope id */ | ||||
| 			qse_uint32_t x; | ||||
|  | ||||
| 			p++; /* skip % */ | ||||
|  | ||||
| 			if (p >= end) | ||||
| 			{ | ||||
| 				/* premature end */ | ||||
| 				return -1; | ||||
| 			} | ||||
|  | ||||
| 			if (*p >= QSE_WT('0') && *p <= QSE_WT('9'))  | ||||
| 			{ | ||||
| 				/* numeric scope id */ | ||||
| 				tmpad.u.in6.scope = 0; | ||||
| 				do | ||||
| 				{ | ||||
| 					x = tmpad.u.in6.scope * 10 + (*p - QSE_WT('0')); | ||||
| 					if (x < tmpad.u.in6.scope) return -1; /* overflow */ | ||||
| 					tmpad.u.in6.scope = x; | ||||
| 					p++; | ||||
| 				} | ||||
| 				while (p < end && *p >= QSE_WT('0') && *p <= QSE_WT('9')); | ||||
| 			} | ||||
| 			else | ||||
| 			{ | ||||
| 				/* interface name as a scope id? */ | ||||
| 				const qse_wchar_t* stmp = p; | ||||
| 				unsigned int index; | ||||
| 				do p++; while (p < end && *p != QSE_WT(']')); | ||||
| 				if (qse_nwifwcsntoindex (stmp, p - stmp, &index) <= -1) return -1; | ||||
| 				tmpad.u.in6.scope = index; | ||||
| 			} | ||||
|  | ||||
| 			if (p >= end || *p != QSE_WT(']')) return -1; | ||||
| 		} | ||||
| 		p++; /* skip ] */ | ||||
|  | ||||
| 		if (qse_wcsntoip6ad (tmp.ptr, tmp.len, &tmpad.u.in6.addr) <= -1) return -1; | ||||
| 		tmpad.type = QSE_NWAD_IN6; | ||||
| 	} | ||||
| 	else | ||||
| 	{ | ||||
| 		/* host name or IPv4 address */ | ||||
| 		tmp.ptr = p; | ||||
| 		while (p < end && *p != QSE_WT(':')) p++; | ||||
| 		tmp.len = p - tmp.ptr; | ||||
|  | ||||
| 		if (qse_wcsntoip4ad (tmp.ptr, tmp.len, &tmpad.u.in4.addr) <= -1) | ||||
| 		{ | ||||
| 			if (p >= end || *p != QSE_WT(':')) return -1; | ||||
|  | ||||
| 			/* check if it is an IPv6 address not enclosed in [].  | ||||
| 			 * the port number can't be specified in this format. */ | ||||
|  | ||||
| 			while (p < end && *p != QSE_WT('%')) p++; | ||||
| 			tmp.len = p - tmp.ptr; | ||||
|  | ||||
| 			if (qse_wcsntoip6ad (tmp.ptr, tmp.len, &tmpad.u.in6.addr) <= -1)  | ||||
| 				return -1; | ||||
|  | ||||
| 			if (p < end && *p == QSE_WT('%')) | ||||
| 			{ | ||||
| 				/* handle scope id */ | ||||
| 				qse_uint32_t x; | ||||
|  | ||||
| 				p++; /* skip % */ | ||||
|  | ||||
| 				if (p >= end) | ||||
| 				{ | ||||
| 					/* premature end */ | ||||
| 					return -1; | ||||
| 				} | ||||
|  | ||||
| 				if (*p >= QSE_WT('0') && *p <= QSE_WT('9'))  | ||||
| 				{ | ||||
| 					/* numeric scope id */ | ||||
| 					tmpad.u.in6.scope = 0; | ||||
| 					do | ||||
| 					{ | ||||
| 						x = tmpad.u.in6.scope * 10 + (*p - QSE_WT('0')); | ||||
| 						if (x < tmpad.u.in6.scope) return -1; /* overflow */ | ||||
| 						tmpad.u.in6.scope = x; | ||||
| 						p++; | ||||
| 					} | ||||
| 					while (p < end && *p >= QSE_WT('0') && *p <= QSE_WT('9')); | ||||
| 				} | ||||
| 				else | ||||
| 				{ | ||||
| 					/* interface name as a scope id? */ | ||||
| 					const qse_wchar_t* stmp = p; | ||||
| 					unsigned int index; | ||||
| 					do p++; while (p < end); | ||||
| 					if (qse_nwifwcsntoindex (stmp, p - stmp, &index) <= -1) return -1; | ||||
| 					tmpad.u.in6.scope = index; | ||||
| 				} | ||||
| 			} | ||||
|  | ||||
| 			if (p < end) return -1; | ||||
|  | ||||
| 			tmpad.type = QSE_NWAD_IN6; | ||||
| 			goto done; | ||||
| 		} | ||||
|  | ||||
| 		tmpad.type = QSE_NWAD_IN4; | ||||
| 	} | ||||
|  | ||||
| 	if (p < end && *p == QSE_WT(':'))  | ||||
| 	{ | ||||
| 		/* port number */ | ||||
| 		qse_uint32_t port = 0; | ||||
|  | ||||
| 		p++; /* skip : */ | ||||
|  | ||||
| 		tmp.ptr = p; | ||||
| 		while (p < end && *p >= QSE_WT('0') && *p <= QSE_WT('9')) | ||||
| 		{ | ||||
| 			port = port * 10 + (*p - QSE_WT('0')); | ||||
| 			p++; | ||||
| 		} | ||||
|  | ||||
| 		tmp.len = p - tmp.ptr; | ||||
| 		if (tmp.len <= 0 || tmp.len >= 6 ||  | ||||
| 		    port > QSE_TYPE_MAX(qse_uint16_t)) return -1; | ||||
|  | ||||
| 		if (tmpad.type == QSE_NWAD_IN4) | ||||
| 			tmpad.u.in4.port = qse_hton16 (port); | ||||
| 		else | ||||
| 			tmpad.u.in6.port = qse_hton16 (port); | ||||
| 	} | ||||
|  | ||||
| done: | ||||
| 	if (nwad) *nwad = tmpad; | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| qse_size_t qse_nwadtombs ( | ||||
| 	const qse_nwad_t* nwad, qse_mchar_t* buf, qse_size_t len, int flags) | ||||
| { | ||||
| 	qse_size_t xlen = 0; | ||||
|  | ||||
| 	/* unsupported types will result in an empty string */ | ||||
|  | ||||
| 	switch (nwad->type) | ||||
| 	{ | ||||
| 		case QSE_NWAD_IN4: | ||||
| 			if (flags & QSE_NWADTOMBS_ADDR) | ||||
| 			{ | ||||
| 				if (xlen + 1 >= len) goto done; | ||||
| 				xlen += qse_ip4adtombs (&nwad->u.in4.addr, buf, len); | ||||
| 			} | ||||
|  | ||||
| 			if (flags & QSE_NWADTOMBS_PORT) | ||||
| 			{ | ||||
| 				if (!(flags & QSE_NWADTOMBS_ADDR) ||  | ||||
| 				    nwad->u.in4.port != 0) | ||||
| 				{ | ||||
| 					if (flags & QSE_NWADTOMBS_ADDR) | ||||
| 					{ | ||||
| 						if (xlen + 1 >= len) goto done; | ||||
| 						buf[xlen++] = QSE_MT(':'); | ||||
| 					} | ||||
|  | ||||
| 					if (xlen + 1 >= len) goto done; | ||||
| 					xlen += qse_fmtuintmaxtombs ( | ||||
| 						&buf[xlen], len - xlen,  | ||||
| 						qse_ntoh16(nwad->u.in4.port), | ||||
| 						10, 0, QSE_MT('\0'), QSE_NULL); | ||||
| 				} | ||||
| 			} | ||||
| 			break; | ||||
|  | ||||
| 		case QSE_NWAD_IN6: | ||||
| 			if (flags & QSE_NWADTOMBS_PORT) | ||||
| 			{ | ||||
| 				if (!(flags & QSE_NWADTOMBS_ADDR) ||  | ||||
| 				    nwad->u.in6.port != 0) | ||||
| 				{ | ||||
| 					if (flags & QSE_NWADTOMBS_ADDR) | ||||
| 					{ | ||||
| 						if (xlen + 1 >= len) goto done; | ||||
| 						buf[xlen++] = QSE_MT('[');	 | ||||
| 					} | ||||
| 				} | ||||
| 			} | ||||
|  | ||||
| 			if (flags & QSE_NWADTOMBS_ADDR) | ||||
| 			{ | ||||
|  | ||||
| 				if (xlen + 1 >= len) goto done; | ||||
| 				xlen += qse_ip6adtombs (&nwad->u.in6.addr, &buf[xlen], len - xlen); | ||||
| 			 | ||||
| 				if (nwad->u.in6.scope != 0) | ||||
| 				{ | ||||
| 					int tmp; | ||||
|  | ||||
| 					if (xlen + 1 >= len) goto done; | ||||
| 					buf[xlen++] = QSE_MT('%'); | ||||
|  | ||||
| 					if (xlen + 1 >= len) goto done; | ||||
|  | ||||
| 					tmp = qse_nwifindextombs (nwad->u.in6.scope, &buf[xlen], len - xlen); | ||||
| 					if (tmp <= -1) | ||||
| 					{ | ||||
| 						xlen += qse_fmtuintmaxtombs ( | ||||
| 							&buf[xlen], len - xlen,  | ||||
| 							nwad->u.in6.scope, 10, 0, QSE_MT('\0'), QSE_NULL); | ||||
| 					} | ||||
| 					else xlen += tmp; | ||||
| 				} | ||||
| 			} | ||||
|  | ||||
| 			if (flags & QSE_NWADTOMBS_PORT) | ||||
| 			{ | ||||
| 				if (!(flags & QSE_NWADTOMBS_ADDR) ||  | ||||
| 				    nwad->u.in6.port != 0)  | ||||
| 				{ | ||||
| 					if (flags & QSE_NWADTOMBS_ADDR) | ||||
| 					{ | ||||
| 						if (xlen + 1 >= len) goto done; | ||||
| 						buf[xlen++] = QSE_MT(']'); | ||||
|  | ||||
| 						if (xlen + 1 >= len) goto done; | ||||
| 						buf[xlen++] = QSE_MT(':'); | ||||
| 					} | ||||
|  | ||||
| 					if (xlen + 1 >= len) goto done; | ||||
| 					xlen += qse_fmtuintmaxtombs ( | ||||
| 						&buf[xlen], len - xlen,  | ||||
| 						qse_ntoh16(nwad->u.in6.port), | ||||
| 						10, 0, QSE_MT('\0'), QSE_NULL); | ||||
| 				} | ||||
| 			} | ||||
|  | ||||
| 			break; | ||||
|  | ||||
| 		case QSE_NWAD_LOCAL: | ||||
| 			if (flags & QSE_NWADTOMBS_ADDR) | ||||
| 			{ | ||||
| 				if (xlen + 1 >= len) goto done; | ||||
| 				buf[xlen++] = QSE_MT('@'); | ||||
|  | ||||
| 			#if defined(QSE_CHAR_IS_MCHAR) | ||||
| 				if (xlen + 1 >= len) goto done; | ||||
| 				xlen += qse_mbsxcpy (&buf[xlen], len - xlen, nwad->u.local.path); | ||||
| 			#else | ||||
| 				if (xlen + 1 >= len) goto done; | ||||
| 				else | ||||
| 				{ | ||||
| 					qse_size_t wcslen, mbslen = len - xlen; | ||||
| 					qse_wcstombs (nwad->u.local.path, &wcslen, &buf[xlen], &mbslen); | ||||
| 					/* i don't care about conversion errors */ | ||||
| 					xlen += mbslen; | ||||
| 				} | ||||
| 			#endif | ||||
| 			} | ||||
|  | ||||
| 			break; | ||||
| 	} | ||||
|  | ||||
| done: | ||||
| 	if (xlen < len) buf[xlen] = QSE_MT('\0'); | ||||
| 	return xlen; | ||||
| } | ||||
|  | ||||
|  | ||||
| qse_size_t qse_nwadtowcs ( | ||||
| 	const qse_nwad_t* nwad, qse_wchar_t* buf, qse_size_t len, int flags) | ||||
| { | ||||
| 	qse_size_t xlen = 0; | ||||
|  | ||||
| 	/* unsupported types will result in an empty string */ | ||||
|  | ||||
| 	switch (nwad->type) | ||||
| 	{ | ||||
| 		case QSE_NWAD_IN4: | ||||
| 			if (flags & QSE_NWADTOWCS_ADDR) | ||||
| 			{ | ||||
| 				if (xlen + 1 >= len) goto done; | ||||
| 				xlen += qse_ip4adtowcs (&nwad->u.in4.addr, buf, len); | ||||
| 			} | ||||
|  | ||||
| 			if (flags & QSE_NWADTOWCS_PORT) | ||||
| 			{ | ||||
| 				if (!(flags & QSE_NWADTOMBS_ADDR) ||  | ||||
| 				    nwad->u.in4.port != 0) | ||||
| 				{ | ||||
| 					if (flags & QSE_NWADTOMBS_ADDR) | ||||
| 					{ | ||||
| 						if (xlen + 1 >= len) goto done; | ||||
| 						buf[xlen++] = QSE_WT(':'); | ||||
| 					} | ||||
|  | ||||
| 					if (xlen + 1 >= len) goto done; | ||||
| 					xlen += qse_fmtuintmaxtowcs ( | ||||
| 						&buf[xlen], len - xlen,  | ||||
| 						qse_ntoh16(nwad->u.in4.port), | ||||
| 						10, 0, QSE_WT('\0'), QSE_NULL); | ||||
| 				} | ||||
| 			} | ||||
| 			break; | ||||
|  | ||||
| 		case QSE_NWAD_IN6: | ||||
| 			if (flags & QSE_NWADTOWCS_PORT) | ||||
| 			{ | ||||
| 				if (!(flags & QSE_NWADTOMBS_ADDR) ||  | ||||
| 				    nwad->u.in6.port != 0) | ||||
| 				{ | ||||
| 					if (flags & QSE_NWADTOMBS_ADDR) | ||||
| 					{ | ||||
| 						if (xlen + 1 >= len) goto done; | ||||
| 						buf[xlen++] = QSE_WT('[');	 | ||||
| 					} | ||||
| 				} | ||||
| 			} | ||||
|  | ||||
| 			if (flags & QSE_NWADTOWCS_ADDR) | ||||
| 			{ | ||||
| 				if (xlen + 1 >= len) goto done; | ||||
| 				xlen += qse_ip6adtowcs (&nwad->u.in6.addr, &buf[xlen], len - xlen); | ||||
| 			 | ||||
| 				if (nwad->u.in6.scope != 0) | ||||
| 				{ | ||||
| 					int tmp; | ||||
|  | ||||
| 					if (xlen + 1 >= len) goto done; | ||||
| 					buf[xlen++] = QSE_WT('%'); | ||||
|  | ||||
| 					if (xlen + 1 >= len) goto done; | ||||
|  | ||||
| 					tmp = qse_nwifindextowcs (nwad->u.in6.scope, &buf[xlen], len - xlen); | ||||
| 					if (tmp <= -1) | ||||
| 					{ | ||||
| 						xlen += qse_fmtuintmaxtowcs ( | ||||
| 							&buf[xlen], len - xlen,  | ||||
| 							nwad->u.in6.scope, 10, 0, QSE_WT('\0'), QSE_NULL); | ||||
| 					} | ||||
| 					else xlen += tmp; | ||||
| 				} | ||||
| 			} | ||||
|  | ||||
| 			if (flags & QSE_NWADTOWCS_PORT) | ||||
| 			{ | ||||
| 				if (!(flags & QSE_NWADTOMBS_ADDR) ||  | ||||
| 				    nwad->u.in6.port != 0)  | ||||
| 				{ | ||||
| 					if (flags & QSE_NWADTOMBS_ADDR) | ||||
| 					{ | ||||
| 						if (xlen + 1 >= len) goto done; | ||||
| 						buf[xlen++] = QSE_WT(']'); | ||||
|  | ||||
| 						if (xlen + 1 >= len) goto done; | ||||
| 						buf[xlen++] = QSE_WT(':'); | ||||
| 					} | ||||
|  | ||||
| 					if (xlen + 1 >= len) goto done; | ||||
| 					xlen += qse_fmtuintmaxtowcs ( | ||||
| 						&buf[xlen], len - xlen,  | ||||
| 						qse_ntoh16(nwad->u.in6.port), | ||||
| 						10, 0, QSE_WT('\0'), QSE_NULL); | ||||
| 				} | ||||
| 			} | ||||
|  | ||||
| 			break; | ||||
|  | ||||
| 		case QSE_NWAD_LOCAL: | ||||
| 			if (flags & QSE_NWADTOMBS_ADDR) | ||||
| 			{ | ||||
| 				if (xlen + 1 >= len) goto done; | ||||
| 				buf[xlen++] = QSE_WT('@'); | ||||
|  | ||||
| 			#if defined(QSE_CHAR_IS_MCHAR) | ||||
| 				if (xlen + 1 >= len) goto done; | ||||
| 				else | ||||
| 				{ | ||||
| 					qse_size_t wcslen = len - xlen, mbslen; | ||||
| 					qse_mbstowcs (nwad->u.local.path, &mbslen, &buf[xlen], &wcslen); | ||||
| 					/* i don't care about conversion errors */ | ||||
| 					xlen += wcslen; | ||||
| 				} | ||||
| 			#else | ||||
| 				if (xlen + 1 >= len) goto done; | ||||
| 				xlen += qse_wcsxcpy (&buf[xlen], len - xlen, nwad->u.local.path); | ||||
| 			#endif | ||||
| 			} | ||||
| 	} | ||||
|  | ||||
| done: | ||||
| 	if (xlen < len) buf[xlen] = QSE_WT('\0'); | ||||
| 	return xlen; | ||||
| } | ||||
|  | ||||
| @ -28,7 +28,7 @@ | ||||
| #include <qse/cmn/str.h> | ||||
| #include <qse/cmn/mbwc.h> | ||||
| #include <qse/si/sio.h> | ||||
| #include "mem.h" | ||||
| #include "../cmn/mem.h" | ||||
|  | ||||
| #if defined(_WIN32) | ||||
| #	include <winsock2.h> | ||||
|  | ||||
| @ -27,7 +27,7 @@ | ||||
| #include <qse/si/nwif.h> | ||||
| #include <qse/cmn/str.h> | ||||
| #include <qse/cmn/mbwc.h> | ||||
| #include "mem.h" | ||||
| #include "../cmn/mem.h" | ||||
|  | ||||
| #if defined(_WIN32) | ||||
| 	/* TODO: */ | ||||
|  | ||||
							
								
								
									
										407
									
								
								qse/lib/si/sck.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										407
									
								
								qse/lib/si/sck.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,407 @@ | ||||
| /* | ||||
|  * $Id$ | ||||
|  * | ||||
|     Copyright (c) 2006-2014 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. | ||||
|  */ | ||||
|  | ||||
| #include <qse/cmn/sck.h> | ||||
|  | ||||
| #if defined(_WIN32) | ||||
| #	include <winsock2.h> | ||||
| #	include <ws2tcpip.h> /* sockaddr_in6 */ | ||||
| #	include <windows.h> | ||||
| #elif defined(__OS2__) | ||||
| #	if defined(TCPV40HDRS) | ||||
| #		define  BSD_SELECT | ||||
| #	endif | ||||
| #	include <types.h> | ||||
| #	include <sys/socket.h> | ||||
| #	include <netinet/in.h> | ||||
| #	include <sys/ioctl.h> | ||||
| #	include <nerrno.h> | ||||
| #	if defined(TCPV40HDRS) | ||||
| #		define  USE_SELECT | ||||
| #		include <sys/select.h> | ||||
| #	else | ||||
| #		include <unistd.h> | ||||
| #	endif | ||||
| #elif defined(__DOS__) | ||||
| #	include <tcp.h> /* watt-32 */ | ||||
|  | ||||
| #elif defined(HAVE_T_CONNECT) && !defined(HAVE_CONNECT) && defined(HAVE_TIUSER_H) | ||||
|  | ||||
| #	include "syscall.h" | ||||
| #	include <tiuser.h> | ||||
| #	define USE_TLI | ||||
|  | ||||
| #else | ||||
| #	include "syscall.h" | ||||
| #	include <sys/socket.h> | ||||
| #	include <netinet/in.h> | ||||
| #	if defined(HAVE_NETINET_SCTP_H) | ||||
| #		include <netinet/sctp.h> | ||||
| #	endif | ||||
| #endif | ||||
|  | ||||
|  | ||||
| #if !defined(SHUT_RD) | ||||
| #	define SHUT_RD 0 | ||||
| #endif | ||||
|  | ||||
| #if !defined(SHUT_WR) | ||||
| #	define SHUT_WR 1 | ||||
| #endif | ||||
|  | ||||
| #if !defined(SHUT_RDWR) | ||||
| #	define SHUT_RDWR 2 | ||||
| #endif | ||||
|  | ||||
| QSE_INLINE int qse_isvalidsckhnd (qse_sck_hnd_t handle) | ||||
| { | ||||
| #if defined(_WIN32) | ||||
| 	return handle != QSE_INVALID_SCKHND; | ||||
|  | ||||
| #elif defined(__OS2__) | ||||
| 	return handle >= 0; | ||||
|  | ||||
| #elif defined(__DOS__) | ||||
| 	return handle >= 0; | ||||
|  | ||||
| #elif defined(USE_TLI) | ||||
| 	return handle >= 0; | ||||
|  | ||||
| #else | ||||
| 	return handle >= 0; | ||||
| #endif | ||||
| } | ||||
|  | ||||
| QSE_INLINE void qse_closesckhnd (qse_sck_hnd_t handle) | ||||
| { | ||||
| #if defined(_WIN32) | ||||
| 	closesocket (handle); | ||||
|  | ||||
| #elif defined(__OS2__) | ||||
| 	soclose (handle); | ||||
|  | ||||
| #elif defined(__DOS__) | ||||
| 	close_s (handle); | ||||
|  | ||||
| #elif defined(USE_TLI) | ||||
| 	t_close (handle); | ||||
|  | ||||
| #else | ||||
| 	QSE_CLOSE (handle); | ||||
| #endif | ||||
| } | ||||
|  | ||||
| QSE_INLINE void qse_shutsckhnd (qse_sck_hnd_t handle, qse_shutsckhnd_how_t how) | ||||
| { | ||||
| 	static int how_v[] = { SHUT_RD, SHUT_WR, SHUT_RDWR }; | ||||
|  | ||||
| #if defined(_WIN32) | ||||
| 	shutdown (handle, how_v[how]); | ||||
|  | ||||
| #elif defined(__OS2__) | ||||
| 	shutdown (handle, how_v[how]); | ||||
|  | ||||
| #elif defined(__DOS__) | ||||
| 	shutdown (handle, how_v[how]); | ||||
|  | ||||
| #elif defined(USE_TLI) | ||||
| 	/* Is this correct? */ | ||||
| 	switch (how) | ||||
| 	{ | ||||
| 		case QSE_SHUTSCKHND_R: | ||||
| 			t_rcvrel (handle); | ||||
| 			break; | ||||
| 		case QSE_SHUTSCKHND_W: | ||||
| 			t_sndrel (handle); | ||||
| 			break; | ||||
| 		case QSE_SHUTSCKHND_RW: | ||||
| 			t_rcvrel (handle); | ||||
| 			t_sndrel (handle); | ||||
| 			break; | ||||
| 	} | ||||
|  | ||||
| #else | ||||
| 	shutdown (handle, how_v[how]); | ||||
| #endif | ||||
| } | ||||
|  | ||||
| int qse_setscknonblock (qse_sck_hnd_t handle, int enabled) | ||||
| { | ||||
| #if defined(_WIN32) | ||||
| 	if (ioctlsocket (handle, FIONBIO, &enabled) == SOCKET_ERROR) return -1; | ||||
| 	return 0; | ||||
|  | ||||
| #elif defined(__OS2__) | ||||
|  | ||||
| 	if (ioctl (handle, FIONBIO, (char*)&enabled, sizeof(enabled)) <= -1) return -1; | ||||
| 	return 0; | ||||
|  | ||||
| #elif defined(__DOS__) | ||||
|  | ||||
| 	if (ioctlsocket (handle, FIONBIO, (char*)&enabled) == SOCKET_ERROR) return -1; | ||||
| 	return 0; | ||||
|  | ||||
| #elif defined(O_NONBLOCK) | ||||
|  | ||||
| 	int flag = fcntl (handle, F_GETFL); | ||||
| 	if (flag >= 0) flag = fcntl (handle, F_SETFL, (enabled? (flag | O_NONBLOCK): (flag & ~O_NONBLOCK))); | ||||
| 	if (flag <= -1) return -1; | ||||
| 	return 0; | ||||
|  | ||||
| #else | ||||
|  | ||||
| 	return -1; | ||||
| #endif | ||||
| } | ||||
|  | ||||
| int qse_initsckconn (qse_sck_hnd_t handle, const qse_nwad_t* nwad) | ||||
| { | ||||
| 	int n; | ||||
| #if defined(_WIN32) | ||||
| 	unsigned long cmd; | ||||
| #elif defined(__OS2__) | ||||
| 	int enabled; | ||||
| #else | ||||
| 	int saved = 0; | ||||
| #endif | ||||
| 	qse_skad_t skad; | ||||
| 	int skadlen; | ||||
|  | ||||
| 	skadlen = qse_nwadtoskad (nwad, &skad); | ||||
| 	if (skadlen <= -1) return -1; | ||||
|  | ||||
| #if defined(_WIN32) | ||||
| 	/* switch to the non-blocking mode */ | ||||
| 	cmd = 1; | ||||
| 	if (ioctlsocket(handle, FIONBIO, &cmd) == SOCKET_ERROR)  | ||||
| 	{ | ||||
| 		/* error code in WSAGetLastError() */ | ||||
| 		return -1; | ||||
| 	} | ||||
|  | ||||
| 	/* attempt to connet */ | ||||
| 	n = connect (handle, (struct sockaddr*)&skad, skadlen); | ||||
| 	if (n == -1 && WSAGetLastError() != WSAEWOULDBLOCK)  | ||||
| 	{ | ||||
| 		/* attempt to restore to the blocking mode upon failure. | ||||
| 		 * there is no guarantee that this was the previous mode. */ | ||||
| 		cmd = 0; | ||||
| 		ioctlsocket (handle, FIONBIO, &cmd);  | ||||
| 		return -1; | ||||
| 	} | ||||
| #elif defined(__OS2__) | ||||
|  | ||||
| 	enabled = 1; | ||||
| 	if (ioctl (handle, FIONBIO, (char*)&enabled, sizeof(enabled)) <= -1) return -1; | ||||
|  | ||||
| 	/* attempt to connet */ | ||||
| 	n = connect (handle, (struct sockaddr*)&skad, skadlen); | ||||
| 	if (n == -1 && sock_errno() != EINPROGRESS) | ||||
| 	{ | ||||
| 		/* attempt to restore to the blocking mode upon failure. | ||||
| 		 * there is no guarantee that this was the previous mode. */ | ||||
| 		enabled = 0; | ||||
| 		ioctl (handle, FIONBIO, (char*)&enabled, sizeof(enabled)); | ||||
| 		return -1; | ||||
| 	} | ||||
|  | ||||
| #else | ||||
|  | ||||
| 	/* switch to the non-blocking mode */ | ||||
| 	saved = fcntl (handle, F_GETFL, 0); | ||||
| 	if (saved == -1) return -1; | ||||
| 	if (fcntl (handle, F_SETFL, saved | O_NONBLOCK) == -1) return -1; | ||||
|  | ||||
| 	/* attempt to connet */ | ||||
| 	do  | ||||
| 	{ | ||||
| 		n = connect (handle, (struct sockaddr*)&skad, skadlen); | ||||
| 	} | ||||
| 	while (n == -1 && errno == EINTR); | ||||
|  | ||||
| 	if (n == -1 && errno != EINPROGRESS)  | ||||
| 	{ | ||||
| 		fcntl (handle, F_SETFL, saved); /* restore the flags upon failure */ | ||||
| 		return -1; | ||||
| 	} | ||||
| #endif | ||||
|  | ||||
| 	/* the socket still remains in the non-blocking mode */ | ||||
| 	return (n == 0)? 1: 0; /* 1: connected, 0: in progress */ | ||||
| } | ||||
|  | ||||
| int qse_finisckconn (qse_sck_hnd_t handle) | ||||
| { | ||||
| 	int ret; | ||||
| 	qse_sck_len_t len; | ||||
|  | ||||
| 	len = (qse_sck_len_t)QSE_SIZEOF (ret); | ||||
| 	if (getsockopt (handle, SOL_SOCKET, SO_ERROR, (char*)&ret, &len) == -1) return -1; | ||||
|  | ||||
| #if defined(_WIN32) | ||||
| 	if (ret == WSAETIMEDOUT)  | ||||
| #else | ||||
| 	if (ret == ETIMEDOUT)  | ||||
| #endif | ||||
| 	{ | ||||
| 		return -1; /* failure - timed out */ | ||||
| 	} | ||||
| #if defined(_WIN32) | ||||
| 	else if (ret == WSAEWOULDBLOCK)  | ||||
| #else | ||||
| 	else if (ret == EINPROGRESS)  | ||||
| #endif | ||||
| 	{ | ||||
| 		return 0; /* in preogress */ | ||||
| 	} | ||||
| 	else if (ret != 0)  | ||||
| 	{ | ||||
| 		return -1; /* failure */ | ||||
| 	} | ||||
|  | ||||
| 	return 1; /* connected */ | ||||
| } | ||||
|  | ||||
| #if 0 | ||||
| qse_sck_hnd_t | ||||
|  | ||||
|  | ||||
| int qse_sck_open (qse_mmgr_t* mmgr, qse_sck_type_t type) | ||||
| { | ||||
| } | ||||
|  | ||||
| void qse_sck_close (qse_sck_t* sck) | ||||
| { | ||||
| } | ||||
|  | ||||
| int qse_sck_init (qse_sck_t* sck, qse_mmgr_t* mmgr, qse_sck_type_t type) | ||||
| { | ||||
| 	int domain, type, proto = 0; | ||||
|  | ||||
| 	switch (type) | ||||
| 	{ | ||||
| 		case QSE_SCK_TCP4: | ||||
| 			domain = AF_INET; | ||||
| 			type = SOCK_STREAM; | ||||
| 			break; | ||||
|  | ||||
| 		case QSE_SCK_TCP6: | ||||
| 			domain = AF_INET6; | ||||
| 			type = SOCK_STREAM; | ||||
| 			break; | ||||
|  | ||||
| 		case QSE_SCK_UDP4: | ||||
| 			domain = AF_INET; | ||||
| 			type = SOCK_DGRAM; | ||||
| 			break; | ||||
|  | ||||
| 		case QSE_SCK_UDP6: | ||||
| 			domain = AF_INET6; | ||||
| 			type = SOCK_DGRAM; | ||||
| 			break; | ||||
|  | ||||
| 		case QSE_SCK_SCTP4: | ||||
| 			domain = AF_INET; | ||||
| 			type = SCOK_SEQPACKET; | ||||
| 			proto = IPPROTO_SCTP; | ||||
| 			break; | ||||
|  | ||||
| 		case QSE_SCK_SCTP6: | ||||
| 			domain = AF_INET6; | ||||
| 			type = SCOK_SEQPACKET; | ||||
| 			proto = IPPROTO_SCTP; | ||||
| 			break; | ||||
|  | ||||
| 		case QSE_SCK_SCTP4: | ||||
| 			domain = AF_INET; | ||||
| 			type = SCOK_STREAM; | ||||
| 			proto = IPPROTO_SCTP; | ||||
| 			break; | ||||
|  | ||||
| 		case QSE_SCK_SCTP6: | ||||
| 			domain = AF_INET6; | ||||
| 			type = SCOK_STREAM; | ||||
| 			proto = IPPROTO_SCTP; | ||||
| 			break; | ||||
|  | ||||
| #if 0 | ||||
| 		case QSE_SCK_RAW4: | ||||
| 			domain = AF_INET; | ||||
| 			type = SOCK_RAW; | ||||
| 			break; | ||||
|  | ||||
| 		case QSE_SCK_RAW6: | ||||
| 			domain = AF_INET6; | ||||
| 			type = SOCK_RAW; | ||||
| 			break; | ||||
|  | ||||
| 		case QSE_SCK_PACKET: | ||||
| 			domain = AF_PACKET; | ||||
| 			type = SOCK_RAW; | ||||
| 			proto = qse_hton16(ETH_P_ALL); | ||||
| 			break; | ||||
|  | ||||
| 		case QSE_SCK_PACKET: | ||||
| 			domain = AF_PACKET; | ||||
| 			type = SOCK_DGRAM; /* cooked packet with the link level header removed */ | ||||
| 			proto = qse_hton16(ETH_P_ALL); | ||||
| 			break; | ||||
|  | ||||
| 		case QSE_SCK_ARP: | ||||
| 			domain = AF_PACKET; | ||||
| 			type = SOCK_RAW; | ||||
| 			proto = qse_hton16(ETH_P_ARP); | ||||
| 			proto =  | ||||
| #endif | ||||
| 	} | ||||
|  | ||||
| 	sck->handle = socket (domain, type, proto); | ||||
| } | ||||
|  | ||||
| void qse_sck_fini (qse_sck_t* sck) | ||||
| { | ||||
| #if defined(_WIN32) | ||||
| 	closesocket (sck->handle); | ||||
| #elif defined(__OS2__) | ||||
| 	soclose (sck->handle); | ||||
| #elif defined(__DOS__) | ||||
| 	close_s (sck->handle) | ||||
| #else | ||||
| 	QSE_CLOSE (sck->handle); | ||||
| #endif | ||||
| } | ||||
|  | ||||
|  | ||||
| qse_ssize_t qse_recvsocket () | ||||
|  | ||||
| qse_ssize_t recvfromsocket () | ||||
|  | ||||
| qse_ssize_t sendsocket () | ||||
| qse_ssize_t sendtosocket () | ||||
| #endif | ||||
|  | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user