did more migrating works

This commit is contained in:
2016-04-29 03:55:42 +00:00
parent 3fc215d1e7
commit 66dfa3a2fd
211 changed files with 965 additions and 2194 deletions

View File

@ -1,5 +1,5 @@
#include <qse/awk/stdawk.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
static const qse_char_t* script = QSE_T("BEGIN { print \"hello, world\"; }");

View File

@ -1,6 +1,6 @@
#include <qse/awk/stdawk.h>
#include <qse/cmn/str.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <qse/cmn/main.h>
#include "awk00.h"

View File

@ -1,6 +1,6 @@
#include <qse/awk/stdawk.h>
#include <qse/cmn/str.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <qse/cmn/main.h>
#include "awk00.h"

View File

@ -1,5 +1,5 @@
#include <qse/awk/stdawk.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <qse/cmn/main.h>
#include "awk00.h"

View File

@ -1,5 +1,5 @@
#include <qse/awk/stdawk.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <qse/cmn/main.h>
#include "awk00.h"

View File

@ -1,5 +1,5 @@
#include <qse/awk/stdawk.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <qse/cmn/main.h>
#include "awk00.h"

View File

@ -1,5 +1,5 @@
#include <qse/awk/stdawk.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <qse/cmn/main.h>
#include "awk00.h"

View File

@ -1,5 +1,5 @@
#include <qse/awk/stdawk.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <qse/cmn/main.h>
#include "awk00.h"

View File

@ -1,5 +1,5 @@
#include <qse/awk/stdawk.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <qse/cmn/main.h>
#include <qse/cmn/mem.h>
#include <qse/cmn/path.h>

View File

@ -1,5 +1,5 @@
#include <qse/awk/stdawk.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <qse/cmn/main.h>
#include <qse/cmn/mem.h>
#include <qse/cmn/path.h>

View File

@ -25,7 +25,7 @@
*/
#include <qse/awk/stdawk.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
const qse_char_t* src = QSE_T("BEGIN { print \"hello, world\" | \"dir\"; }");

View File

@ -1,5 +1,5 @@
#include <qse/awk/stdawk.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
/* this sample produces 8 text files containing multiplication chart. */

View File

@ -27,7 +27,7 @@
#include <qse/awk/awk.h>
#include <qse/awk/stdawk.h>
#include <qse/cmn/mem.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
static const qse_char_t* src = QSE_T(
"BEGIN {"

View File

@ -1,5 +1,5 @@
#include <qse/awk/StdAwk.hpp>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <string>
#if defined(QSE_CHAR_IS_WCHAR)

View File

@ -1,5 +1,5 @@
#include <qse/awk/StdAwk.hpp>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <string>
#if defined(QSE_CHAR_IS_WCHAR)

View File

@ -25,7 +25,7 @@
*/
#include <qse/awk/StdAwk.hpp>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <qse/cmn/main.h>
#include <qse/cmn/mbwc.h>

View File

@ -29,7 +29,7 @@
#include <qse/cmn/opt.h>
#include <qse/cmn/main.h>
#include <qse/cmn/mbwc.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <cstring>
#include <locale.h>

View File

@ -25,7 +25,7 @@
*/
#include <qse/awk/StdAwk.hpp>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <qse/cmn/main.h>
#include <qse/cmn/mbwc.h>

View File

@ -25,7 +25,7 @@
*/
#include <qse/awk/StdAwk.hpp>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <qse/cmn/main.h>
#include <qse/cmn/mbwc.h>

View File

@ -25,7 +25,7 @@
*/
#include <qse/awk/StdAwk.hpp>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <qse/cmn/main.h>
#include <qse/cmn/mbwc.h>
#include <qse/cmn/str.h>

View File

@ -8,43 +8,34 @@ AM_CPPFLAGS = \
bin_PROGRAMS = \
chr01 \
dir01 \
dll \
env01 \
fma \
fmt01 \
fmt02 \
fs01 \
fs02 \
fs03 \
htb01 \
glob01 \
ipad01 \
lda \
main01 \
main02 \
mbwc01 \
mbwc02 \
nwad01 \
nwif01 \
nwif02 \
oht \
path01 \
pio \
pma \
rex01 \
rbt01 \
sll \
slmb01 \
str01 \
task01 \
str02 \
time \
tre01 \
uri01 \
xma
AM_LDFLAGS = -L../../lib/cmn
LDADD = -lqsecmn
AM_LDFLAGS = -L../../lib/si -L../../lib/cmn
LDADD = -lqsesi -lqsecmn
if WIN32
if WCHAR
@ -58,8 +49,6 @@ dll_SOURCES = dll.c
fma_SOURCES = fma.c
fmt01_SOURCES = fmt01.c
fmt02_SOURCES = fmt02.c
fs01_SOURCES = fs01.c
glob01_SOURCES = glob01.c
htb01_SOURCES = htb01.c
ipad01_SOURCES = ipad01.c
lda_SOURCES = lda.c
@ -67,10 +56,8 @@ main01_SOURCES = main01.c
main02_SOURCES = main02.c
mbwc01_SOURCES = mbwc01.c
mbwc02_SOURCES = mbwc02.c
nwad01_SOURCES = nwad01.c
oht_SOURCES = oht.c
path01_SOURCES = path01.c
pio_SOURCES = pio.c
pma_SOURCES = pma.c
rex01_SOURCES = rex01.c
rbt01_SOURCES = rbt01.c

View File

@ -78,16 +78,13 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
bin_PROGRAMS = chr01$(EXEEXT) dir01$(EXEEXT) dll$(EXEEXT) \
env01$(EXEEXT) fma$(EXEEXT) fmt01$(EXEEXT) fmt02$(EXEEXT) \
fs01$(EXEEXT) fs02$(EXEEXT) fs03$(EXEEXT) htb01$(EXEEXT) \
glob01$(EXEEXT) ipad01$(EXEEXT) lda$(EXEEXT) main01$(EXEEXT) \
main02$(EXEEXT) mbwc01$(EXEEXT) mbwc02$(EXEEXT) \
nwad01$(EXEEXT) nwif01$(EXEEXT) nwif02$(EXEEXT) oht$(EXEEXT) \
path01$(EXEEXT) pio$(EXEEXT) pma$(EXEEXT) rex01$(EXEEXT) \
rbt01$(EXEEXT) sll$(EXEEXT) slmb01$(EXEEXT) str01$(EXEEXT) \
task01$(EXEEXT) time$(EXEEXT) tre01$(EXEEXT) uri01$(EXEEXT) \
xma$(EXEEXT) $(am__EXEEXT_1)
bin_PROGRAMS = chr01$(EXEEXT) dll$(EXEEXT) env01$(EXEEXT) fma$(EXEEXT) \
fmt01$(EXEEXT) fmt02$(EXEEXT) htb01$(EXEEXT) ipad01$(EXEEXT) \
lda$(EXEEXT) main01$(EXEEXT) main02$(EXEEXT) mbwc01$(EXEEXT) \
mbwc02$(EXEEXT) oht$(EXEEXT) path01$(EXEEXT) pma$(EXEEXT) \
rex01$(EXEEXT) rbt01$(EXEEXT) sll$(EXEEXT) slmb01$(EXEEXT) \
str01$(EXEEXT) str02$(EXEEXT) time$(EXEEXT) tre01$(EXEEXT) \
uri01$(EXEEXT) xma$(EXEEXT) $(am__EXEEXT_1)
@WCHAR_TRUE@@WIN32_TRUE@am__append_1 = $(UNICOWS_LIBS)
#bin_PROGRAMS += rex02
@ -146,10 +143,6 @@ am_chr01_OBJECTS = chr01.$(OBJEXT)
chr01_OBJECTS = $(am_chr01_OBJECTS)
chr01_LDADD = $(LDADD)
chr01_DEPENDENCIES = $(am__DEPENDENCIES_2)
dir01_SOURCES = dir01.c
dir01_OBJECTS = dir01.$(OBJEXT)
dir01_LDADD = $(LDADD)
dir01_DEPENDENCIES = $(am__DEPENDENCIES_2)
am_dll_OBJECTS = dll.$(OBJEXT)
dll_OBJECTS = $(am_dll_OBJECTS)
dll_LDADD = $(LDADD)
@ -170,22 +163,6 @@ am_fmt02_OBJECTS = fmt02.$(OBJEXT)
fmt02_OBJECTS = $(am_fmt02_OBJECTS)
fmt02_LDADD = $(LDADD)
fmt02_DEPENDENCIES = $(am__DEPENDENCIES_2)
am_fs01_OBJECTS = fs01.$(OBJEXT)
fs01_OBJECTS = $(am_fs01_OBJECTS)
fs01_LDADD = $(LDADD)
fs01_DEPENDENCIES = $(am__DEPENDENCIES_2)
fs02_SOURCES = fs02.c
fs02_OBJECTS = fs02.$(OBJEXT)
fs02_LDADD = $(LDADD)
fs02_DEPENDENCIES = $(am__DEPENDENCIES_2)
fs03_SOURCES = fs03.c
fs03_OBJECTS = fs03.$(OBJEXT)
fs03_LDADD = $(LDADD)
fs03_DEPENDENCIES = $(am__DEPENDENCIES_2)
am_glob01_OBJECTS = glob01.$(OBJEXT)
glob01_OBJECTS = $(am_glob01_OBJECTS)
glob01_LDADD = $(LDADD)
glob01_DEPENDENCIES = $(am__DEPENDENCIES_2)
am__hl01_SOURCES_DIST = hl01.cpp
@ENABLE_CXX_TRUE@am_hl01_OBJECTS = hl01.$(OBJEXT)
hl01_OBJECTS = $(am_hl01_OBJECTS)
@ -222,18 +199,6 @@ am_mbwc02_OBJECTS = mbwc02.$(OBJEXT)
mbwc02_OBJECTS = $(am_mbwc02_OBJECTS)
mbwc02_LDADD = $(LDADD)
mbwc02_DEPENDENCIES = $(am__DEPENDENCIES_2)
am_nwad01_OBJECTS = nwad01.$(OBJEXT)
nwad01_OBJECTS = $(am_nwad01_OBJECTS)
nwad01_LDADD = $(LDADD)
nwad01_DEPENDENCIES = $(am__DEPENDENCIES_2)
nwif01_SOURCES = nwif01.c
nwif01_OBJECTS = nwif01.$(OBJEXT)
nwif01_LDADD = $(LDADD)
nwif01_DEPENDENCIES = $(am__DEPENDENCIES_2)
nwif02_SOURCES = nwif02.c
nwif02_OBJECTS = nwif02.$(OBJEXT)
nwif02_LDADD = $(LDADD)
nwif02_DEPENDENCIES = $(am__DEPENDENCIES_2)
am_oht_OBJECTS = oht.$(OBJEXT)
oht_OBJECTS = $(am_oht_OBJECTS)
oht_LDADD = $(LDADD)
@ -242,10 +207,6 @@ am_path01_OBJECTS = path01.$(OBJEXT)
path01_OBJECTS = $(am_path01_OBJECTS)
path01_LDADD = $(LDADD)
path01_DEPENDENCIES = $(am__DEPENDENCIES_2)
am_pio_OBJECTS = pio.$(OBJEXT)
pio_OBJECTS = $(am_pio_OBJECTS)
pio_LDADD = $(LDADD)
pio_DEPENDENCIES = $(am__DEPENDENCIES_2)
am_pma_OBJECTS = pma.$(OBJEXT)
pma_OBJECTS = $(am_pma_OBJECTS)
pma_LDADD = $(LDADD)
@ -290,10 +251,6 @@ am__str02_SOURCES_DIST = str02.cpp
@ENABLE_CXX_TRUE@am_str02_OBJECTS = str02.$(OBJEXT)
str02_OBJECTS = $(am_str02_OBJECTS)
@ENABLE_CXX_TRUE@str02_DEPENDENCIES = $(am__DEPENDENCIES_3)
task01_SOURCES = task01.c
task01_OBJECTS = task01.$(OBJEXT)
task01_LDADD = $(LDADD)
task01_DEPENDENCIES = $(am__DEPENDENCIES_2)
am_time_OBJECTS = time.$(OBJEXT)
time_OBJECTS = $(am_time_OBJECTS)
time_LDADD = $(LDADD)
@ -363,35 +320,31 @@ am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
am__v_CXXLD_0 = @echo " CXXLD " $@;
am__v_CXXLD_1 =
SOURCES = $(arr01_SOURCES) $(arr02_SOURCES) $(bh01_SOURCES) \
$(bh02_SOURCES) $(chr01_SOURCES) dir01.c $(dll_SOURCES) \
$(bh02_SOURCES) $(chr01_SOURCES) $(dll_SOURCES) \
$(env01_SOURCES) $(fma_SOURCES) $(fmt01_SOURCES) \
$(fmt02_SOURCES) $(fs01_SOURCES) fs02.c fs03.c \
$(glob01_SOURCES) $(hl01_SOURCES) $(htb01_SOURCES) \
$(fmt02_SOURCES) $(hl01_SOURCES) $(htb01_SOURCES) \
$(htb02_SOURCES) $(ipad01_SOURCES) $(lda_SOURCES) \
$(main01_SOURCES) $(main02_SOURCES) $(mbwc01_SOURCES) \
$(mbwc02_SOURCES) $(nwad01_SOURCES) nwif01.c nwif02.c \
$(oht_SOURCES) $(path01_SOURCES) $(pio_SOURCES) $(pma_SOURCES) \
$(rbt01_SOURCES) $(rbt02_SOURCES) $(rbt03_SOURCES) \
$(rex01_SOURCES) $(sll_SOURCES) $(slmb01_SOURCES) \
$(sp01_SOURCES) $(sp02_SOURCES) $(str01_SOURCES) \
$(str02_SOURCES) task01.c $(time_SOURCES) $(tre01_SOURCES) \
uri01.c $(xma_SOURCES)
$(mbwc02_SOURCES) $(oht_SOURCES) $(path01_SOURCES) \
$(pma_SOURCES) $(rbt01_SOURCES) $(rbt02_SOURCES) \
$(rbt03_SOURCES) $(rex01_SOURCES) $(sll_SOURCES) \
$(slmb01_SOURCES) $(sp01_SOURCES) $(sp02_SOURCES) \
$(str01_SOURCES) $(str02_SOURCES) $(time_SOURCES) \
$(tre01_SOURCES) uri01.c $(xma_SOURCES)
DIST_SOURCES = $(am__arr01_SOURCES_DIST) $(am__arr02_SOURCES_DIST) \
$(am__bh01_SOURCES_DIST) $(am__bh02_SOURCES_DIST) \
$(chr01_SOURCES) dir01.c $(dll_SOURCES) $(env01_SOURCES) \
$(chr01_SOURCES) $(dll_SOURCES) $(env01_SOURCES) \
$(fma_SOURCES) $(fmt01_SOURCES) $(fmt02_SOURCES) \
$(fs01_SOURCES) fs02.c fs03.c $(glob01_SOURCES) \
$(am__hl01_SOURCES_DIST) $(htb01_SOURCES) \
$(am__htb02_SOURCES_DIST) $(ipad01_SOURCES) $(lda_SOURCES) \
$(main01_SOURCES) $(main02_SOURCES) $(mbwc01_SOURCES) \
$(mbwc02_SOURCES) $(nwad01_SOURCES) nwif01.c nwif02.c \
$(oht_SOURCES) $(path01_SOURCES) $(pio_SOURCES) $(pma_SOURCES) \
$(rbt01_SOURCES) $(am__rbt02_SOURCES_DIST) \
$(mbwc02_SOURCES) $(oht_SOURCES) $(path01_SOURCES) \
$(pma_SOURCES) $(rbt01_SOURCES) $(am__rbt02_SOURCES_DIST) \
$(am__rbt03_SOURCES_DIST) $(rex01_SOURCES) $(sll_SOURCES) \
$(slmb01_SOURCES) $(am__sp01_SOURCES_DIST) \
$(am__sp02_SOURCES_DIST) $(str01_SOURCES) \
$(am__str02_SOURCES_DIST) task01.c $(time_SOURCES) \
$(tre01_SOURCES) uri01.c $(xma_SOURCES)
$(am__str02_SOURCES_DIST) $(time_SOURCES) $(tre01_SOURCES) \
uri01.c $(xma_SOURCES)
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
@ -598,16 +551,14 @@ AM_CPPFLAGS = \
-I$(top_srcdir)/include \
-I$(includedir)
AM_LDFLAGS = -L../../lib/cmn
LDADD = -lqsecmn $(am__append_1)
AM_LDFLAGS = -L../../lib/si -L../../lib/cmn
LDADD = -lqsesi -lqsecmn $(am__append_1)
chr01_SOURCES = chr01.c
env01_SOURCES = env01.c
dll_SOURCES = dll.c
fma_SOURCES = fma.c
fmt01_SOURCES = fmt01.c
fmt02_SOURCES = fmt02.c
fs01_SOURCES = fs01.c
glob01_SOURCES = glob01.c
htb01_SOURCES = htb01.c
ipad01_SOURCES = ipad01.c
lda_SOURCES = lda.c
@ -615,10 +566,8 @@ main01_SOURCES = main01.c
main02_SOURCES = main02.c
mbwc01_SOURCES = mbwc01.c
mbwc02_SOURCES = mbwc02.c
nwad01_SOURCES = nwad01.c
oht_SOURCES = oht.c
path01_SOURCES = path01.c
pio_SOURCES = pio.c
pma_SOURCES = pma.c
rex01_SOURCES = rex01.c
rbt01_SOURCES = rbt01.c
@ -754,10 +703,6 @@ chr01$(EXEEXT): $(chr01_OBJECTS) $(chr01_DEPENDENCIES) $(EXTRA_chr01_DEPENDENCIE
@rm -f chr01$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(chr01_OBJECTS) $(chr01_LDADD) $(LIBS)
dir01$(EXEEXT): $(dir01_OBJECTS) $(dir01_DEPENDENCIES) $(EXTRA_dir01_DEPENDENCIES)
@rm -f dir01$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(dir01_OBJECTS) $(dir01_LDADD) $(LIBS)
dll$(EXEEXT): $(dll_OBJECTS) $(dll_DEPENDENCIES) $(EXTRA_dll_DEPENDENCIES)
@rm -f dll$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(dll_OBJECTS) $(dll_LDADD) $(LIBS)
@ -778,22 +723,6 @@ fmt02$(EXEEXT): $(fmt02_OBJECTS) $(fmt02_DEPENDENCIES) $(EXTRA_fmt02_DEPENDENCIE
@rm -f fmt02$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(fmt02_OBJECTS) $(fmt02_LDADD) $(LIBS)
fs01$(EXEEXT): $(fs01_OBJECTS) $(fs01_DEPENDENCIES) $(EXTRA_fs01_DEPENDENCIES)
@rm -f fs01$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(fs01_OBJECTS) $(fs01_LDADD) $(LIBS)
fs02$(EXEEXT): $(fs02_OBJECTS) $(fs02_DEPENDENCIES) $(EXTRA_fs02_DEPENDENCIES)
@rm -f fs02$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(fs02_OBJECTS) $(fs02_LDADD) $(LIBS)
fs03$(EXEEXT): $(fs03_OBJECTS) $(fs03_DEPENDENCIES) $(EXTRA_fs03_DEPENDENCIES)
@rm -f fs03$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(fs03_OBJECTS) $(fs03_LDADD) $(LIBS)
glob01$(EXEEXT): $(glob01_OBJECTS) $(glob01_DEPENDENCIES) $(EXTRA_glob01_DEPENDENCIES)
@rm -f glob01$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(glob01_OBJECTS) $(glob01_LDADD) $(LIBS)
hl01$(EXEEXT): $(hl01_OBJECTS) $(hl01_DEPENDENCIES) $(EXTRA_hl01_DEPENDENCIES)
@rm -f hl01$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(hl01_OBJECTS) $(hl01_LDADD) $(LIBS)
@ -830,18 +759,6 @@ mbwc02$(EXEEXT): $(mbwc02_OBJECTS) $(mbwc02_DEPENDENCIES) $(EXTRA_mbwc02_DEPENDE
@rm -f mbwc02$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(mbwc02_OBJECTS) $(mbwc02_LDADD) $(LIBS)
nwad01$(EXEEXT): $(nwad01_OBJECTS) $(nwad01_DEPENDENCIES) $(EXTRA_nwad01_DEPENDENCIES)
@rm -f nwad01$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(nwad01_OBJECTS) $(nwad01_LDADD) $(LIBS)
nwif01$(EXEEXT): $(nwif01_OBJECTS) $(nwif01_DEPENDENCIES) $(EXTRA_nwif01_DEPENDENCIES)
@rm -f nwif01$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(nwif01_OBJECTS) $(nwif01_LDADD) $(LIBS)
nwif02$(EXEEXT): $(nwif02_OBJECTS) $(nwif02_DEPENDENCIES) $(EXTRA_nwif02_DEPENDENCIES)
@rm -f nwif02$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(nwif02_OBJECTS) $(nwif02_LDADD) $(LIBS)
oht$(EXEEXT): $(oht_OBJECTS) $(oht_DEPENDENCIES) $(EXTRA_oht_DEPENDENCIES)
@rm -f oht$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(oht_OBJECTS) $(oht_LDADD) $(LIBS)
@ -850,10 +767,6 @@ path01$(EXEEXT): $(path01_OBJECTS) $(path01_DEPENDENCIES) $(EXTRA_path01_DEPENDE
@rm -f path01$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(path01_OBJECTS) $(path01_LDADD) $(LIBS)
pio$(EXEEXT): $(pio_OBJECTS) $(pio_DEPENDENCIES) $(EXTRA_pio_DEPENDENCIES)
@rm -f pio$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(pio_OBJECTS) $(pio_LDADD) $(LIBS)
pma$(EXEEXT): $(pma_OBJECTS) $(pma_DEPENDENCIES) $(EXTRA_pma_DEPENDENCIES)
@rm -f pma$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(pma_OBJECTS) $(pma_LDADD) $(LIBS)
@ -898,10 +811,6 @@ str02$(EXEEXT): $(str02_OBJECTS) $(str02_DEPENDENCIES) $(EXTRA_str02_DEPENDENCIE
@rm -f str02$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(str02_OBJECTS) $(str02_LDADD) $(LIBS)
task01$(EXEEXT): $(task01_OBJECTS) $(task01_DEPENDENCIES) $(EXTRA_task01_DEPENDENCIES)
@rm -f task01$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(task01_OBJECTS) $(task01_LDADD) $(LIBS)
time$(EXEEXT): $(time_OBJECTS) $(time_DEPENDENCIES) $(EXTRA_time_DEPENDENCIES)
@rm -f time$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(time_OBJECTS) $(time_LDADD) $(LIBS)
@ -929,16 +838,11 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bh01.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bh02.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chr01.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dir01.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dll.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/env01.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fma.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fmt01.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fmt02.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fs01.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fs02.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fs03.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glob01.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hl01.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/htb01.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/htb02.Po@am__quote@
@ -948,12 +852,8 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main02.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbwc01.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbwc02.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nwad01.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nwif01.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nwif02.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oht.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/path01.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pio.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pma.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rbt01.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rbt02.Po@am__quote@
@ -965,7 +865,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sp02.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/str01.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/str02.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/task01.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/time.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tre01.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/uri01.Po@am__quote@

View File

@ -1,6 +1,6 @@
#include <qse/cmn/chr.h>
#include <qse/cmn/mbwc.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <locale.h>

View File

@ -1,7 +1,7 @@
#include <qse/cmn/mem.h>
#include <qse/cmn/str.h>
#include <qse/cmn/dll.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#define R(f) \

View File

@ -1,7 +1,7 @@
#include <qse/cmn/env.h>
#include <qse/cmn/mem.h>
#include <qse/cmn/str.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#define R(f) \
do { \

View File

@ -1,7 +1,7 @@
#include <qse/cmn/fma.h>
#include <qse/cmn/rbt.h>
#include <qse/cmn/mem.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#define R(f) \
do { \

View File

@ -1,7 +1,7 @@
#include <qse/cmn/fmt.h>
#include <qse/cmn/main.h>
#include <qse/cmn/mbwc.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <locale.h>
#if defined(_WIN32)

View File

@ -1,7 +1,7 @@
#include <qse/cmn/fmt.h>
#include <qse/cmn/main.h>
#include <qse/cmn/mbwc.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <locale.h>
#if defined(_WIN32)

View File

@ -3,7 +3,7 @@
#include <qse/cmn/HeapMmgr.hpp>
#include <qse/cmn/LinkedList.hpp>
#include <qse/cmn/HashList.hpp>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
class T

View File

@ -2,7 +2,7 @@
#include <qse/cmn/chr.h>
#include <qse/cmn/str.h>
#include <qse/cmn/htb.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#define R(f) \
do { \

View File

@ -2,7 +2,7 @@
#include <qse/cmn/StdMmgr.hpp>
#include <qse/cmn/HeapMmgr.hpp>
#include <qse/cmn/HashTable.hpp>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <string>
#include <string.h>

View File

@ -1,7 +1,7 @@
#include <qse/cmn/ipad.h>
#include <qse/cmn/main.h>
#include <qse/cmn/mbwc.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <locale.h>
#if defined(_WIN32)

View File

@ -1,7 +1,7 @@
#include <qse/cmn/mem.h>
#include <qse/cmn/str.h>
#include <qse/cmn/lda.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <stdlib.h>

View File

@ -1,6 +1,6 @@
#include <qse/cmn/main.h>
#include <qse/cmn/mbwc.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <locale.h>

View File

@ -1,6 +1,6 @@
#include <qse/cmn/main.h>
#include <qse/cmn/mbwc.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <locale.h>

View File

@ -1,7 +1,7 @@
#include <qse/cmn/mbwc.h>
#include <qse/cmn/mem.h>
#include <qse/cmn/str.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <locale.h>

View File

@ -1,7 +1,7 @@
#include <qse/cmn/mbwc.h>
#include <qse/cmn/mem.h>
#include <qse/cmn/str.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <locale.h>

View File

@ -1,7 +1,7 @@
#include <qse/cmn/mem.h>
#include <qse/cmn/str.h>
#include <qse/cmn/oht.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#define R(f) \

View File

@ -3,7 +3,7 @@
#include <qse/cmn/mbwc.h>
#include <qse/cmn/str.h>
#include <qse/cmn/mem.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <locale.h>
#if defined(_WIN32)

View File

@ -1,6 +1,6 @@
#include <qse/cmn/pma.h>
#include <qse/cmn/mem.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#define R(f) \
do { \

View File

@ -1,7 +1,7 @@
#include <qse/cmn/mem.h>
#include <qse/cmn/str.h>
#include <qse/cmn/rbt.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <stdlib.h>

View File

@ -2,7 +2,7 @@
#include <qse/cmn/StdMmgr.hpp>
#include <qse/cmn/HeapMmgr.hpp>
#include <qse/cmn/RedBlackTable.hpp>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <string>
#include <string.h>

View File

@ -4,7 +4,7 @@
#include <qse/cmn/main.h>
#include <qse/cmn/mbwc.h>
#include <qse/cmn/path.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <locale.h>
#if defined(_WIN32)

View File

@ -1,7 +1,7 @@
#include <qse/cmn/mem.h>
#include <qse/cmn/str.h>
#include <qse/cmn/sll.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#define R(f) \

View File

@ -2,7 +2,7 @@
#include <qse/cmn/mbwc.h>
#include <qse/cmn/mem.h>
#include <qse/cmn/str.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <locale.h>
#include <wchar.h>

View File

@ -1,6 +1,6 @@
#include <qse/cmn/mem.h>
#include <qse/cmn/str.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <locale.h>

View File

@ -1,4 +1,4 @@
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <qse/cmn/String.hpp>
#include <qse/cmn/HeapMmgr.hpp>
#include <locale.h>

View File

@ -4,7 +4,7 @@
*/
#include <qse/cmn/time.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <locale.h>
#include <sys/time.h>

View File

@ -4,7 +4,7 @@
#include <qse/cmn/path.h>
#include <qse/cmn/main.h>
#include <qse/cmn/mbwc.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <locale.h>
#if defined(_WIN32)

View File

@ -1,7 +1,7 @@
#include <qse/cmn/uri.h>
#include <qse/cmn/main.h>
#include <qse/cmn/mbwc.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <locale.h>
#if defined(_WIN32)

View File

@ -1,6 +1,6 @@
#include <qse/cmn/xma.h>
#include <qse/cmn/mem.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#define R(f) \
do { \

View File

@ -1,11 +1,11 @@
AUTOMAKE_OPTIONS = nostdinc
AiUTOMAKE_OPTIONS = nostdinc
AM_CPPFLAGS = \
-I$(top_builddir)/include \
-I$(top_srcdir)/include \
-I$(includedir)
bin_PROGRAMS = httpd01 httpd02 upxd01
bin_PROGRAMS = httpd01
AM_LDFLAGS = -L../../lib/cmn -L../../lib/http
LDADD = -lqsehttp -lqsecmn $(PTHREAD_LIBS) $(SOCKET_LIBS) $(SENDFILE_LIBS)
@ -17,8 +17,5 @@ endif
endif
httpd01_SOURCES = httpd01.c
httpd02_SOURCES = httpd02.c
upxd01_SOURCES = upxd01.c
httpd01_LDADD = $(LDADD) $(SSL_LIBS)
httpd02_LDADD = $(LDADD) $(SSL_LIBS)

View File

@ -78,7 +78,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
bin_PROGRAMS = httpd01$(EXEEXT) httpd02$(EXEEXT) upxd01$(EXEEXT)
bin_PROGRAMS = httpd01$(EXEEXT)
@WCHAR_TRUE@@WIN32_TRUE@am__append_1 = $(UNICOWS_LIBS)
subdir = samples/http
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
@ -111,14 +111,6 @@ 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 =
am_httpd02_OBJECTS = httpd02.$(OBJEXT)
httpd02_OBJECTS = $(am_httpd02_OBJECTS)
httpd02_DEPENDENCIES = $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_1)
am_upxd01_OBJECTS = upxd01.$(OBJEXT)
upxd01_OBJECTS = $(am_upxd01_OBJECTS)
upxd01_LDADD = $(LDADD)
upxd01_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
@ -131,7 +123,7 @@ AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 =
DEFAULT_INCLUDES =
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include/qse
depcomp = $(SHELL) $(top_srcdir)/ac/depcomp
am__depfiles_maybe = depfiles
am__mv = mv -f
@ -153,8 +145,8 @@ AM_V_CCLD = $(am__v_CCLD_@AM_V@)
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
am__v_CCLD_0 = @echo " CCLD " $@;
am__v_CCLD_1 =
SOURCES = $(httpd01_SOURCES) $(httpd02_SOURCES) $(upxd01_SOURCES)
DIST_SOURCES = $(httpd01_SOURCES) $(httpd02_SOURCES) $(upxd01_SOURCES)
SOURCES = $(httpd01_SOURCES)
DIST_SOURCES = $(httpd01_SOURCES)
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
@ -355,7 +347,7 @@ target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
AUTOMAKE_OPTIONS = nostdinc
AiUTOMAKE_OPTIONS = nostdinc
AM_CPPFLAGS = \
-I$(top_builddir)/include \
-I$(top_srcdir)/include \
@ -365,10 +357,7 @@ AM_LDFLAGS = -L../../lib/cmn -L../../lib/http
LDADD = -lqsehttp -lqsecmn $(PTHREAD_LIBS) $(SOCKET_LIBS) \
$(SENDFILE_LIBS) $(am__append_1)
httpd01_SOURCES = httpd01.c
httpd02_SOURCES = httpd02.c
upxd01_SOURCES = upxd01.c
httpd01_LDADD = $(LDADD) $(SSL_LIBS)
httpd02_LDADD = $(LDADD) $(SSL_LIBS)
all: all-am
.SUFFIXES:
@ -457,14 +446,6 @@ httpd01$(EXEEXT): $(httpd01_OBJECTS) $(httpd01_DEPENDENCIES) $(EXTRA_httpd01_DEP
@rm -f httpd01$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(httpd01_OBJECTS) $(httpd01_LDADD) $(LIBS)
httpd02$(EXEEXT): $(httpd02_OBJECTS) $(httpd02_DEPENDENCIES) $(EXTRA_httpd02_DEPENDENCIES)
@rm -f httpd02$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(httpd02_OBJECTS) $(httpd02_LDADD) $(LIBS)
upxd01$(EXEEXT): $(upxd01_OBJECTS) $(upxd01_DEPENDENCIES) $(EXTRA_upxd01_DEPENDENCIES)
@rm -f upxd01$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(upxd01_OBJECTS) $(upxd01_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
@ -472,8 +453,6 @@ distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/httpd01.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/httpd02.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/upxd01.Po@am__quote@
.c.o:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<

View File

@ -1,6 +1,6 @@
#include <qse/http/httpd.h>
#include <qse/cmn/sio.h>
#include <qse/http/stdhttpd.h>
#include <qse/si/sio.h>
#include <qse/cmn/main.h>
#include <qse/cmn/str.h>
#include <qse/cmn/mem.h>
@ -46,11 +46,11 @@ static int httpd_main (int argc, qse_char_t* argv[])
if (argc <= 1)
{
qse_fprintf (QSE_STDERR, QSE_T("Usage: %s <listener_uri> ...\n"), argv[0]);
qse_fprintf (QSE_STDERR, QSE_T("Usage: %s binding_address:port ...\n"), argv[0]);
goto oops;
}
httpd = qse_httpd_openstd (0);
httpd = qse_httpd_openstd (0, QSE_NULL);
if (httpd == QSE_NULL)
{
qse_fprintf (QSE_STDERR, QSE_T("Cannot open httpd\n"));
@ -60,19 +60,17 @@ static int httpd_main (int argc, qse_char_t* argv[])
for (i = 1; i < argc; i++)
{
qse_httpd_server_t* server;
qse_httpd_server_dope_t dope;
server = qse_httpd_attachserverstd (httpd, argv[i], QSE_NULL, 0);
qse_memset(&dope, 0, QSE_SIZEOF(dope));
qse_strtonwad (argv[i], &dope.nwad);
server = qse_httpd_attachserverstd (httpd, &dope, 0);
if (server == QSE_NULL)
{
qse_fprintf (QSE_STDERR,
QSE_T("Failed to add httpd listener - %s\n"), argv[i]);
goto oops;
}
qse_httpd_setserveroptstd (httpd, server, QSE_HTTPD_SERVER_DIRCSS,
QSE_MT("<style type='text/css'>body { background-color:#d0e4fe; font-size: 0.9em; } div.header { font-weight: bold; margin-bottom: 5px; } div.footer { border-top: 1px solid #99AABB; text-align: right; } table { font-size: 0.9em; } td { white-space: nowrap; } td.size { text-align: right; }</style>"));
qse_httpd_setserveroptstd (httpd, server, QSE_HTTPD_SERVER_ERRCSS,
QSE_MT("<style type='text/css'>body { background-color:#d0e4fe; font-size: 0.9em; } div.header { font-weight: bold; margin-bottom: 5px; } div.footer { border-top: 1px solid #99AABB; text-align: right; }</style>"));
}
g_httpd = httpd;
@ -81,11 +79,16 @@ static int httpd_main (int argc, qse_char_t* argv[])
signal (SIGPIPE, SIG_IGN);
#endif
qse_httpd_setoption (httpd, QSE_HTTPD_CGIERRTONUL);
{
tmout.sec = 10;
tmout.nsec = 0;
ret = qse_httpd_loopstd (httpd, &tmout);
int trait = QSE_HTTPD_CGIERRTONUL;
qse_httpd_setopt (httpd, QSE_HTTPD_TRAIT, &trait);
qse_inittime (&tmout, 10, 0);
qse_httpd_setopt (httpd, QSE_HTTPD_TMOUT, &tmout);
}
ret = qse_httpd_loopstd (httpd, QSE_NULL, QSE_NULL);
signal (SIGINT, SIG_DFL);
#if defined(SIGPIPE)

View File

@ -1,296 +0,0 @@
#include <qse/http/httpd.h>
#include <qse/cmn/stdio.h>
#include <qse/cmn/main.h>
#include <qse/cmn/str.h>
#include <qse/cmn/mem.h>
#include <qse/cmn/mbwc.h>
#include <qse/cmn/time.h>
#include <signal.h>
#include <locale.h>
#if defined(_WIN32)
# include <windows.h>
# include <tchar.h>
# include <process.h>
#elif defined(__OS2__)
# define INCL_DOSPROCESS
# define INCL_DOSEXCEPTIONS
# define INCL_ERRORS
# include <os2.h>
#elif defined(__DOS__)
# include <dos.h>
#else
# include <unistd.h>
# include <errno.h>
#endif
#if defined(HAVE_SSL)
# include <openssl/ssl.h>
# include <openssl/err.h>
# include <openssl/engine.h>
#endif
/* --------------------------------------------------------------------- */
static qse_httpd_t* g_httpd = QSE_NULL;
static void sigint (int sig)
{
if (g_httpd) qse_httpd_stop (g_httpd);
}
/* --------------------------------------------------------------------- */
typedef struct server_xtn_t server_xtn_t;
struct server_xtn_t
{
int tproxy;
qse_httpd_server_cbstd_t* orgcbstd;
};
static int makersrc (
qse_httpd_t* httpd, qse_httpd_client_t* client,
qse_htre_t* req, qse_httpd_rsrc_t* rsrc)
{
server_xtn_t* server_xtn;
server_xtn = qse_httpd_getserverxtnstd (httpd, client->server);
if (server_xtn->tproxy)
{
if (qse_nwadequal(&client->orgdst_addr, &client->local_addr)) /* both equal and error */
{
/* TODO: implement a better check that the
* destination is not one of the local addresses */
rsrc->type = QSE_HTTPD_RSRC_ERR;
rsrc->u.err.code = 500;
}
else
{
rsrc->type = QSE_HTTPD_RSRC_PROXY;
rsrc->u.proxy.dst = client->orgdst_addr;
rsrc->u.proxy.src = client->remote_addr;
if (rsrc->u.proxy.src.type == QSE_NWAD_IN4)
rsrc->u.proxy.src.u.in4.port = 0; /* reset the port to 0. */
else if (rsrc->u.proxy.src.type == QSE_NWAD_IN6)
rsrc->u.proxy.src.u.in6.port = 0; /* reset the port to 0. */
}
return 0;
}
else
{
#if 0
if (server_xtn->orgcbstd->makersrc (httpd, client, req, rsrc) <= -1) return -1;
if (rsrc->type == QSE_HTTPD_RSRC_DIR)
{
/* no directory listing - */
if (server_xtn->orgcbstd->freersrc)
server_xtn->orgcbstd->freersrc (httpd, client, req, rsrc);
rsrc->type = QSE_HTTPD_RSRC_ERROR;
rsrc->u.error.code = 403;
}
return 0;
#endif
return server_xtn->orgcbstd->makersrc (httpd, client, req, rsrc);
}
}
static void freersrc (
qse_httpd_t* httpd, qse_httpd_client_t* client,
qse_htre_t* req, qse_httpd_rsrc_t* rsrc)
{
server_xtn_t* server_xtn;
server_xtn = qse_httpd_getserverxtnstd (httpd, client->server);
if (server_xtn->tproxy)
{
/* nothing to do */
}
else
{
if (server_xtn->orgcbstd->freersrc)
server_xtn->orgcbstd->freersrc (httpd, client, req, rsrc);
}
}
/* --------------------------------------------------------------------- */
static qse_httpd_server_t* attach_server (
qse_httpd_t* httpd, qse_char_t* uri, qse_httpd_server_cbstd_t* cbstd)
{
qse_httpd_server_t* server;
server_xtn_t* server_xtn;
int tproxy = 0;
static qse_httpd_server_idxstd_t idxstd[] =
{
{ QSE_MT("index.cgi") },
{ QSE_MT("index.html") },
{ QSE_NULL }
};
if (qse_strzcasecmp (uri, QSE_T("http-tproxy://"), 14) == 0)
{
tproxy = 1;
qse_strcpy (&uri[4], &uri[11]);
}
server = qse_httpd_attachserverstd (
httpd, uri, QSE_NULL, QSE_SIZEOF(server_xtn_t));
if (server == QSE_NULL) return QSE_NULL;
/* qse_httpd_getserverxtnstd() returns the pointer to
* the extension space requested above, of the size
* QSE_SIZEOF(server_xtn_t) */
server_xtn = qse_httpd_getserverxtnstd (httpd, server);
server_xtn->tproxy = tproxy;
/* qse_httpd_getserverxtn() returns the pointer to the
* extension space created by qse_httpd_attachserverstd()
* internally.
*/
/* remember the callback set in qse_httpd_attachserverstd() */
qse_httpd_getserveroptstd (
httpd, server,
QSE_HTTPD_SERVER_CBSTD, (void**)&server_xtn->orgcbstd);
/* override it with a new callback for chaining */
qse_httpd_setserveroptstd (
httpd, server,
QSE_HTTPD_SERVER_CBSTD, cbstd);
/* totally override idxstd without remembering the old idxstd */
qse_httpd_setserveroptstd (
httpd, server,
QSE_HTTPD_SERVER_IDXSTD, idxstd);
qse_httpd_setserveroptstd (
httpd, server, QSE_HTTPD_SERVER_DIRCSS,
QSE_MT("<style type='text/css'>body { background-color:#d0e4fe; font-size: 0.9em; } div.header { font-weight: bold; margin-bottom: 5px; } div.footer { border-top: 1px solid #99AABB; text-align: right; } table { font-size: 0.9em; } td { white-space: nowrap; } td.size { text-align: right; }</style>"));
qse_httpd_setserveroptstd (
httpd, server, QSE_HTTPD_SERVER_ERRCSS,
QSE_MT("<style type='text/css'>body { background-color:#d0e4fe; font-size: 0.9em; } div.header { font-weight: bold; margin-bottom: 5px; } div.footer { border-top: 1px solid #99AABB; text-align: right; }</style>"));
return server;
}
/* --------------------------------------------------------------------- */
static int httpd_main (int argc, qse_char_t* argv[])
{
qse_httpd_t* httpd = QSE_NULL;
qse_ntime_t tmout;
int ret = -1, i;
static qse_httpd_server_cbstd_t cbstd = { makersrc, freersrc };
if (argc <= 1)
{
qse_fprintf (QSE_STDERR, QSE_T("Usage: %s <listener_uri> ...\n"), argv[0]);
goto oops;
}
httpd = qse_httpd_openstd (QSE_SIZEOF(server_xtn_t));
if (httpd == QSE_NULL)
{
qse_fprintf (QSE_STDERR, QSE_T("Cannot open httpd\n"));
goto oops;
}
for (i = 1; i < argc; i++)
{
if (attach_server (httpd, argv[i], &cbstd) == QSE_NULL)
{
qse_fprintf (QSE_STDERR,
QSE_T("Failed to add httpd listener - %s\n"), argv[i]);
goto oops;
}
}
g_httpd = httpd;
signal (SIGINT, sigint);
#if defined(SIGPIPE)
signal (SIGPIPE, SIG_IGN);
#endif
qse_httpd_setname (httpd, QSE_MT("httpd02/qse 1.0"));
qse_httpd_setoption (httpd, QSE_HTTPD_CGIERRTONUL);
tmout.sec = 10;
tmout.nsec = 0;
ret = qse_httpd_loopstd (httpd, &tmout);
signal (SIGINT, SIG_DFL);
#if defined(SIGPIPE)
signal (SIGPIPE, SIG_DFL);
#endif
g_httpd = QSE_NULL;
if (ret <= -1) qse_fprintf (QSE_STDERR, QSE_T("Httpd error\n"));
oops:
if (httpd) qse_httpd_close (httpd);
return ret;
}
int qse_main (int argc, qse_achar_t* argv[])
{
int ret;
#if defined(_WIN32)
char locale[100];
UINT codepage;
WSADATA wsadata;
codepage = GetConsoleOutputCP();
if (codepage == CP_UTF8)
{
/*SetConsoleOUtputCP (CP_UTF8);*/
qse_setdflcmgrbyid (QSE_CMGR_UTF8);
}
else
{
sprintf (locale, ".%u", (unsigned int)codepage);
setlocale (LC_ALL, locale);
/*qse_setdflcmgrbyid (QSE_CMGR_SLMB);*/
}
if (WSAStartup (MAKEWORD(2,0), &wsadata) != 0)
{
qse_fprintf (QSE_STDERR, QSE_T("Failed to start up winsock\n"));
return -1;
}
#else
setlocale (LC_ALL, "");
/*qse_setdflcmgrbyid (QSE_CMGR_SLMB);*/
#endif
#if defined(HAVE_SSL)
SSL_load_error_strings ();
SSL_library_init ();
#endif
ret = qse_runmain (argc, argv, httpd_main);
#if defined(HAVE_SSL)
/*ERR_remove_state ();*/
ENGINE_cleanup ();
ERR_free_strings ();
EVP_cleanup ();
CRYPTO_cleanup_all_ex_data ();
#endif
#if defined(_WIN32)
WSACleanup ();
#endif
return ret;
}

View File

@ -1,897 +0,0 @@
#include <qse/http/upxd.h>
#include <qse/cmn/stdio.h>
#include <qse/cmn/main.h>
#include <qse/cmn/str.h>
#include <qse/cmn/mem.h>
#include <qse/cmn/mbwc.h>
#include <qse/cmn/time.h>
#include <qse/cmn/sio.h>
#include <signal.h>
#include <locale.h>
#include <string.h>
#include <stdlib.h>
#if defined(_WIN32)
# include <windows.h>
#else
# include <unistd.h>
# include <errno.h>
# include <fcntl.h>
# include <sys/socket.h>
# include <netinet/in.h>
# include <net/if.h>
#endif
#if defined(HAVE_EPOLL)
# if defined(HAVE_SYS_EPOLL_H)
# include <sys/epoll.h>
# endif
#endif
/* ------------------------------------------------------------------- */
static qse_upxd_errnum_t syserr_to_errnum (int e)
{
switch (e)
{
case ENOMEM:
return QSE_UPXD_ENOMEM;
case EINVAL:
return QSE_UPXD_EINVAL;
case EACCES:
case ECONNREFUSED:
return QSE_UPXD_EACCES;
case ENOENT:
return QSE_UPXD_ENOENT;
case EEXIST:
return QSE_UPXD_EEXIST;
case EINTR:
return QSE_UPXD_EINTR;
case EAGAIN:
/*case EWOULDBLOCK:*/
return QSE_UPXD_EAGAIN;
default:
return QSE_UPXD_ESYSERR;
}
}
/* ------------------------------------------------------------------- */
static int sockaddr_to_nwad (
const struct sockaddr_storage* addr, qse_nwad_t* nwad)
{
int addrsize = -1;
switch (addr->ss_family)
{
case AF_INET:
{
struct sockaddr_in* in;
in = (struct sockaddr_in*)addr;
addrsize = QSE_SIZEOF(*in);
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;
}
#if defined(AF_INET6)
case AF_INET6:
{
struct sockaddr_in6* in;
in = (struct sockaddr_in6*)addr;
addrsize = QSE_SIZEOF(*in);
memset (nwad, 0, QSE_SIZEOF(*nwad));
nwad->type = QSE_NWAD_IN6;
memcpy (&nwad->u.in6.addr, &in->sin6_addr, QSE_SIZEOF(nwad->u.in6.addr));
nwad->u.in6.scope = in->sin6_scope_id;
nwad->u.in6.port = in->sin6_port;
break;
}
#endif
}
return addrsize;
}
static int nwad_to_sockaddr (
const qse_nwad_t* nwad, struct sockaddr_storage* addr)
{
int addrsize = -1;
switch (nwad->type)
{
case QSE_NWAD_IN4:
{
struct sockaddr_in* in;
in = (struct sockaddr_in*)addr;
addrsize = QSE_SIZEOF(*in);
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;
break;
}
case QSE_NWAD_IN6:
{
#if defined(AF_INET6)
struct sockaddr_in6* in;
in = (struct sockaddr_in6*)addr;
addrsize = QSE_SIZEOF(*in);
memset (in, 0, addrsize);
in->sin6_family = AF_INET6;
memcpy (&in->sin6_addr, &nwad->u.in6.addr, QSE_SIZEOF(nwad->u.in6.addr));
in->sin6_scope_id = nwad->u.in6.scope;
in->sin6_port = nwad->u.in6.port;
#endif
break;
}
}
return addrsize;
}
/* ------------------------------------------------------------------- */
static int sock_open (qse_upxd_t* upxd, qse_upxd_sock_t* sock)
{
int fd = -1, flag;
int syserr = 1;
struct sockaddr_storage addr;
int addrsize;
addrsize = nwad_to_sockaddr (&sock->bind, &addr);
if (addrsize <= -1)
{
qse_upxd_seterrnum (upxd, QSE_UPXD_ENOIMPL);
syserr = 0;
goto oops;
}
/* TODO: if AF_INET6 is not defined sockaddr_storage is not available...
* create your own union or somehting similar... */
fd = socket (addr.ss_family, SOCK_DGRAM, IPPROTO_UDP);
if (fd <= -1) goto oops;
flag = fcntl (fd, F_GETFD);
if (flag >= 0) fcntl (fd, F_SETFD, flag | FD_CLOEXEC);
if (bind (fd, (struct sockaddr*)&addr, addrsize) <= -1)
{
#if defined(IPV6_V6ONLY)
if (errno == EADDRINUSE && addr.ss_family == AF_INET6)
{
int on = 1;
setsockopt (fd, IPPROTO_IPV6, IPV6_V6ONLY, &on, sizeof(on));
if (bind (fd, (struct sockaddr*)&addr, addrsize) <= -1) goto oops;
}
else goto oops;
#else
goto oops;
#endif
}
if (sock->dev)
{
#if defined(SO_BINDTODEVICE)
struct ifreq ifr;
qse_size_t wsz, msz;
memset (&ifr, 0, sizeof(ifr));
#if defined(QSE_CHAR_IS_MCHAR)
qse_mbscpy (ifr.ifr_name, sock->dev, QSE_COUNTOF(ifr.ifr_name));
#else
msz = QSE_COUNTOF(ifr.ifr_name);
if (qse_wcstombs (sock->dev, &wsz, ifr.ifr_name, &msz) <= -1)
{
qse_upxd_seterrnum (upxd, QSE_UPXD_EINVAL);
syserr = 0;
goto oops;
}
#endif
if (setsockopt (fd, SOL_SOCKET, SO_BINDTODEVICE, &ifr, QSE_SIZEOF(ifr)) <= -1) goto oops;
#endif
}
flag = fcntl (fd, F_GETFL);
if (flag >= 0) fcntl (fd, F_SETFL, flag | O_NONBLOCK);
sock->handle.i = fd;
return 0;
oops:
if (syserr) qse_upxd_seterrnum (upxd, syserr_to_errnum(errno));
if (fd >= 0) close (fd);
return -1;
}
static void sock_close (qse_upxd_t* upxd, qse_upxd_sock_t* sock)
{
close (sock->handle.i);
}
static qse_ssize_t sock_recv (
qse_upxd_t* upxd, qse_upxd_sock_t* sock, void* buf, qse_size_t bufsize)
{
ssize_t ret;
struct sockaddr_storage addr;
socklen_t addrsize;
addrsize = QSE_SIZEOF(addr);
ret = recvfrom (sock->handle.i, buf, bufsize, 0, (struct sockaddr*)&addr, &addrsize);
if (ret <= -1) qse_upxd_seterrnum (upxd, syserr_to_errnum(errno));
else
{
if (sockaddr_to_nwad (&addr, &sock->from) <= -1)
{
qse_upxd_seterrnum (upxd, QSE_UPXD_ENOIMPL);
ret = -1;
}
}
return ret;
}
static qse_ssize_t sock_send (
qse_upxd_t* upxd, qse_upxd_sock_t* sock, const void* buf, qse_size_t bufsize)
{
struct sockaddr_storage addr;
int addrsize;
ssize_t ret;
addrsize = nwad_to_sockaddr (&sock->to, &addr);
if (addrsize <= -1)
{
qse_upxd_seterrnum (upxd, QSE_UPXD_ENOIMPL);
return -1;
}
ret = sendto (sock->handle.i, buf, bufsize,
0, (struct sockaddr*)&addr, addrsize);
if (ret <= -1) qse_upxd_seterrnum (upxd, syserr_to_errnum(errno));
return ret;
}
/* ------------------------------------------------------------------- */
static int session_config (
qse_upxd_t* upxd, qse_upxd_session_t* session)
{
/* you can check the source address (session->from).
* you can set the destination address.
* you can set the binding address.
* you can set the binding interface.
*/
qse_strtonwad (QSE_T("127.0.0.1:9991"), &session->config.peer);
qse_strtonwad (QSE_T("0.0.0.0:0"), &session->config.bind);
/*qse_strxcpy (session->config.dev, QSE_COUNTOF(session->config.dev), QSE_T("eth1"));*/
session->config.dormancy = 10000;
return 0;
}
static void session_error (
qse_upxd_t* upxd, qse_upxd_session_t* session)
{
if (session->server)
{
}
else
{
/* session->local.nwad is not associated with a session. */
}
qse_printf (QSE_T("ERROR IN SESSION COMMUNICATION\n"));
}
/* ------------------------------------------------------------------- */
struct mux_ev_t
{
qse_ubi_t handle;
int reqmask;
qse_upxd_muxcb_t cbfun;
void* cbarg;
};
struct mux_t
{
int fd;
struct
{
struct epoll_event* ptr;
qse_size_t len;
qse_size_t capa;
} ee;
struct
{
struct mux_ev_t** ptr;
qse_size_t capa;
} mev;
};
#define MUX_EV_ALIGN 64
static void* mux_open (qse_upxd_t* upxd)
{
struct mux_t* mux;
mux = qse_upxd_allocmem (upxd, QSE_SIZEOF(*mux));
if (mux == QSE_NULL) return QSE_NULL;
memset (mux, 0, QSE_SIZEOF(*mux));
#if defined(HAVE_EPOLL_CREATE1) && defined(O_CLOEXEC)
mux->fd = epoll_create1 (O_CLOEXEC);
#else
mux->fd = epoll_create (100);
#endif
if (mux->fd <= -1)
{
qse_upxd_freemem (upxd, mux);
qse_upxd_seterrnum (upxd, syserr_to_errnum(errno));
return QSE_NULL;
}
#if defined(HAVE_EPOLL_CREATE1) && defined(O_CLOEXEC)
/* nothing else to do */
#else
{
int flag = fcntl (mux->fd, F_GETFD);
if (flag >= 0) fcntl (mux->fd, F_SETFD, flag | FD_CLOEXEC);
}
#endif
return mux;
}
static void mux_close (qse_upxd_t* upxd, void* vmux)
{
struct mux_t* mux = (struct mux_t*)vmux;
if (mux->ee.ptr) qse_upxd_freemem (upxd, mux->ee.ptr);
if (mux->mev.ptr)
{
qse_size_t i;
for (i = 0; i < mux->mev.capa; i++)
if (mux->mev.ptr[i]) qse_upxd_freemem (upxd, mux->mev.ptr[i]);
qse_upxd_freemem (upxd, mux->mev.ptr);
}
close (mux->fd);
qse_upxd_freemem (upxd, mux);
}
static int mux_addhnd (
qse_upxd_t* upxd, void* vmux, qse_ubi_t handle,
qse_upxd_muxcb_t cbfun, void* cbarg)
{
struct mux_t* mux = (struct mux_t*)vmux;
struct epoll_event ev;
struct mux_ev_t* mev;
ev.events = EPOLLIN; /* inspect IN and HUP only */
if (handle.i >= mux->mev.capa)
{
struct mux_ev_t** tmp;
qse_size_t tmpcapa, i;
tmpcapa = (((handle.i + MUX_EV_ALIGN) / MUX_EV_ALIGN) * MUX_EV_ALIGN);
tmp = (struct mux_ev_t**) qse_upxd_reallocmem (
upxd, mux->mev.ptr,
QSE_SIZEOF(*mux->mev.ptr) * tmpcapa);
if (tmp == QSE_NULL) return -1;
for (i = mux->mev.capa; i < tmpcapa; i++) tmp[i] = QSE_NULL;
mux->mev.ptr = tmp;
mux->mev.capa = tmpcapa;
}
if (mux->mev.ptr[handle.i] == QSE_NULL)
{
/* the location of the data passed to epoll_ctl()
* must not change unless i update the info with epoll()
* whenever there is reallocation. so i simply
* make mux-mev.ptr reallocatable but auctual
* data fixed once allocated. */
mux->mev.ptr[handle.i] = qse_upxd_allocmem (
upxd, QSE_SIZEOF(*mux->mev.ptr[handle.i]));
if (mux->mev.ptr[handle.i] == QSE_NULL) return -1;
}
if (mux->ee.len >= mux->ee.capa)
{
struct epoll_event* tmp;
tmp = qse_upxd_reallocmem (
upxd, mux->ee.ptr,
QSE_SIZEOF(*mux->ee.ptr) * (mux->ee.capa + 1) * 2);
if (tmp == QSE_NULL) return -1;
mux->ee.ptr = tmp;
mux->ee.capa = (mux->ee.capa + 1) * 2;
}
mev = mux->mev.ptr[handle.i];
mev->handle = handle;
mev->cbfun = cbfun;
mev->cbarg = cbarg;
ev.data.ptr = mev;
if (epoll_ctl (mux->fd, EPOLL_CTL_ADD, handle.i, &ev) <= -1)
{
/* don't rollback ee.ptr */
qse_upxd_seterrnum (upxd, syserr_to_errnum(errno));
return -1;
}
mux->ee.len++;
return 0;
}
static int mux_delhnd (qse_upxd_t* upxd, void* vmux, qse_ubi_t handle)
{
struct mux_t* mux = (struct mux_t*)vmux;
if (epoll_ctl (mux->fd, EPOLL_CTL_DEL, handle.i, QSE_NULL) <= -1)
{
qse_upxd_seterrnum (upxd, syserr_to_errnum(errno));
return -1;
}
mux->ee.len--;
return 0;
}
static int mux_poll (qse_upxd_t* upxd, void* vmux, qse_ntime_t timeout)
{
struct mux_t* mux = (struct mux_t*)vmux;
struct mux_ev_t* mev;
int nfds, i;
if (mux->ee.len < 0)
{
/* nothing to monitor yet */
sleep (timeout / 1000);
}
else
{
nfds = epoll_wait (mux->fd, mux->ee.ptr, mux->ee.len, timeout);
if (nfds <= -1)
{
qse_upxd_seterrnum (upxd, syserr_to_errnum(errno));
return -1;
}
for (i = 0; i < nfds; i++)
{
mev = mux->ee.ptr[i].data.ptr;
if (mux->ee.ptr[i].events & (EPOLLIN | EPOLLHUP))
mev->cbfun (upxd, mux, mev->handle, mev->cbarg);
}
}
return 0;
}
/* ------------------------------------------------------------------- */
static qse_upxd_cbs_t upxd_cbs =
{
/* socket */
{ sock_open, sock_close, sock_recv, sock_send },
/* session */
{ session_config, session_error },
/* multiplexer */
{ mux_open, mux_close, mux_addhnd, mux_delhnd, mux_poll }
};
/* ------------------------------------------------------------------- */
typedef struct tr_t tr_t;
struct tr_t
{
unsigned int line;
qse_sio_t* sio;
qse_str_t* t;
unsigned int tl;
qse_char_t last;
};
tr_t* tr_open (const qse_char_t* name)
{
tr_t* tr;
tr = malloc (QSE_SIZEOF(*tr));
if (tr == QSE_NULL) return QSE_NULL;
memset (tr, 0, sizeof(*tr));
tr->line = 1;
tr->sio = qse_sio_open (QSE_MMGR_GETDFL(), 0, name, QSE_SIO_READ);
if (tr->sio == QSE_NULL)
{
free (tr);
return QSE_NULL;
}
tr->t = qse_str_open (QSE_MMGR_GETDFL(), 0, 128);
if (tr->t == QSE_NULL)
{
qse_sio_close (tr->sio);
free (tr);
return QSE_NULL;
}
return tr;
}
void tr_close (tr_t* tr)
{
qse_str_close (tr->t);
qse_sio_close (tr->sio);
free (tr);
}
qse_char_t* tr_getnext (tr_t* tr)
{
qse_char_t c;
qse_str_clear (tr->t);
if (tr->last)
{
tr->tl = tr->line;
if (qse_str_ccat (tr->t, tr->last) == (qse_ssize_t)-1) return QSE_NULL;
tr->last = 0;
}
else
{
/* skip spaces */
while (1)
{
if (qse_sio_getc (tr->sio, &c) <= -1) return QSE_NULL;
if (c == QSE_CHAR_EOF) return QSE_NULL;
if (c == QSE_T('\n')) tr->line++;
if (!QSE_ISSPACE(c)) break;
}
tr->tl = tr->line;
if (c == QSE_T(';') || c == QSE_T('{') || c == QSE_T('}'))
{
if (qse_str_ccat (tr->t, c) == (qse_ssize_t)-1) return QSE_NULL;
}
else
{
do
{
if (qse_str_ccat (tr->t, c) == (qse_ssize_t)-1) return QSE_NULL;
if (qse_sio_getc (tr->sio, &c) <= -1) return QSE_NULL;
if (c == QSE_CHAR_EOF) break;
if (c == QSE_T('\n')) tr->line++;
if (QSE_ISSPACE(c)) break;
else if (c == QSE_T(';') || c == QSE_T('{') || c == QSE_T('}'))
{
tr->last = c;
break;
}
}
while (1);
}
}
return QSE_STR_PTR(tr->t);
}
/* ------------------------------------------------------------------- */
struct cfg_rule_t
{
struct
{
qse_ipad_t ipad;
qse_ipad_t mask;
} src;
int action; /* DROP, FORWARD */
struct
{
qse_nwad_t via;
qse_char_t via_dev[64];
qse_nwad_t to_nwad;
} fwd;
};
typedef struct cfg_listen_t cfg_listen_t;
struct cfg_listen_t
{
qse_nwad_t nwad;
qse_char_t dev[64];
cfg_rule_t* rule;
};
typedef struct cfg_t cfg_t;
struct cfg_t
{
cfg_listen_t* list;
};
cfg_t* cfg_open (void)
{
cfg_t* cfg;
cfg = malloc (QSE_SIZEOF(*cfg));
if (cfg == QSE_NULL) return QSE_NULL;
return cfg;
}
void cfg_close (cfg_t*)
{
free (cfg);
}
cfg_listen_t* cfg_addlisten (cfg_t* cfg, qse_nwad_t nwad, const qse_char_t* dev)
{
cfg_listen_t* ptr;
ptr = malloc (QSE_SIZEOF(*ptr));
if (ptr == QSE_NULL) return QSE_NULL;
ptr->nwad = nwad;
qse_strxcpy (ptr->dev, QSE_COUNTOF(ptr->dev), dev);
ptr->rule = QSE_NULL;
return ptr;
}
static cfg_t* load_cfg (const qse_char_t* name)
{
tr_t* tr;
const qse_char_t* t;
cfg_t* cfg;
cfg_listen_t cfglis;
qse_nwad_t nwad;
cfg = malloc (QSE_SIZEOF(*cfg));
if (cfg == QSE_NULL) return QSE_NULL;
tr = tr_open (name);
if (tr == QSE_NULL) goto oops;
do
{
t = tr_getnext(tr);
if (t == QSE_NULL) break;
if (qse_strcmp (t, QSE_T("listen")) == 0)
{
tmp = tr_getnext(tr);
if (tmp == QSE_NULL || qse_strtonwad (tmp, &nwad) <= -1)
{
qse_printf (QSE_T("line %u: ipaddr:port expected after 'listen'\n"), (unsigned int)tr->tl);
goto oops;
}
tmp = tr_getnext (tr);
if (tmp == QSE_NULL)
{
qse_printf (QSE_T("line %u: 'dev' or { expected\n"), (unsigned int)tr->tl);
goto oops;
}
if (qse_strcmp (tmp, QSE_T("dev")) == 0)
{
tmp = tr_getnext (tr);
if (tmp == QSE_NULL)
{
qse_printf (QSE_T("line %u: device name expected\n"), (unsigned int)tr->tl);
goto oops;
}
if (cfg_addlisten (cfg, &nwad, tmp) <= -1)
{
qse_printf (QSE_T("line %u: failed to add a new service\n"), (unsigned int)tr->tl);
goto oops;
}
tmp = tr_getnext (tr);
if (tmp == QSE_NULL)
{
qse_printf (QSE_T("line %u: { expected\n"), (unsigned int)tr->tl);
goto oops;
}
}
if (qse_strcmp (tmp, QSE_T('{')) != 0)
{
qse_printf (QSE_T("line %u: { expected\n"), (unsigned int)tr->tl);
goto oops;
}
while (1)
{
tmp = tr_getnext (tr);
if (tmp == QSE_NULL)
{
qse_printf (QSE_T("line %u: } expected\n"), (unsigned int)tr->tl);
goto oops;
}
if (qse_strcmp (tmp, QSE_T("}")) == 0) break;
if (qse_strcmp (tmp, QSE_T("from")) != 0)
{
qse_printf (QSE_T("line %u: 'from' expected\n"), (unsigned int)tr->tl);
}
tmp = tr_getnext (tr);
if (qse_strcmp (action, QSE_T("drop")) == 0)
{
}
else if (qse_strcmp (action, QSE_T("forward")) == 0)
{
}
else
{
}
tmp = tr_getnext (tr);
if (qse_strcmp (tmp, QSE_T(";")) != 0)
{
}
}
tmp = tr_getnext (tr);
if (qse_strcmp (tmp, QSE_T("}")) != 0)
{
}
}
else
{
qse_printf (QSE_T("line %u: 'listen' expected\n"), (unsigned int)tr->tl);
goto oops;
}
}
while (1);
return cfg;
oops:
if (tr) tr_close (tr);
return QSE_NULL;
}
static void free_cfg (cfg_t* cfg)
{
}
/* ------------------------------------------- */
static qse_upxd_t* g_upxd = QSE_NULL;
static void sigint (int sig)
{
if (g_upxd) qse_upxd_stop (g_upxd);
}
int upxd_main (int argc, qse_char_t* argv[])
{
qse_upxd_t* upxd = QSE_NULL;
cfg_t* cfg = QSE_NULL;
int ret = -1, i;
if (argc <= 1)
{
qse_fprintf (QSE_STDERR, QSE_T("Usage: %s <server-address> ...\n"), argv[0]);
goto oops;
}
cfg = load_cfg (argv[1]);
if (cfg == QSE_NULL)
{
qse_fprintf (QSE_STDERR, QSE_T("Error: Cannot load %s\n"), argv[1]);
goto oops;
}
upxd = qse_upxd_open (QSE_MMGR_GETDFL(), 0);
if (upxd == QSE_NULL)
{
qse_fprintf (QSE_STDERR, QSE_T("Cannot open upxd\n"));
goto oops;
}
for (i = 1; i < argc; i++)
{
qse_nwad_t nwad;
if (qse_strtonwad (argv[i], &nwad) <= -1)
{
qse_fprintf (QSE_STDERR,
QSE_T("Wrong server - %s\n"), argv[i]);
goto oops;
}
if (qse_upxd_addserver (upxd, &nwad, QSE_NULL) == QSE_NULL)
{
qse_fprintf (QSE_STDERR,
QSE_T("Failed to add server - %s\n"), argv[i]);
goto oops;
}
}
g_upxd = upxd;
signal (SIGINT, sigint);
signal (SIGPIPE, SIG_IGN);
qse_upxd_setcbs (upxd, &upxd_cbs);
ret = qse_upxd_loop (upxd, 5000);
signal (SIGINT, SIG_DFL);
signal (SIGPIPE, SIG_DFL);
g_upxd = QSE_NULL;
if (ret <= -1)
qse_fprintf (QSE_STDERR, QSE_T("Error - %d\n"), (int)qse_upxd_geterrnum(upxd));
oops:
if (upxd) qse_upxd_close (upxd);
if (cfg) free_cfg (cfg);
return ret;
}
int qse_main (int argc, qse_achar_t* argv[])
{
#if defined(_WIN32)
char locale[100];
UINT codepage = GetConsoleOutputCP();
if (codepage == CP_UTF8)
{
/*SetConsoleOUtputCP (CP_UTF8);*/
qse_setdflcmgrbyid (QSE_CMGR_UTF8);
}
else
{
sprintf (locale, ".%u", (unsigned int)codepage);
setlocale (LC_ALL, locale);
/*qse_setdflcmgrbyid (QSE_CMGR_SLMB);*/
}
#else
setlocale (LC_ALL, "");
/*qse_setdflcmgrbyid (QSE_CMGR_SLMB);*/
#endif
return qse_runmain (argc, argv, upxd_main);
}

View File

@ -1,6 +1,6 @@
#include <qse/sed/stdsed.h>
#include <qse/cmn/main.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include "sed00.h"
static int sed_main (int argc, qse_char_t* argv[])

View File

@ -1,6 +1,6 @@
#include <qse/sed/stdsed.h>
#include <qse/cmn/main.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include "sed00.h"
static int sed_main (int argc, qse_char_t* argv[])

View File

@ -1,6 +1,6 @@
#include <qse/sed/stdsed.h>
#include <qse/cmn/main.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include "sed00.h"
static void trace_exec (qse_sed_t* sed, qse_sed_tracer_op_t op, qse_sed_cmd_t* cmd)

View File

@ -6,14 +6,23 @@ AM_CPPFLAGS = \
-I$(includedir)
bin_PROGRAMS = \
dir01 \
fio01 \
fio02 \
fs01 \
fs02 \
fs03 \
glob01 \
nwad01 \
nwif01 \
nwif02 \
pio01 \
rwl01 \
sio01 \
sio02 \
sio03
sio03 \
task01
AM_LDFLAGS = -L../../lib/si -L../../lib/cmn
AM_CFLAGS = $(PTHREAD_CFLAGS)
LDADD = -lqsesi -lqsecmn $(PTHREAD_LIBS)
@ -24,11 +33,20 @@ LDADD += $(UNICOWS_LIBS)
endif
endif
dir01_SOURCES = dir01.c
fio01_SOURCES = fio01.c
fio02_SOURCES = fio02.c
fs01_SOURCES = fs01.c
fs02_SOURCES = fs02.c
fs03_SOURCES = fs03.c
glob01_SOURCES = glob01.c
nwad01_SOURCES = nwad01.c
nwif01_SOURCES = nwif01.c
nwif02_SOURCES = nwif02.c
pio01_SOURCES = pio01.c
rwl01_SOURCES = rwl01.c
sio01_SOURCES = sio01.c
sio02_SOURCES = sio02.c
sio03_SOURCES = sio03.c
task01_SOURCES = task01.c

View File

@ -78,8 +78,11 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
bin_PROGRAMS = fio01$(EXEEXT) fio02$(EXEEXT) pio01$(EXEEXT) \
rwl01$(EXEEXT) sio01$(EXEEXT) sio02$(EXEEXT) sio03$(EXEEXT)
bin_PROGRAMS = dir01$(EXEEXT) fio01$(EXEEXT) fio02$(EXEEXT) \
fs01$(EXEEXT) fs02$(EXEEXT) fs03$(EXEEXT) glob01$(EXEEXT) \
nwad01$(EXEEXT) nwif01$(EXEEXT) nwif02$(EXEEXT) pio01$(EXEEXT) \
rwl01$(EXEEXT) sio01$(EXEEXT) sio02$(EXEEXT) sio03$(EXEEXT) \
task01$(EXEEXT)
@WCHAR_TRUE@@WIN32_TRUE@am__append_1 = $(UNICOWS_LIBS)
subdir = samples/si
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
@ -101,20 +104,52 @@ CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
am__installdirs = "$(DESTDIR)$(bindir)"
PROGRAMS = $(bin_PROGRAMS)
am_fio01_OBJECTS = fio01.$(OBJEXT)
fio01_OBJECTS = $(am_fio01_OBJECTS)
fio01_LDADD = $(LDADD)
am_dir01_OBJECTS = dir01.$(OBJEXT)
dir01_OBJECTS = $(am_dir01_OBJECTS)
dir01_LDADD = $(LDADD)
am__DEPENDENCIES_1 =
@WCHAR_TRUE@@WIN32_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1)
fio01_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
dir01_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
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 =
am_fio01_OBJECTS = fio01.$(OBJEXT)
fio01_OBJECTS = $(am_fio01_OBJECTS)
fio01_LDADD = $(LDADD)
fio01_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
am_fio02_OBJECTS = fio02.$(OBJEXT)
fio02_OBJECTS = $(am_fio02_OBJECTS)
fio02_LDADD = $(LDADD)
fio02_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
am_fs01_OBJECTS = fs01.$(OBJEXT)
fs01_OBJECTS = $(am_fs01_OBJECTS)
fs01_LDADD = $(LDADD)
fs01_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
am_fs02_OBJECTS = fs02.$(OBJEXT)
fs02_OBJECTS = $(am_fs02_OBJECTS)
fs02_LDADD = $(LDADD)
fs02_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
am_fs03_OBJECTS = fs03.$(OBJEXT)
fs03_OBJECTS = $(am_fs03_OBJECTS)
fs03_LDADD = $(LDADD)
fs03_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
am_glob01_OBJECTS = glob01.$(OBJEXT)
glob01_OBJECTS = $(am_glob01_OBJECTS)
glob01_LDADD = $(LDADD)
glob01_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
am_nwad01_OBJECTS = nwad01.$(OBJEXT)
nwad01_OBJECTS = $(am_nwad01_OBJECTS)
nwad01_LDADD = $(LDADD)
nwad01_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
am_nwif01_OBJECTS = nwif01.$(OBJEXT)
nwif01_OBJECTS = $(am_nwif01_OBJECTS)
nwif01_LDADD = $(LDADD)
nwif01_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
am_nwif02_OBJECTS = nwif02.$(OBJEXT)
nwif02_OBJECTS = $(am_nwif02_OBJECTS)
nwif02_LDADD = $(LDADD)
nwif02_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
am_pio01_OBJECTS = pio01.$(OBJEXT)
pio01_OBJECTS = $(am_pio01_OBJECTS)
pio01_LDADD = $(LDADD)
@ -135,6 +170,10 @@ am_sio03_OBJECTS = sio03.$(OBJEXT)
sio03_OBJECTS = $(am_sio03_OBJECTS)
sio03_LDADD = $(LDADD)
sio03_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
am_task01_OBJECTS = task01.$(OBJEXT)
task01_OBJECTS = $(am_task01_OBJECTS)
task01_LDADD = $(LDADD)
task01_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
@ -169,12 +208,18 @@ AM_V_CCLD = $(am__v_CCLD_@AM_V@)
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
am__v_CCLD_0 = @echo " CCLD " $@;
am__v_CCLD_1 =
SOURCES = $(fio01_SOURCES) $(fio02_SOURCES) $(pio01_SOURCES) \
$(rwl01_SOURCES) $(sio01_SOURCES) $(sio02_SOURCES) \
$(sio03_SOURCES)
DIST_SOURCES = $(fio01_SOURCES) $(fio02_SOURCES) $(pio01_SOURCES) \
$(rwl01_SOURCES) $(sio01_SOURCES) $(sio02_SOURCES) \
$(sio03_SOURCES)
SOURCES = $(dir01_SOURCES) $(fio01_SOURCES) $(fio02_SOURCES) \
$(fs01_SOURCES) $(fs02_SOURCES) $(fs03_SOURCES) \
$(glob01_SOURCES) $(nwad01_SOURCES) $(nwif01_SOURCES) \
$(nwif02_SOURCES) $(pio01_SOURCES) $(rwl01_SOURCES) \
$(sio01_SOURCES) $(sio02_SOURCES) $(sio03_SOURCES) \
$(task01_SOURCES)
DIST_SOURCES = $(dir01_SOURCES) $(fio01_SOURCES) $(fio02_SOURCES) \
$(fs01_SOURCES) $(fs02_SOURCES) $(fs03_SOURCES) \
$(glob01_SOURCES) $(nwad01_SOURCES) $(nwif01_SOURCES) \
$(nwif02_SOURCES) $(pio01_SOURCES) $(rwl01_SOURCES) \
$(sio01_SOURCES) $(sio02_SOURCES) $(sio03_SOURCES) \
$(task01_SOURCES)
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
@ -384,13 +429,22 @@ AM_CPPFLAGS = \
AM_LDFLAGS = -L../../lib/si -L../../lib/cmn
AM_CFLAGS = $(PTHREAD_CFLAGS)
LDADD = -lqsesi -lqsecmn $(PTHREAD_LIBS) $(am__append_1)
dir01_SOURCES = dir01.c
fio01_SOURCES = fio01.c
fio02_SOURCES = fio02.c
fs01_SOURCES = fs01.c
fs02_SOURCES = fs02.c
fs03_SOURCES = fs03.c
glob01_SOURCES = glob01.c
nwad01_SOURCES = nwad01.c
nwif01_SOURCES = nwif01.c
nwif02_SOURCES = nwif02.c
pio01_SOURCES = pio01.c
rwl01_SOURCES = rwl01.c
sio01_SOURCES = sio01.c
sio02_SOURCES = sio02.c
sio03_SOURCES = sio03.c
task01_SOURCES = task01.c
all: all-am
.SUFFIXES:
@ -475,6 +529,10 @@ clean-binPROGRAMS:
echo " rm -f" $$list; \
rm -f $$list
dir01$(EXEEXT): $(dir01_OBJECTS) $(dir01_DEPENDENCIES) $(EXTRA_dir01_DEPENDENCIES)
@rm -f dir01$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(dir01_OBJECTS) $(dir01_LDADD) $(LIBS)
fio01$(EXEEXT): $(fio01_OBJECTS) $(fio01_DEPENDENCIES) $(EXTRA_fio01_DEPENDENCIES)
@rm -f fio01$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(fio01_OBJECTS) $(fio01_LDADD) $(LIBS)
@ -483,6 +541,34 @@ fio02$(EXEEXT): $(fio02_OBJECTS) $(fio02_DEPENDENCIES) $(EXTRA_fio02_DEPENDENCIE
@rm -f fio02$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(fio02_OBJECTS) $(fio02_LDADD) $(LIBS)
fs01$(EXEEXT): $(fs01_OBJECTS) $(fs01_DEPENDENCIES) $(EXTRA_fs01_DEPENDENCIES)
@rm -f fs01$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(fs01_OBJECTS) $(fs01_LDADD) $(LIBS)
fs02$(EXEEXT): $(fs02_OBJECTS) $(fs02_DEPENDENCIES) $(EXTRA_fs02_DEPENDENCIES)
@rm -f fs02$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(fs02_OBJECTS) $(fs02_LDADD) $(LIBS)
fs03$(EXEEXT): $(fs03_OBJECTS) $(fs03_DEPENDENCIES) $(EXTRA_fs03_DEPENDENCIES)
@rm -f fs03$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(fs03_OBJECTS) $(fs03_LDADD) $(LIBS)
glob01$(EXEEXT): $(glob01_OBJECTS) $(glob01_DEPENDENCIES) $(EXTRA_glob01_DEPENDENCIES)
@rm -f glob01$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(glob01_OBJECTS) $(glob01_LDADD) $(LIBS)
nwad01$(EXEEXT): $(nwad01_OBJECTS) $(nwad01_DEPENDENCIES) $(EXTRA_nwad01_DEPENDENCIES)
@rm -f nwad01$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(nwad01_OBJECTS) $(nwad01_LDADD) $(LIBS)
nwif01$(EXEEXT): $(nwif01_OBJECTS) $(nwif01_DEPENDENCIES) $(EXTRA_nwif01_DEPENDENCIES)
@rm -f nwif01$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(nwif01_OBJECTS) $(nwif01_LDADD) $(LIBS)
nwif02$(EXEEXT): $(nwif02_OBJECTS) $(nwif02_DEPENDENCIES) $(EXTRA_nwif02_DEPENDENCIES)
@rm -f nwif02$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(nwif02_OBJECTS) $(nwif02_LDADD) $(LIBS)
pio01$(EXEEXT): $(pio01_OBJECTS) $(pio01_DEPENDENCIES) $(EXTRA_pio01_DEPENDENCIES)
@rm -f pio01$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(pio01_OBJECTS) $(pio01_LDADD) $(LIBS)
@ -503,19 +589,32 @@ sio03$(EXEEXT): $(sio03_OBJECTS) $(sio03_DEPENDENCIES) $(EXTRA_sio03_DEPENDENCIE
@rm -f sio03$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(sio03_OBJECTS) $(sio03_LDADD) $(LIBS)
task01$(EXEEXT): $(task01_OBJECTS) $(task01_DEPENDENCIES) $(EXTRA_task01_DEPENDENCIES)
@rm -f task01$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(task01_OBJECTS) $(task01_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dir01.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fio01.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fio02.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fs01.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fs02.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fs03.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glob01.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nwad01.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nwif01.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nwif02.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pio01.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rwl01.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sio01.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sio02.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sio03.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/task01.Po@am__quote@
.c.o:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<

View File

@ -1,7 +1,7 @@
#include <qse/cmn/dir.h>
#include <qse/si/dir.h>
#include <qse/cmn/main.h>
#include <qse/cmn/mbwc.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <qse/cmn/mem.h>
#include <qse/cmn/str.h>
#include <qse/cmn/fmt.h>

View File

@ -1,7 +1,7 @@
#include <qse/cmn/fio.h>
#include <qse/si/fio.h>
#include <qse/cmn/mem.h>
#include <qse/cmn/str.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <locale.h>

View File

@ -1,7 +1,7 @@
#include <qse/cmn/fio.h>
#include <qse/si/fio.h>
#include <qse/cmn/mem.h>
#include <qse/cmn/str.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#define R(f) \
do { \

View File

@ -1,8 +1,9 @@
#include <qse/cmn/fs.h>
#include <qse/si/fs.h>
#include <qse/si/sio.h>
#include <qse/cmn/mem.h>
#include <qse/cmn/main.h>
#include <qse/cmn/mbwc.h>
#include <qse/cmn/sio.h>
#include <locale.h>
#if defined(_WIN32)

View File

@ -1,7 +1,7 @@
#include <qse/cmn/fs.h>
#include <qse/si/fs.h>
#include <qse/cmn/mem.h>
#include <qse/cmn/str.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <qse/cmn/path.h>
#include <qse/cmn/main.h>
#include <qse/cmn/mbwc.h>

View File

@ -1,7 +1,7 @@
#include <qse/cmn/fs.h>
#include <qse/si/fs.h>
#include <qse/cmn/mem.h>
#include <qse/cmn/str.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <qse/cmn/path.h>
#include <qse/cmn/main.h>
#include <qse/cmn/mbwc.h>

View File

@ -1,5 +1,5 @@
#include <qse/cmn/glob.h>
#include <qse/cmn/sio.h>
#include <qse/si/glob.h>
#include <qse/si/sio.h>
#include <qse/cmn/main.h>
#include <qse/cmn/mbwc.h>
#include <qse/cmn/str.h>

View File

@ -1,7 +1,7 @@
#include <qse/cmn/nwad.h>
#include <qse/si/nwad.h>
#include <qse/cmn/main.h>
#include <qse/cmn/mbwc.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <locale.h>
#if defined(_WIN32)

View File

@ -1,9 +1,9 @@
#include <qse/cmn/nwif.h>
#include <qse/si/nwif.h>
#include <qse/cmn/mbwc.h>
#include <qse/cmn/main.h>
#include <qse/cmn/mem.h>
#include <qse/cmn/str.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <qse/cmn/fmt.h>
#include <locale.h>

View File

@ -1,7 +1,7 @@
#include <qse/cmn/nwif.h>
#include <qse/si/nwif.h>
#include <qse/cmn/mbwc.h>
#include <qse/cmn/main.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <qse/cmn/mem.h>
#include <qse/cmn/str.h>
#include <qse/cmn/fmt.h>

View File

@ -1,7 +1,7 @@
#include <qse/cmn/pio.h>
#include <qse/si/pio.h>
#include <qse/cmn/mem.h>
#include <qse/cmn/env.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <locale.h>

View File

@ -1,8 +1,8 @@
#include <qse/sys/rwl.h>
#include <qse/sys/thr.h>
#include <qse/cmn/sio.h>
#include <qse/si/rwl.h>
#include <qse/si/thr.h>
#include <qse/si/sio.h>
#include <qse/si/intr.h>
#include <qse/cmn/mem.h>
#include <qse/sys/intr.h>
#include <locale.h>

View File

@ -1,4 +1,4 @@
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <qse/cmn/mbwc.h>
#include <qse/cmn/mem.h>
#include <qse/cmn/mem.h>

View File

@ -1,4 +1,4 @@
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <qse/cmn/mbwc.h>
#include <qse/cmn/mem.h>
#include <qse/cmn/fmt.h>

View File

@ -1,4 +1,4 @@
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <qse/cmn/mbwc.h>
#include <qse/cmn/mem.h>

View File

@ -1,8 +1,8 @@
#include <qse/cmn/task.h>
#include <qse/si/task.h>
#include <qse/cmn/main.h>
#include <qse/cmn/mbwc.h>
#include <qse/cmn/mem.h>
#include <qse/cmn/sio.h>
#include <qse/si/sio.h>
#include <locale.h>
#if defined(_WIN32)