summaryrefslogtreecommitdiffstats
path: root/rubbos/app/httpd-2.0.64/support
diff options
context:
space:
mode:
authorhongbotian <hongbo.tianhongbo@huawei.com>2015-11-30 03:10:21 -0500
committerhongbotian <hongbo.tianhongbo@huawei.com>2015-11-30 03:10:21 -0500
commitc0b7206652b2852bc574694e7ba07ba1c2acdc00 (patch)
tree5cb95cb0e19e03610525903df46279df2c3b7eb1 /rubbos/app/httpd-2.0.64/support
parentb6d3d6e668b793220f2d3af1bc3e828553dc3fe6 (diff)
delete app
Change-Id: Id4c572809969ebe89e946e88063eaed262cff3f2 Signed-off-by: hongbotian <hongbo.tianhongbo@huawei.com>
Diffstat (limited to 'rubbos/app/httpd-2.0.64/support')
-rw-r--r--rubbos/app/httpd-2.0.64/support/.deps0
-rw-r--r--rubbos/app/httpd-2.0.64/support/.indent.pro54
-rwxr-xr-xrubbos/app/httpd-2.0.64/support/.libs/abbin104358 -> 0 bytes
-rw-r--r--rubbos/app/httpd-2.0.64/support/.libs/ab.obin194072 -> 0 bytes
-rwxr-xr-xrubbos/app/httpd-2.0.64/support/.libs/checkgidbin13697 -> 0 bytes
-rw-r--r--rubbos/app/httpd-2.0.64/support/.libs/checkgid.obin12312 -> 0 bytes
-rwxr-xr-xrubbos/app/httpd-2.0.64/support/.libs/htdbmbin44199 -> 0 bytes
-rw-r--r--rubbos/app/httpd-2.0.64/support/.libs/htdbm.obin65256 -> 0 bytes
-rwxr-xr-xrubbos/app/httpd-2.0.64/support/.libs/htdigestbin30574 -> 0 bytes
-rw-r--r--rubbos/app/httpd-2.0.64/support/.libs/htdigest.obin34768 -> 0 bytes
-rwxr-xr-xrubbos/app/httpd-2.0.64/support/.libs/htpasswdbin38642 -> 0 bytes
-rw-r--r--rubbos/app/httpd-2.0.64/support/.libs/htpasswd.obin60736 -> 0 bytes
-rwxr-xr-xrubbos/app/httpd-2.0.64/support/.libs/httxt2dbmbin23394 -> 0 bytes
-rw-r--r--rubbos/app/httpd-2.0.64/support/.libs/httxt2dbm.obin28616 -> 0 bytes
-rwxr-xr-xrubbos/app/httpd-2.0.64/support/.libs/logresolvebin29935 -> 0 bytes
-rw-r--r--rubbos/app/httpd-2.0.64/support/.libs/logresolve.obin46184 -> 0 bytes
-rwxr-xr-xrubbos/app/httpd-2.0.64/support/.libs/rotatelogsbin26569 -> 0 bytes
-rw-r--r--rubbos/app/httpd-2.0.64/support/.libs/rotatelogs.obin34816 -> 0 bytes
-rw-r--r--rubbos/app/httpd-2.0.64/support/Makefile73
-rw-r--r--rubbos/app/httpd-2.0.64/support/Makefile.in68
-rw-r--r--rubbos/app/httpd-2.0.64/support/NWGNUab254
-rw-r--r--rubbos/app/httpd-2.0.64/support/NWGNUhtdbm252
-rw-r--r--rubbos/app/httpd-2.0.64/support/NWGNUhtdigest252
-rw-r--r--rubbos/app/httpd-2.0.64/support/NWGNUhtpasswd252
-rw-r--r--rubbos/app/httpd-2.0.64/support/NWGNUlogres254
-rw-r--r--rubbos/app/httpd-2.0.64/support/NWGNUmakefile249
-rw-r--r--rubbos/app/httpd-2.0.64/support/NWGNUrotlogs251
-rw-r--r--rubbos/app/httpd-2.0.64/support/README62
-rw-r--r--rubbos/app/httpd-2.0.64/support/SHA1/README.sha134
-rw-r--r--rubbos/app/httpd-2.0.64/support/SHA1/convert-sha1.pl36
-rw-r--r--rubbos/app/httpd-2.0.64/support/SHA1/htpasswd-sha1.pl22
-rw-r--r--rubbos/app/httpd-2.0.64/support/SHA1/ldif-sha1.example19
-rwxr-xr-xrubbos/app/httpd-2.0.64/support/ab131
-rw-r--r--rubbos/app/httpd-2.0.64/support/ab.c2195
-rw-r--r--rubbos/app/httpd-2.0.64/support/ab.dsp123
-rw-r--r--rubbos/app/httpd-2.0.64/support/ab.lo12
-rw-r--r--rubbos/app/httpd-2.0.64/support/ab.obin194072 -> 0 bytes
-rw-r--r--rubbos/app/httpd-2.0.64/support/abs.dsp134
-rw-r--r--rubbos/app/httpd-2.0.64/support/apachectl103
-rw-r--r--rubbos/app/httpd-2.0.64/support/apachectl.in103
-rw-r--r--rubbos/app/httpd-2.0.64/support/apxs778
-rw-r--r--rubbos/app/httpd-2.0.64/support/apxs.in778
-rwxr-xr-xrubbos/app/httpd-2.0.64/support/check_forensic51
-rwxr-xr-xrubbos/app/httpd-2.0.64/support/checkgid131
-rw-r--r--rubbos/app/httpd-2.0.64/support/checkgid.c110
-rw-r--r--rubbos/app/httpd-2.0.64/support/checkgid.lo12
-rw-r--r--rubbos/app/httpd-2.0.64/support/checkgid.obin12312 -> 0 bytes
-rw-r--r--rubbos/app/httpd-2.0.64/support/config.m4104
-rw-r--r--rubbos/app/httpd-2.0.64/support/dbmmanage312
-rw-r--r--rubbos/app/httpd-2.0.64/support/dbmmanage.in312
-rw-r--r--rubbos/app/httpd-2.0.64/support/envvars-std24
-rw-r--r--rubbos/app/httpd-2.0.64/support/envvars-std.in24
-rwxr-xr-xrubbos/app/httpd-2.0.64/support/htdbm131
-rw-r--r--rubbos/app/httpd-2.0.64/support/htdbm.c585
-rw-r--r--rubbos/app/httpd-2.0.64/support/htdbm.dsp123
-rw-r--r--rubbos/app/httpd-2.0.64/support/htdbm.lo12
-rw-r--r--rubbos/app/httpd-2.0.64/support/htdbm.obin65256 -> 0 bytes
-rwxr-xr-xrubbos/app/httpd-2.0.64/support/htdigest131
-rw-r--r--rubbos/app/httpd-2.0.64/support/htdigest.c291
-rw-r--r--rubbos/app/httpd-2.0.64/support/htdigest.dsp123
-rw-r--r--rubbos/app/httpd-2.0.64/support/htdigest.lo12
-rw-r--r--rubbos/app/httpd-2.0.64/support/htdigest.obin34768 -> 0 bytes
-rwxr-xr-xrubbos/app/httpd-2.0.64/support/htpasswd131
-rw-r--r--rubbos/app/httpd-2.0.64/support/htpasswd.c610
-rw-r--r--rubbos/app/httpd-2.0.64/support/htpasswd.dsp123
-rw-r--r--rubbos/app/httpd-2.0.64/support/htpasswd.lo12
-rw-r--r--rubbos/app/httpd-2.0.64/support/htpasswd.obin60736 -> 0 bytes
-rwxr-xr-xrubbos/app/httpd-2.0.64/support/httxt2dbm131
-rw-r--r--rubbos/app/httpd-2.0.64/support/httxt2dbm.c336
-rw-r--r--rubbos/app/httpd-2.0.64/support/httxt2dbm.dsp123
-rw-r--r--rubbos/app/httpd-2.0.64/support/httxt2dbm.lo12
-rw-r--r--rubbos/app/httpd-2.0.64/support/httxt2dbm.obin28616 -> 0 bytes
-rwxr-xr-xrubbos/app/httpd-2.0.64/support/list_hooks.pl101
-rw-r--r--rubbos/app/httpd-2.0.64/support/log_server_status78
-rw-r--r--rubbos/app/httpd-2.0.64/support/log_server_status.in78
-rwxr-xr-xrubbos/app/httpd-2.0.64/support/logresolve131
-rw-r--r--rubbos/app/httpd-2.0.64/support/logresolve.c400
-rw-r--r--rubbos/app/httpd-2.0.64/support/logresolve.dsp123
-rw-r--r--rubbos/app/httpd-2.0.64/support/logresolve.lo12
-rw-r--r--rubbos/app/httpd-2.0.64/support/logresolve.obin46184 -> 0 bytes
-rw-r--r--rubbos/app/httpd-2.0.64/support/logresolve.pl225
-rw-r--r--rubbos/app/httpd-2.0.64/support/logresolve.pl.in225
-rw-r--r--rubbos/app/httpd-2.0.64/support/phf_abuse_log.cgi38
-rw-r--r--rubbos/app/httpd-2.0.64/support/phf_abuse_log.cgi.in38
-rwxr-xr-xrubbos/app/httpd-2.0.64/support/rotatelogs131
-rw-r--r--rubbos/app/httpd-2.0.64/support/rotatelogs.c262
-rw-r--r--rubbos/app/httpd-2.0.64/support/rotatelogs.dsp123
-rw-r--r--rubbos/app/httpd-2.0.64/support/rotatelogs.lo12
-rw-r--r--rubbos/app/httpd-2.0.64/support/rotatelogs.obin34816 -> 0 bytes
-rw-r--r--rubbos/app/httpd-2.0.64/support/split-logfile67
-rw-r--r--rubbos/app/httpd-2.0.64/support/split-logfile.in67
-rw-r--r--rubbos/app/httpd-2.0.64/support/suexec.c619
-rw-r--r--rubbos/app/httpd-2.0.64/support/suexec.h108
-rw-r--r--rubbos/app/httpd-2.0.64/support/utilitiesnw.def3
-rw-r--r--rubbos/app/httpd-2.0.64/support/win32/ApacheMonitor.c1945
-rw-r--r--rubbos/app/httpd-2.0.64/support/win32/ApacheMonitor.dsp143
-rw-r--r--rubbos/app/httpd-2.0.64/support/win32/ApacheMonitor.h78
-rw-r--r--rubbos/app/httpd-2.0.64/support/win32/ApacheMonitor.icobin1078 -> 0 bytes
-rw-r--r--rubbos/app/httpd-2.0.64/support/win32/ApacheMonitor.rc97
-rw-r--r--rubbos/app/httpd-2.0.64/support/win32/apache_header.bmpbin6498 -> 0 bytes
-rw-r--r--rubbos/app/httpd-2.0.64/support/win32/aprun.icobin318 -> 0 bytes
-rw-r--r--rubbos/app/httpd-2.0.64/support/win32/apstop.icobin318 -> 0 bytes
-rw-r--r--rubbos/app/httpd-2.0.64/support/win32/srun.bmpbin246 -> 0 bytes
-rw-r--r--rubbos/app/httpd-2.0.64/support/win32/sstop.bmpbin246 -> 0 bytes
-rw-r--r--rubbos/app/httpd-2.0.64/support/win32/wintty.c375
-rw-r--r--rubbos/app/httpd-2.0.64/support/win32/wintty.dsp123
106 files changed, 0 insertions, 16057 deletions
diff --git a/rubbos/app/httpd-2.0.64/support/.deps b/rubbos/app/httpd-2.0.64/support/.deps
deleted file mode 100644
index e69de29b..00000000
--- a/rubbos/app/httpd-2.0.64/support/.deps
+++ /dev/null
diff --git a/rubbos/app/httpd-2.0.64/support/.indent.pro b/rubbos/app/httpd-2.0.64/support/.indent.pro
deleted file mode 100644
index a9fbe9f9..00000000
--- a/rubbos/app/httpd-2.0.64/support/.indent.pro
+++ /dev/null
@@ -1,54 +0,0 @@
--i4 -npsl -di0 -br -nce -d0 -cli0 -npcs -nfc1
--TBUFF
--TFILE
--TTRANS
--TUINT4
--T_trans
--Tallow_options_t
--Tapache_sfio
--Tarray_header
--Tbool_int
--Tbuf_area
--Tbuff_struct
--Tbuffy
--Tcmd_how
--Tcmd_parms
--Tcommand_rec
--Tcommand_struct
--Tconn_rec
--Tcore_dir_config
--Tcore_server_config
--Tdir_maker_func
--Tevent
--Tglobals_s
--Thandler_func
--Thandler_rec
--Tjoblist_s
--Tlisten_rec
--Tmerger_func
--Tmode_t
--Tmodule
--Tmodule_struct
--Tmutex
--Tn_long
--Tother_child_rec
--Toverrides_t
--Tparent_score
--Tpid_t
--Tpiped_log
--Tpool
--Trequest_rec
--Trequire_line
--Trlim_t
--Tscoreboard
--Tsemaphore
--Tserver_addr_rec
--Tserver_rec
--Tserver_rec_chain
--Tshort_score
--Ttable
--Ttable_entry
--Tthread
--Tu_wide_int
--Tvtime_t
--Twide_int
diff --git a/rubbos/app/httpd-2.0.64/support/.libs/ab b/rubbos/app/httpd-2.0.64/support/.libs/ab
deleted file mode 100755
index e5b37b70..00000000
--- a/rubbos/app/httpd-2.0.64/support/.libs/ab
+++ /dev/null
Binary files differ
diff --git a/rubbos/app/httpd-2.0.64/support/.libs/ab.o b/rubbos/app/httpd-2.0.64/support/.libs/ab.o
deleted file mode 100644
index 446096ca..00000000
--- a/rubbos/app/httpd-2.0.64/support/.libs/ab.o
+++ /dev/null
Binary files differ
diff --git a/rubbos/app/httpd-2.0.64/support/.libs/checkgid b/rubbos/app/httpd-2.0.64/support/.libs/checkgid
deleted file mode 100755
index 7c0f5e49..00000000
--- a/rubbos/app/httpd-2.0.64/support/.libs/checkgid
+++ /dev/null
Binary files differ
diff --git a/rubbos/app/httpd-2.0.64/support/.libs/checkgid.o b/rubbos/app/httpd-2.0.64/support/.libs/checkgid.o
deleted file mode 100644
index 9116a3a9..00000000
--- a/rubbos/app/httpd-2.0.64/support/.libs/checkgid.o
+++ /dev/null
Binary files differ
diff --git a/rubbos/app/httpd-2.0.64/support/.libs/htdbm b/rubbos/app/httpd-2.0.64/support/.libs/htdbm
deleted file mode 100755
index 815389da..00000000
--- a/rubbos/app/httpd-2.0.64/support/.libs/htdbm
+++ /dev/null
Binary files differ
diff --git a/rubbos/app/httpd-2.0.64/support/.libs/htdbm.o b/rubbos/app/httpd-2.0.64/support/.libs/htdbm.o
deleted file mode 100644
index 35bf9bd8..00000000
--- a/rubbos/app/httpd-2.0.64/support/.libs/htdbm.o
+++ /dev/null
Binary files differ
diff --git a/rubbos/app/httpd-2.0.64/support/.libs/htdigest b/rubbos/app/httpd-2.0.64/support/.libs/htdigest
deleted file mode 100755
index 25b27d18..00000000
--- a/rubbos/app/httpd-2.0.64/support/.libs/htdigest
+++ /dev/null
Binary files differ
diff --git a/rubbos/app/httpd-2.0.64/support/.libs/htdigest.o b/rubbos/app/httpd-2.0.64/support/.libs/htdigest.o
deleted file mode 100644
index e3ec6704..00000000
--- a/rubbos/app/httpd-2.0.64/support/.libs/htdigest.o
+++ /dev/null
Binary files differ
diff --git a/rubbos/app/httpd-2.0.64/support/.libs/htpasswd b/rubbos/app/httpd-2.0.64/support/.libs/htpasswd
deleted file mode 100755
index 48ca8792..00000000
--- a/rubbos/app/httpd-2.0.64/support/.libs/htpasswd
+++ /dev/null
Binary files differ
diff --git a/rubbos/app/httpd-2.0.64/support/.libs/htpasswd.o b/rubbos/app/httpd-2.0.64/support/.libs/htpasswd.o
deleted file mode 100644
index da73e002..00000000
--- a/rubbos/app/httpd-2.0.64/support/.libs/htpasswd.o
+++ /dev/null
Binary files differ
diff --git a/rubbos/app/httpd-2.0.64/support/.libs/httxt2dbm b/rubbos/app/httpd-2.0.64/support/.libs/httxt2dbm
deleted file mode 100755
index b8a48382..00000000
--- a/rubbos/app/httpd-2.0.64/support/.libs/httxt2dbm
+++ /dev/null
Binary files differ
diff --git a/rubbos/app/httpd-2.0.64/support/.libs/httxt2dbm.o b/rubbos/app/httpd-2.0.64/support/.libs/httxt2dbm.o
deleted file mode 100644
index 1e12f6c8..00000000
--- a/rubbos/app/httpd-2.0.64/support/.libs/httxt2dbm.o
+++ /dev/null
Binary files differ
diff --git a/rubbos/app/httpd-2.0.64/support/.libs/logresolve b/rubbos/app/httpd-2.0.64/support/.libs/logresolve
deleted file mode 100755
index e658dc23..00000000
--- a/rubbos/app/httpd-2.0.64/support/.libs/logresolve
+++ /dev/null
Binary files differ
diff --git a/rubbos/app/httpd-2.0.64/support/.libs/logresolve.o b/rubbos/app/httpd-2.0.64/support/.libs/logresolve.o
deleted file mode 100644
index a948c1d0..00000000
--- a/rubbos/app/httpd-2.0.64/support/.libs/logresolve.o
+++ /dev/null
Binary files differ
diff --git a/rubbos/app/httpd-2.0.64/support/.libs/rotatelogs b/rubbos/app/httpd-2.0.64/support/.libs/rotatelogs
deleted file mode 100755
index 9775a25e..00000000
--- a/rubbos/app/httpd-2.0.64/support/.libs/rotatelogs
+++ /dev/null
Binary files differ
diff --git a/rubbos/app/httpd-2.0.64/support/.libs/rotatelogs.o b/rubbos/app/httpd-2.0.64/support/.libs/rotatelogs.o
deleted file mode 100644
index 7ae2ef96..00000000
--- a/rubbos/app/httpd-2.0.64/support/.libs/rotatelogs.o
+++ /dev/null
Binary files differ
diff --git a/rubbos/app/httpd-2.0.64/support/Makefile b/rubbos/app/httpd-2.0.64/support/Makefile
deleted file mode 100644
index b9ccd2bc..00000000
--- a/rubbos/app/httpd-2.0.64/support/Makefile
+++ /dev/null
@@ -1,73 +0,0 @@
-top_srcdir = /bottlenecks/rubbos/app/httpd-2.0.64
-top_builddir = /bottlenecks/rubbos/app/httpd-2.0.64
-srcdir = /bottlenecks/rubbos/app/httpd-2.0.64/support
-builddir = /bottlenecks/rubbos/app/httpd-2.0.64/support
-VPATH = /bottlenecks/rubbos/app/httpd-2.0.64/support
-DISTCLEAN_TARGETS = apxs apachectl dbmmanage log_server_status \
- logresolve.pl phf_abuse_log.cgi split-logfile envvars-std
-
-CLEAN_TARGETS = suexec
-
-PROGRAMS = htpasswd htdigest rotatelogs logresolve ab checkgid htdbm httxt2dbm
-TARGETS = $(PROGRAMS)
-
-PROGRAM_LDADD = $(UTIL_LDFLAGS) $(PROGRAM_DEPENDENCIES) $(EXTRA_LIBS) $(AP_LIBS)
-PROGRAM_DEPENDENCIES =
-
-include $(top_builddir)/build/rules.mk
-
-install:
- @test -d $(DESTDIR)$(bindir) || $(MKINSTALLDIRS) $(DESTDIR)$(bindir)
- @test -d $(DESTDIR)$(sbindir) || $(MKINSTALLDIRS) $(DESTDIR)$(sbindir)
- @test -d $(DESTDIR)$(libexecdir) || $(MKINSTALLDIRS) $(DESTDIR)$(libexecdir)
- @cp -p $(top_builddir)/server/httpd.exp $(DESTDIR)$(libexecdir)
- @for i in apxs apachectl dbmmanage; do \
- if test -f "$(builddir)/$$i"; then \
- cp -p $$i $(DESTDIR)$(sbindir); \
- chmod 755 $(DESTDIR)$(sbindir)/$$i; \
- fi ; \
- done
- @if test -f "$(builddir)/envvars-std"; then \
- cp -p envvars-std $(DESTDIR)$(sbindir); \
- if test ! -f $(DESTDIR)$(sbindir)/envvars; then \
- cp -p envvars-std $(DESTDIR)$(sbindir)/envvars ; \
- fi ; \
- fi
-
-htpasswd_OBJECTS = htpasswd.lo
-htpasswd: $(htpasswd_OBJECTS)
- $(LINK) $(htpasswd_LTFLAGS) $(htpasswd_OBJECTS) $(PROGRAM_LDADD)
-
-htdigest_OBJECTS = htdigest.lo
-htdigest: $(htdigest_OBJECTS)
- $(LINK) $(htdigest_LTFLAGS) $(htdigest_OBJECTS) $(PROGRAM_LDADD)
-
-rotatelogs_OBJECTS = rotatelogs.lo
-rotatelogs: $(rotatelogs_OBJECTS)
- $(LINK) $(rotatelogs_LTFLAGS) $(rotatelogs_OBJECTS) $(PROGRAM_LDADD)
-
-logresolve_OBJECTS = logresolve.lo
-logresolve: $(logresolve_OBJECTS)
- $(LINK) $(logresolve_LTFLAGS) $(logresolve_OBJECTS) $(PROGRAM_LDADD)
-
-htdbm_OBJECTS = htdbm.lo
-htdbm: $(htdbm_OBJECTS)
- $(LINK) $(htdbm_LTFLAGS) $(htdbm_OBJECTS) $(PROGRAM_LDADD)
-
-ab_OBJECTS = ab.lo
-ab_LDADD = $(PROGRAM_LDADD) $(SSL_LIBS)
-ab: $(ab_OBJECTS)
- $(LINK) $(ab_LTFLAGS) $(ab_OBJECTS) $(ab_LDADD)
-
-checkgid_OBJECTS = checkgid.lo
-checkgid: $(checkgid_OBJECTS)
- $(LINK) $(checkgid_LTFLAGS) $(checkgid_OBJECTS) $(PROGRAM_LDADD)
-
-suexec_OBJECTS = suexec.lo
-suexec: $(suexec_OBJECTS)
- $(LINK) $(suexec_OBJECTS)
-
-httxt2dbm_OBJECTS = httxt2dbm.lo
-httxt2dbm: $(httxt2dbm_OBJECTS)
- $(LINK) $(httxt2dbm_LTFLAGS) $(httxt2dbm_OBJECTS) $(PROGRAM_LDADD)
-
diff --git a/rubbos/app/httpd-2.0.64/support/Makefile.in b/rubbos/app/httpd-2.0.64/support/Makefile.in
deleted file mode 100644
index 696885ba..00000000
--- a/rubbos/app/httpd-2.0.64/support/Makefile.in
+++ /dev/null
@@ -1,68 +0,0 @@
-DISTCLEAN_TARGETS = apxs apachectl dbmmanage log_server_status \
- logresolve.pl phf_abuse_log.cgi split-logfile envvars-std
-
-CLEAN_TARGETS = suexec
-
-PROGRAMS = htpasswd htdigest rotatelogs logresolve ab checkgid htdbm httxt2dbm
-TARGETS = $(PROGRAMS)
-
-PROGRAM_LDADD = $(UTIL_LDFLAGS) $(PROGRAM_DEPENDENCIES) $(EXTRA_LIBS) $(AP_LIBS)
-PROGRAM_DEPENDENCIES =
-
-include $(top_builddir)/build/rules.mk
-
-install:
- @test -d $(DESTDIR)$(bindir) || $(MKINSTALLDIRS) $(DESTDIR)$(bindir)
- @test -d $(DESTDIR)$(sbindir) || $(MKINSTALLDIRS) $(DESTDIR)$(sbindir)
- @test -d $(DESTDIR)$(libexecdir) || $(MKINSTALLDIRS) $(DESTDIR)$(libexecdir)
- @cp -p $(top_builddir)/server/httpd.exp $(DESTDIR)$(libexecdir)
- @for i in apxs apachectl dbmmanage; do \
- if test -f "$(builddir)/$$i"; then \
- cp -p $$i $(DESTDIR)$(sbindir); \
- chmod 755 $(DESTDIR)$(sbindir)/$$i; \
- fi ; \
- done
- @if test -f "$(builddir)/envvars-std"; then \
- cp -p envvars-std $(DESTDIR)$(sbindir); \
- if test ! -f $(DESTDIR)$(sbindir)/envvars; then \
- cp -p envvars-std $(DESTDIR)$(sbindir)/envvars ; \
- fi ; \
- fi
-
-htpasswd_OBJECTS = htpasswd.lo
-htpasswd: $(htpasswd_OBJECTS)
- $(LINK) $(htpasswd_LTFLAGS) $(htpasswd_OBJECTS) $(PROGRAM_LDADD)
-
-htdigest_OBJECTS = htdigest.lo
-htdigest: $(htdigest_OBJECTS)
- $(LINK) $(htdigest_LTFLAGS) $(htdigest_OBJECTS) $(PROGRAM_LDADD)
-
-rotatelogs_OBJECTS = rotatelogs.lo
-rotatelogs: $(rotatelogs_OBJECTS)
- $(LINK) $(rotatelogs_LTFLAGS) $(rotatelogs_OBJECTS) $(PROGRAM_LDADD)
-
-logresolve_OBJECTS = logresolve.lo
-logresolve: $(logresolve_OBJECTS)
- $(LINK) $(logresolve_LTFLAGS) $(logresolve_OBJECTS) $(PROGRAM_LDADD)
-
-htdbm_OBJECTS = htdbm.lo
-htdbm: $(htdbm_OBJECTS)
- $(LINK) $(htdbm_LTFLAGS) $(htdbm_OBJECTS) $(PROGRAM_LDADD)
-
-ab_OBJECTS = ab.lo
-ab_LDADD = $(PROGRAM_LDADD) $(SSL_LIBS)
-ab: $(ab_OBJECTS)
- $(LINK) $(ab_LTFLAGS) $(ab_OBJECTS) $(ab_LDADD)
-
-checkgid_OBJECTS = checkgid.lo
-checkgid: $(checkgid_OBJECTS)
- $(LINK) $(checkgid_LTFLAGS) $(checkgid_OBJECTS) $(PROGRAM_LDADD)
-
-suexec_OBJECTS = suexec.lo
-suexec: $(suexec_OBJECTS)
- $(LINK) $(suexec_OBJECTS)
-
-httxt2dbm_OBJECTS = httxt2dbm.lo
-httxt2dbm: $(httxt2dbm_OBJECTS)
- $(LINK) $(httxt2dbm_LTFLAGS) $(httxt2dbm_OBJECTS) $(PROGRAM_LDADD)
-
diff --git a/rubbos/app/httpd-2.0.64/support/NWGNUab b/rubbos/app/httpd-2.0.64/support/NWGNUab
deleted file mode 100644
index 180a96c3..00000000
--- a/rubbos/app/httpd-2.0.64/support/NWGNUab
+++ /dev/null
@@ -1,254 +0,0 @@
-#
-# Make sure all needed macro's are defined
-#
-
-#
-# Get the 'head' of the build environment if necessary. This includes default
-# targets and paths to tools
-#
-
-ifndef EnvironmentDefined
-include $(AP_WORK)\build\NWGNUhead.inc
-endif
-
-#
-# These directories will be at the beginning of the include list, followed by
-# INCDIRS
-#
-XINCDIRS += \
- $(APR)/include \
- $(APRUTIL)/include \
- $(APR)/misc/netware \
- $(AP_WORK)/include \
- $(NWOS) \
- $(EOLIST)
-
-#
-# These flags will come after CFLAGS
-#
-XCFLAGS += \
- $(EOLIST)
-
-#
-# These defines will come after DEFINES
-#
-XDEFINES += \
- $(EOLIST)
-
-#
-# These flags will be added to the link.opt file
-#
-XLFLAGS += \
- $(EOLIST)
-
-#
-# These values will be appended to the correct variables based on the value of
-# RELEASE
-#
-ifeq "$(RELEASE)" "debug"
-XINCDIRS += \
- $(EOLIST)
-
-XCFLAGS += \
- $(EOLIST)
-
-XDEFINES += \
- $(EOLIST)
-
-XLFLAGS += \
- $(EOLIST)
-endif
-
-ifeq "$(RELEASE)" "noopt"
-XINCDIRS += \
- $(EOLIST)
-
-XCFLAGS += \
- $(EOLIST)
-
-XDEFINES += \
- $(EOLIST)
-
-XLFLAGS += \
- $(EOLIST)
-endif
-
-ifeq "$(RELEASE)" "release"
-XINCDIRS += \
- $(EOLIST)
-
-XCFLAGS += \
- $(EOLIST)
-
-XDEFINES += \
- $(EOLIST)
-
-XLFLAGS += \
- $(EOLIST)
-endif
-
-#
-# These are used by the link target if an NLM is being generated
-# This is used by the link 'name' directive to name the nlm. If left blank
-# TARGET_nlm (see below) will be used.
-#
-NLM_NAME = ab
-
-#
-# This is used by the link '-desc ' directive.
-# If left blank, NLM_NAME will be used.
-#
-NLM_DESCRIPTION = Apache $(VERSION_STR) Benchmark Utility for NetWare
-
-#
-# This is used by the '-threadname' directive. If left blank,
-# NLM_NAME Thread will be used.
-#
-NLM_THREAD_NAME = ab
-
-#
-# This is used by the '-screenname' directive. If left blank,
-# 'Apache for NetWare' Thread will be used.
-#
-#NLM_SCREEN_NAME = Apache Bench
-NLM_SCREEN_NAME = DEFAULT
-
-#
-# If this is specified, it will override VERSION value in
-# $(AP_WORK)\build\NWGNUenvironment.inc
-#
-NLM_VERSION =
-
-#
-# If this is specified, it will override the default of 64K
-#
-NLM_STACK_SIZE = 8192
-
-
-#
-# If this is specified it will be used by the link '-entry' directive
-#
-NLM_ENTRY_SYM = _LibCPrelude
-
-#
-# If this is specified it will be used by the link '-exit' directive
-#
-NLM_EXIT_SYM = _LibCPostlude
-
-#
-# If this is specified it will be used by the link '-check' directive
-#
-NLM_CHECK_SYM =
-
-#
-# If these are specified it will be used by the link '-flags' directive
-#
-NLM_FLAGS = AUTOUNLOAD, PSEUDOPREEMPTION
-
-#
-# If this is specified it will be linked in with the XDCData option in the def
-# file instead of the default of $(NWOS)/apache.xdc. XDCData can be disabled
-# by setting APACHE_UNIPROC in the environment
-#
-XDCDATA =
-
-#
-# If there is an NLM target, put it here
-#
-TARGET_nlm = \
- $(OBJDIR)/ab.nlm \
- $(EOLIST)
-
-#
-# If there is an LIB target, put it here
-#
-TARGET_lib = \
- $(EOLIST)
-
-#
-# These are the OBJ files needed to create the NLM target above.
-# Paths must all use the '/' character
-#
-FILES_nlm_objs = \
- $(OBJDIR)/ab.o \
- $(EOLIST)
-
-#
-# These are the LIB files needed to create the NLM target above.
-# These will be added as a library command in the link.opt file.
-#
-FILES_nlm_libs = \
- libcpre.o \
- $(EOLIST)
-
-#
-# These are the modules that the above NLM target depends on to load.
-# These will be added as a module command in the link.opt file.
-#
-FILES_nlm_modules = \
- aprlib \
- libc \
- $(EOLIST)
-
-#
-# If the nlm has a msg file, put it's path here
-#
-FILE_nlm_msg =
-
-#
-# If the nlm has a hlp file put it's path here
-#
-FILE_nlm_hlp =
-
-#
-# If this is specified, it will override $(NWOS)\copyright.txt.
-#
-FILE_nlm_copyright =
-
-#
-# Any additional imports go here
-#
-FILES_nlm_Ximports = \
- @$(APR)/aprlib.imp \
- @libc.imp \
- $(EOLIST)
-
-#
-# Any symbols exported to here
-#
-FILES_nlm_exports = \
- $(EOLIST)
-
-#
-# These are the OBJ files needed to create the LIB target above.
-# Paths must all use the '/' character
-#
-FILES_lib_objs = \
- $(EOLIST)
-
-#
-# implement targets and dependancies (leave this section alone)
-#
-
-libs :: $(OBJDIR) $(TARGET_lib)
-
-nlms :: libs $(TARGET_nlm)
-
-#
-# Updated this target to create necessary directories and copy files to the
-# correct place. (See $(AP_WORK)\build\NWGNUhead.inc for examples)
-#
-install :: nlms FORCE
-
-#
-# Any specialized rules here
-#
-
-#
-# Include the 'tail' makefile that has targets that depend on variables defined
-# in this makefile
-#
-
-include $(AP_WORK)\build\NWGNUtail.inc
-
-
diff --git a/rubbos/app/httpd-2.0.64/support/NWGNUhtdbm b/rubbos/app/httpd-2.0.64/support/NWGNUhtdbm
deleted file mode 100644
index 38e60636..00000000
--- a/rubbos/app/httpd-2.0.64/support/NWGNUhtdbm
+++ /dev/null
@@ -1,252 +0,0 @@
-#
-# Make sure all needed macro's are defined
-#
-
-#
-# Get the 'head' of the build environment if necessary. This includes default
-# targets and paths to tools
-#
-
-ifndef EnvironmentDefined
-include $(AP_WORK)\build\NWGNUhead.inc
-endif
-
-#
-# These directories will be at the beginning of the include list, followed by
-# INCDIRS
-#
-XINCDIRS += \
- $(APR)/include \
- $(APRUTIL)/include \
- $(APR)/misc/netware \
- $(NWOS) \
- $(EOLIST)
-
-#
-# These flags will come after CFLAGS
-#
-XCFLAGS += \
- $(EOLIST)
-
-#
-# These defines will come after DEFINES
-#
-XDEFINES += \
- $(EOLIST)
-
-#
-# These flags will be added to the link.opt file
-#
-XLFLAGS += \
- $(EOLIST)
-
-#
-# These values will be appended to the correct variables based on the value of
-# RELEASE
-#
-ifeq "$(RELEASE)" "debug"
-XINCDIRS += \
- $(EOLIST)
-
-XCFLAGS += \
- $(EOLIST)
-
-XDEFINES += \
- $(EOLIST)
-
-XLFLAGS += \
- $(EOLIST)
-endif
-
-ifeq "$(RELEASE)" "noopt"
-XINCDIRS += \
- $(EOLIST)
-
-XCFLAGS += \
- $(EOLIST)
-
-XDEFINES += \
- $(EOLIST)
-
-XLFLAGS += \
- $(EOLIST)
-endif
-
-ifeq "$(RELEASE)" "release"
-XINCDIRS += \
- $(EOLIST)
-
-XCFLAGS += \
- $(EOLIST)
-
-XDEFINES += \
- $(EOLIST)
-
-XLFLAGS += \
- $(EOLIST)
-endif
-
-#
-# These are used by the link target if an NLM is being generated
-# This is used by the link 'name' directive to name the nlm. If left blank
-# TARGET_nlm (see below) will be used.
-#
-NLM_NAME = htdbm
-
-#
-# This is used by the link '-desc ' directive.
-# If left blank, NLM_NAME will be used.
-#
-NLM_DESCRIPTION = Apache $(VERSION_STR) HT Database Management Utility for NetWare
-
-#
-# This is used by the '-threadname' directive. If left blank,
-# NLM_NAME Thread will be used.
-#
-NLM_THREAD_NAME = htdbm
-
-#
-# This is used by the '-screenname' directive. If left blank,
-# 'Apache for NetWare' Thread will be used.
-#
-NLM_SCREEN_NAME = htdbm Password Management
-
-#
-# If this is specified, it will override VERSION value in
-# $(AP_WORK)\build\NWGNUenvironment.inc
-#
-NLM_VERSION =
-
-#
-# If this is specified, it will override the default of 64K
-#
-NLM_STACK_SIZE = 8192
-
-
-#
-# If this is specified it will be used by the link '-entry' directive
-#
-NLM_ENTRY_SYM = _LibCPrelude
-
-#
-# If this is specified it will be used by the link '-exit' directive
-#
-NLM_EXIT_SYM = _LibCPostlude
-
-#
-# If this is specified it will be used by the link '-check' directive
-#
-NLM_CHECK_SYM =
-
-#
-# If these are specified it will be used by the link '-flags' directive
-#
-NLM_FLAGS = AUTOUNLOAD, PSEUDOPREEMPTION
-
-#
-# If this is specified it will be linked in with the XDCData option in the def
-# file instead of the default of $(NWOS)/apache.xdc. XDCData can be disabled
-# by setting APACHE_UNIPROC in the environment
-#
-XDCDATA =
-
-#
-# If there is an NLM target, put it here
-#
-TARGET_nlm = \
- $(OBJDIR)/htdbm.nlm \
- $(EOLIST)
-
-#
-# If there is an LIB target, put it here
-#
-TARGET_lib = \
- $(EOLIST)
-
-#
-# These are the OBJ files needed to create the NLM target above.
-# Paths must all use the '/' character
-#
-FILES_nlm_objs = \
- $(OBJDIR)/htdbm.o \
- $(EOLIST)
-
-#
-# These are the LIB files needed to create the NLM target above.
-# These will be added as a library command in the link.opt file.
-#
-FILES_nlm_libs = \
- libcpre.o \
- $(EOLIST)
-
-#
-# These are the modules that the above NLM target depends on to load.
-# These will be added as a module command in the link.opt file.
-#
-FILES_nlm_modules = \
- aprlib \
- libc \
- $(EOLIST)
-
-#
-# If the nlm has a msg file, put it's path here
-#
-FILE_nlm_msg =
-
-#
-# If the nlm has a hlp file put it's path here
-#
-FILE_nlm_hlp =
-
-#
-# If this is specified, it will override $(NWOS)\copyright.txt.
-#
-FILE_nlm_copyright =
-
-#
-# Any additional imports go here
-#
-FILES_nlm_Ximports = \
- @$(APR)/aprlib.imp \
- @libc.imp \
- $(EOLIST)
-
-#
-# Any symbols exported to here
-#
-FILES_nlm_exports = \
- $(EOLIST)
-
-#
-# These are the OBJ files needed to create the LIB target above.
-# Paths must all use the '/' character
-#
-FILES_lib_objs = \
- $(EOLIST)
-
-#
-# implement targets and dependancies (leave this section alone)
-#
-
-libs :: $(OBJDIR) $(TARGET_lib)
-
-nlms :: libs $(TARGET_nlm)
-
-#
-# Updated this target to create necessary directories and copy files to the
-# correct place. (See $(AP_WORK)\build\NWGNUhead.inc for examples)
-#
-install :: nlms FORCE
-
-#
-# Any specialized rules here
-#
-
-#
-# Include the 'tail' makefile that has targets that depend on variables defined
-# in this makefile
-#
-
-include $(AP_WORK)\build\NWGNUtail.inc
-
-
diff --git a/rubbos/app/httpd-2.0.64/support/NWGNUhtdigest b/rubbos/app/httpd-2.0.64/support/NWGNUhtdigest
deleted file mode 100644
index 48a55550..00000000
--- a/rubbos/app/httpd-2.0.64/support/NWGNUhtdigest
+++ /dev/null
@@ -1,252 +0,0 @@
-#
-# Make sure all needed macro's are defined
-#
-
-#
-# Get the 'head' of the build environment if necessary. This includes default
-# targets and paths to tools
-#
-
-ifndef EnvironmentDefined
-include $(AP_WORK)\build\NWGNUhead.inc
-endif
-
-#
-# These directories will be at the beginning of the include list, followed by
-# INCDIRS
-#
-XINCDIRS += \
- $(APR)/include \
- $(APRUTIL)/include \
- $(APR)/misc/netware \
- $(NWOS) \
- $(EOLIST)
-
-#
-# These flags will come after CFLAGS
-#
-XCFLAGS += \
- $(EOLIST)
-
-#
-# These defines will come after DEFINES
-#
-XDEFINES += \
- $(EOLIST)
-
-#
-# These flags will be added to the link.opt file
-#
-XLFLAGS += \
- $(EOLIST)
-
-#
-# These values will be appended to the correct variables based on the value of
-# RELEASE
-#
-ifeq "$(RELEASE)" "debug"
-XINCDIRS += \
- $(EOLIST)
-
-XCFLAGS += \
- $(EOLIST)
-
-XDEFINES += \
- $(EOLIST)
-
-XLFLAGS += \
- $(EOLIST)
-endif
-
-ifeq "$(RELEASE)" "noopt"
-XINCDIRS += \
- $(EOLIST)
-
-XCFLAGS += \
- $(EOLIST)
-
-XDEFINES += \
- $(EOLIST)
-
-XLFLAGS += \
- $(EOLIST)
-endif
-
-ifeq "$(RELEASE)" "release"
-XINCDIRS += \
- $(EOLIST)
-
-XCFLAGS += \
- $(EOLIST)
-
-XDEFINES += \
- $(EOLIST)
-
-XLFLAGS += \
- $(EOLIST)
-endif
-
-#
-# These are used by the link target if an NLM is being generated
-# This is used by the link 'name' directive to name the nlm. If left blank
-# TARGET_nlm (see below) will be used.
-#
-NLM_NAME = htdigest
-
-#
-# This is used by the link '-desc ' directive.
-# If left blank, NLM_NAME will be used.
-#
-NLM_DESCRIPTION = Apache $(VERSION_STR) HT Digest Utility for NetWare
-
-#
-# This is used by the '-threadname' directive. If left blank,
-# NLM_NAME Thread will be used.
-#
-NLM_THREAD_NAME = htdigest
-
-#
-# This is used by the '-screenname' directive. If left blank,
-# 'Apache for NetWare' Thread will be used.
-#
-NLM_SCREEN_NAME = Digest Password Management
-
-#
-# If this is specified, it will override VERSION value in
-# $(AP_WORK)\build\NWGNUenvironment.inc
-#
-NLM_VERSION =
-
-#
-# If this is specified, it will override the default of 64K
-#
-NLM_STACK_SIZE = 8192
-
-
-#
-# If this is specified it will be used by the link '-entry' directive
-#
-NLM_ENTRY_SYM = _LibCPrelude
-
-#
-# If this is specified it will be used by the link '-exit' directive
-#
-NLM_EXIT_SYM = _LibCPostlude
-
-#
-# If this is specified it will be used by the link '-check' directive
-#
-NLM_CHECK_SYM =
-
-#
-# If these are specified it will be used by the link '-flags' directive
-#
-NLM_FLAGS = AUTOUNLOAD, PSEUDOPREEMPTION
-
-#
-# If this is specified it will be linked in with the XDCData option in the def
-# file instead of the default of $(NWOS)/apache.xdc. XDCData can be disabled
-# by setting APACHE_UNIPROC in the environment
-#
-XDCDATA =
-
-#
-# If there is an NLM target, put it here
-#
-TARGET_nlm = \
- $(OBJDIR)/htdigest.nlm \
- $(EOLIST)
-
-#
-# If there is an LIB target, put it here
-#
-TARGET_lib = \
- $(EOLIST)
-
-#
-# These are the OBJ files needed to create the NLM target above.
-# Paths must all use the '/' character
-#
-FILES_nlm_objs = \
- $(OBJDIR)/htdigest.o \
- $(EOLIST)
-
-#
-# These are the LIB files needed to create the NLM target above.
-# These will be added as a library command in the link.opt file.
-#
-FILES_nlm_libs = \
- libcpre.o \
- $(EOLIST)
-
-#
-# These are the modules that the above NLM target depends on to load.
-# These will be added as a module command in the link.opt file.
-#
-FILES_nlm_modules = \
- aprlib \
- libc \
- $(EOLIST)
-
-#
-# If the nlm has a msg file, put it's path here
-#
-FILE_nlm_msg =
-
-#
-# If the nlm has a hlp file put it's path here
-#
-FILE_nlm_hlp =
-
-#
-# If this is specified, it will override $(NWOS)\copyright.txt.
-#
-FILE_nlm_copyright =
-
-#
-# Any additional imports go here
-#
-FILES_nlm_Ximports = \
- @$(APR)/aprlib.imp \
- @libc.imp \
- $(EOLIST)
-
-#
-# Any symbols exported to here
-#
-FILES_nlm_exports = \
- $(EOLIST)
-
-#
-# These are the OBJ files needed to create the LIB target above.
-# Paths must all use the '/' character
-#
-FILES_lib_objs = \
- $(EOLIST)
-
-#
-# implement targets and dependancies (leave this section alone)
-#
-
-libs :: $(OBJDIR) $(TARGET_lib)
-
-nlms :: libs $(TARGET_nlm)
-
-#
-# Updated this target to create necessary directories and copy files to the
-# correct place. (See $(AP_WORK)\build\NWGNUhead.inc for examples)
-#
-install :: nlms FORCE
-
-#
-# Any specialized rules here
-#
-
-#
-# Include the 'tail' makefile that has targets that depend on variables defined
-# in this makefile
-#
-
-include $(AP_WORK)\build\NWGNUtail.inc
-
-
diff --git a/rubbos/app/httpd-2.0.64/support/NWGNUhtpasswd b/rubbos/app/httpd-2.0.64/support/NWGNUhtpasswd
deleted file mode 100644
index b866ec2b..00000000
--- a/rubbos/app/httpd-2.0.64/support/NWGNUhtpasswd
+++ /dev/null
@@ -1,252 +0,0 @@
-#
-# Make sure all needed macro's are defined
-#
-
-#
-# Get the 'head' of the build environment if necessary. This includes default
-# targets and paths to tools
-#
-
-ifndef EnvironmentDefined
-include $(AP_WORK)\build\NWGNUhead.inc
-endif
-
-#
-# These directories will be at the beginning of the include list, followed by
-# INCDIRS
-#
-XINCDIRS += \
- $(APR)/include \
- $(APRUTIL)/include \
- $(APR)/misc/netware \
- $(NWOS) \
- $(EOLIST)
-
-#
-# These flags will come after CFLAGS
-#
-XCFLAGS += \
- $(EOLIST)
-
-#
-# These defines will come after DEFINES
-#
-XDEFINES += \
- $(EOLIST)
-
-#
-# These flags will be added to the link.opt file
-#
-XLFLAGS += \
- $(EOLIST)
-
-#
-# These values will be appended to the correct variables based on the value of
-# RELEASE
-#
-ifeq "$(RELEASE)" "debug"
-XINCDIRS += \
- $(EOLIST)
-
-XCFLAGS += \
- $(EOLIST)
-
-XDEFINES += \
- $(EOLIST)
-
-XLFLAGS += \
- $(EOLIST)
-endif
-
-ifeq "$(RELEASE)" "noopt"
-XINCDIRS += \
- $(EOLIST)
-
-XCFLAGS += \
- $(EOLIST)
-
-XDEFINES += \
- $(EOLIST)
-
-XLFLAGS += \
- $(EOLIST)
-endif
-
-ifeq "$(RELEASE)" "release"
-XINCDIRS += \
- $(EOLIST)
-
-XCFLAGS += \
- $(EOLIST)
-
-XDEFINES += \
- $(EOLIST)
-
-XLFLAGS += \
- $(EOLIST)
-endif
-
-#
-# These are used by the link target if an NLM is being generated
-# This is used by the link 'name' directive to name the nlm. If left blank
-# TARGET_nlm (see below) will be used.
-#
-NLM_NAME = htpasswd
-
-#
-# This is used by the link '-desc ' directive.
-# If left blank, NLM_NAME will be used.
-#
-NLM_DESCRIPTION = Apache $(VERSION_STR) HT Password Utility for NetWare
-
-#
-# This is used by the '-threadname' directive. If left blank,
-# NLM_NAME Thread will be used.
-#
-NLM_THREAD_NAME = htpasswd
-
-#
-# This is used by the '-screenname' directive. If left blank,
-# 'Apache for NetWare' Thread will be used.
-#
-NLM_SCREEN_NAME = htpasswd Password Management
-
-#
-# If this is specified, it will override VERSION value in
-# $(AP_WORK)\build\NWGNUenvironment.inc
-#
-NLM_VERSION =
-
-#
-# If this is specified, it will override the default of 64K
-#
-NLM_STACK_SIZE = 8192
-
-
-#
-# If this is specified it will be used by the link '-entry' directive
-#
-NLM_ENTRY_SYM = _LibCPrelude
-
-#
-# If this is specified it will be used by the link '-exit' directive
-#
-NLM_EXIT_SYM = _LibCPostlude
-
-#
-# If this is specified it will be used by the link '-check' directive
-#
-NLM_CHECK_SYM =
-
-#
-# If these are specified it will be used by the link '-flags' directive
-#
-NLM_FLAGS = AUTOUNLOAD, PSEUDOPREEMPTION
-
-#
-# If this is specified it will be linked in with the XDCData option in the def
-# file instead of the default of $(NWOS)/apache.xdc. XDCData can be disabled
-# by setting APACHE_UNIPROC in the environment
-#
-XDCDATA =
-
-#
-# If there is an NLM target, put it here
-#
-TARGET_nlm = \
- $(OBJDIR)/htpasswd.nlm \
- $(EOLIST)
-
-#
-# If there is an LIB target, put it here
-#
-TARGET_lib = \
- $(EOLIST)
-
-#
-# These are the OBJ files needed to create the NLM target above.
-# Paths must all use the '/' character
-#
-FILES_nlm_objs = \
- $(OBJDIR)/htpasswd.o \
- $(EOLIST)
-
-#
-# These are the LIB files needed to create the NLM target above.
-# These will be added as a library command in the link.opt file.
-#
-FILES_nlm_libs = \
- libcpre.o \
- $(EOLIST)
-
-#
-# These are the modules that the above NLM target depends on to load.
-# These will be added as a module command in the link.opt file.
-#
-FILES_nlm_modules = \
- aprlib \
- libc \
- $(EOLIST)
-
-#
-# If the nlm has a msg file, put it's path here
-#
-FILE_nlm_msg =
-
-#
-# If the nlm has a hlp file put it's path here
-#
-FILE_nlm_hlp =
-
-#
-# If this is specified, it will override $(NWOS)\copyright.txt.
-#
-FILE_nlm_copyright =
-
-#
-# Any additional imports go here
-#
-FILES_nlm_Ximports = \
- @$(APR)/aprlib.imp \
- @libc.imp \
- $(EOLIST)
-
-#
-# Any symbols exported to here
-#
-FILES_nlm_exports = \
- $(EOLIST)
-
-#
-# These are the OBJ files needed to create the LIB target above.
-# Paths must all use the '/' character
-#
-FILES_lib_objs = \
- $(EOLIST)
-
-#
-# implement targets and dependancies (leave this section alone)
-#
-
-libs :: $(OBJDIR) $(TARGET_lib)
-
-nlms :: libs $(TARGET_nlm)
-
-#
-# Updated this target to create necessary directories and copy files to the
-# correct place. (See $(AP_WORK)\build\NWGNUhead.inc for examples)
-#
-install :: nlms FORCE
-
-#
-# Any specialized rules here
-#
-
-#
-# Include the 'tail' makefile that has targets that depend on variables defined
-# in this makefile
-#
-
-include $(AP_WORK)\build\NWGNUtail.inc
-
-
diff --git a/rubbos/app/httpd-2.0.64/support/NWGNUlogres b/rubbos/app/httpd-2.0.64/support/NWGNUlogres
deleted file mode 100644
index f82eee32..00000000
--- a/rubbos/app/httpd-2.0.64/support/NWGNUlogres
+++ /dev/null
@@ -1,254 +0,0 @@
-#
-# Make sure all needed macro's are defined
-#
-
-#
-# Get the 'head' of the build environment if necessary. This includes default
-# targets and paths to tools
-#
-
-ifndef EnvironmentDefined
-include $(AP_WORK)\build\NWGNUhead.inc
-endif
-
-#
-# These directories will be at the beginning of the include list, followed by
-# INCDIRS
-#
-XINCDIRS += \
- $(APR)/include \
- $(APRUTIL)/include \
- $(APR)/misc/netware \
- $(AP_WORK)/include \
- $(NWOS) \
- $(EOLIST)
-
-#
-# These flags will come after CFLAGS
-#
-XCFLAGS += \
- $(EOLIST)
-
-#
-# These defines will come after DEFINES
-#
-XDEFINES += \
- $(EOLIST)
-
-#
-# These flags will be added to the link.opt file
-#
-XLFLAGS += \
- $(EOLIST)
-
-#
-# These values will be appended to the correct variables based on the value of
-# RELEASE
-#
-ifeq "$(RELEASE)" "debug"
-XINCDIRS += \
- $(EOLIST)
-
-XCFLAGS += \
- $(EOLIST)
-
-XDEFINES += \
- $(EOLIST)
-
-XLFLAGS += \
- $(EOLIST)
-endif
-
-ifeq "$(RELEASE)" "noopt"
-XINCDIRS += \
- $(EOLIST)
-
-XCFLAGS += \
- $(EOLIST)
-
-XDEFINES += \
- $(EOLIST)
-
-XLFLAGS += \
- $(EOLIST)
-endif
-
-ifeq "$(RELEASE)" "release"
-XINCDIRS += \
- $(EOLIST)
-
-XCFLAGS += \
- $(EOLIST)
-
-XDEFINES += \
- $(EOLIST)
-
-XLFLAGS += \
- $(EOLIST)
-endif
-
-#
-# These are used by the link target if an NLM is being generated
-# This is used by the link 'name' directive to name the nlm. If left blank
-# TARGET_nlm (see below) will be used.
-#
-NLM_NAME = logres
-
-#
-# This is used by the link '-desc ' directive.
-# If left blank, NLM_NAME will be used.
-#
-NLM_DESCRIPTION = Apache $(VERSION_STR) Logresolve Utility for NetWare
-
-#
-# This is used by the '-threadname' directive. If left blank,
-# NLM_NAME Thread will be used.
-#
-NLM_THREAD_NAME = logres
-
-#
-# This is used by the '-screenname' directive. If left blank,
-# 'Apache for NetWare' Thread will be used.
-#
-NLM_SCREEN_NAME = Log Resolve
-
-#
-# If this is specified, it will override VERSION value in
-# $(AP_WORK)\build\NWGNUenvironment.inc
-#
-NLM_VERSION =
-
-#
-# If this is specified, it will override the default of 64K
-#
-NLM_STACK_SIZE = 65536
-
-
-#
-# If this is specified it will be used by the link '-entry' directive
-#
-NLM_ENTRY_SYM = _LibCPrelude
-
-#
-# If this is specified it will be used by the link '-exit' directive
-#
-NLM_EXIT_SYM = _LibCPostlude
-
-#
-# If this is specified it will be used by the link '-check' directive
-#
-NLM_CHECK_SYM =
-
-#
-# If these are specified it will be used by the link '-flags' directive
-#
-NLM_FLAGS = AUTOUNLOAD, PSEUDOPREEMPTION
-
-#
-# If this is specified it will be linked in with the XDCData option in the def
-# file instead of the default of $(NWOS)/apache.xdc. XDCData can be disabled
-# by setting APACHE_UNIPROC in the environment
-#
-XDCDATA =
-
-#
-# If there is an NLM target, put it here
-#
-TARGET_nlm = \
- $(OBJDIR)/logres.nlm \
- $(EOLIST)
-
-#
-# If there is an LIB target, put it here
-#
-TARGET_lib = \
- $(EOLIST)
-
-#
-# These are the OBJ files needed to create the NLM target above.
-# Paths must all use the '/' character
-#
-FILES_nlm_objs = \
- $(OBJDIR)/logresolve.o \
- $(EOLIST)
-
-#
-# These are the LIB files needed to create the NLM target above.
-# These will be added as a library command in the link.opt file.
-#
-FILES_nlm_libs = \
- libcpre.o \
- $(EOLIST)
-
-#
-# These are the modules that the above NLM target depends on to load.
-# These will be added as a module command in the link.opt file.
-#
-FILES_nlm_modules = \
- aprlib \
- libc \
- $(EOLIST)
-
-#
-# If the nlm has a msg file, put it's path here
-#
-FILE_nlm_msg =
-
-#
-# If the nlm has a hlp file put it's path here
-#
-FILE_nlm_hlp =
-
-#
-# If this is specified, it will override $(NWOS)\copyright.txt.
-#
-FILE_nlm_copyright =
-
-#
-# Any additional imports go here
-#
-FILES_nlm_Ximports = \
- @$(APR)/aprlib.imp \
- @libc.imp \
- @ws2nlm.imp \
- $(EOLIST)
-
-#
-# Any symbols exported to here
-#
-FILES_nlm_exports = \
- $(EOLIST)
-
-#
-# These are the OBJ files needed to create the LIB target above.
-# Paths must all use the '/' character
-#
-FILES_lib_objs = \
- $(EOLIST)
-
-#
-# implement targets and dependancies (leave this section alone)
-#
-
-libs :: $(OBJDIR) $(TARGET_lib)
-
-nlms :: libs $(TARGET_nlm)
-
-#
-# Updated this target to create necessary directories and copy files to the
-# correct place. (See $(AP_WORK)\build\NWGNUhead.inc for examples)
-#
-install :: nlms FORCE
-
-#
-# Any specialized rules here
-#
-
-#
-# Include the 'tail' makefile that has targets that depend on variables defined
-# in this makefile
-#
-
-include $(AP_WORK)\build\NWGNUtail.inc
-
-
diff --git a/rubbos/app/httpd-2.0.64/support/NWGNUmakefile b/rubbos/app/httpd-2.0.64/support/NWGNUmakefile
deleted file mode 100644
index 327cd4d8..00000000
--- a/rubbos/app/httpd-2.0.64/support/NWGNUmakefile
+++ /dev/null
@@ -1,249 +0,0 @@
-#
-# Declare the sub-directories to be built here
-#
-
-SUBDIRS = \
- $(EOLIST)
-
-#
-# Get the 'head' of the build environment. This includes default targets and
-# paths to tools
-#
-
-include $(AP_WORK)\build\NWGNUhead.inc
-
-#
-# build this level's files
-
-#
-# Make sure all needed macro's are defined
-#
-
-# These directories will be at the beginning of the include list, followed by
-# INCDIRS
-#
-XINCDIRS += \
- $(EOLIST)
-
-#
-# These flags will come after CFLAGS
-#
-XCFLAGS += \
- $(EOLIST)
-
-#
-# These defines will come after DEFINES
-#
-XDEFINES += \
- $(EOLIST)
-
-#
-# These flags will be added to the link.opt file
-#
-XLFLAGS += \
- $(EOLIST)
-
-#
-# These values will be appended to the correct variables based on the value of
-# RELEASE
-#
-ifeq "$(RELEASE)" "debug"
-XINCDIRS += \
- $(EOLIST)
-
-XCFLAGS += \
- $(EOLIST)
-
-XDEFINES += \
- $(EOLIST)
-
-XLFLAGS += \
- $(EOLIST)
-endif
-
-ifeq "$(RELEASE)" "noopt"
-XINCDIRS += \
- $(EOLIST)
-
-XCFLAGS += \
- $(EOLIST)
-
-XDEFINES += \
- $(EOLIST)
-
-XLFLAGS += \
- $(EOLIST)
-endif
-
-ifeq "$(RELEASE)" "release"
-XINCDIRS += \
- $(EOLIST)
-
-XCFLAGS += \
- $(EOLIST)
-
-XDEFINES += \
- $(EOLIST)
-
-XLFLAGS += \
- $(EOLIST)
-endif
-
-#
-# These are used by the link target if an NLM is being generated
-# This is used by the link 'name' directive to name the nlm. If left blank
-# TARGET_nlm (see below) will be used.
-#
-NLM_NAME =
-
-#
-# This is used by the link '-desc ' directive.
-# If left blank, NLM_NAME will be used.
-#
-NLM_DESCRIPTION =
-
-#
-# This is used by the '-threadname' directive. If left blank,
-# NLM_NAME Thread will be used.
-#
-NLM_THREAD_NAME =
-
-#
-# If this is specified, it will override VERSION value in
-# $(AP_WORK)\build\NWGNUenvironment.inc
-#
-NLM_VERSION =
-
-#
-# If this is specified, it will override the default of 64K
-#
-NLM_STACK_SIZE =
-
-
-#
-# If this is specified it will be used by the link '-entry' directive
-#
-NLM_ENTRY_SYM =
-
-#
-# If this is specified it will be used by the link '-exit' directive
-#
-NLM_EXIT_SYM =
-
-#
-# If this is specified it will be used by the link '-check' directive
-#
-NLM_CHECK_SYM =
-
-#
-# If these are specified it will be used by the link '-flags' directive
-#
-NLM_FLAGS =
-
-#
-# If this is specified it will be linked in with the XDCData option in the def
-# file instead of the default of $(NWOS)/apache.xdc. XDCData can be disabled
-# by setting APACHE_UNIPROC in the environment
-#
-XDCDATA =
-
-#
-# If there is an NLM target, put it here
-#
-TARGET_nlm = \
- $(OBJDIR)/ab.nlm \
- $(OBJDIR)/htpasswd.nlm \
- $(OBJDIR)/htdigest.nlm \
- $(OBJDIR)/htdbm.nlm \
- $(OBJDIR)/logres.nlm \
- $(OBJDIR)/rotlogs.nlm \
- $(EOLIST)
-
-#
-# If there is an LIB target, put it here
-#
-TARGET_lib = \
- $(EOLIST)
-
-#
-# These are the OBJ files needed to create the NLM target above.
-# Paths must all use the '/' character
-#
-FILES_nlm_objs = \
- $(EOLIST)
-
-#
-# These are the LIB files needed to create the NLM target above.
-# These will be added as a library command in the link.opt file.
-#
-FILES_nlm_libs = \
- $(EOLIST)
-
-#
-# These are the modules that the above NLM target depends on to load.
-# These will be added as a module command in the link.opt file.
-#
-FILES_nlm_modules = \
- $(EOLIST)
-
-#
-# If the nlm has a msg file, put it's path here
-#
-FILE_nlm_msg =
-
-#
-# If the nlm has a hlp file put it's path here
-#
-FILE_nlm_hlp =
-
-#
-# If this is specified, it will override $(NWOS)\copyright.txt.
-#
-FILE_nlm_copyright =
-
-#
-# Any additional imports go here
-#
-FILES_nlm_Ximports = \
- $(EOLIST)
-
-#
-# Any symbols exported to here
-#
-FILES_nlm_exports = \
- $(EOLIST)
-
-#
-# These are the OBJ files needed to create the LIB target above.
-# Paths must all use the '/' character
-#
-FILES_lib_objs = \
- $(EOLIST)
-
-#
-# implement targets and dependancies (leave this section alone)
-#
-
-libs :: $(OBJDIR) $(TARGET_lib)
-
-nlms :: libs $(TARGET_nlm)
-
-#
-# Updated this target to create necessary directories and copy files to the
-# correct place. (See $(AP_WORK)\build\NWGNUhead.inc for examples)
-#
-install :: nlms FORCE
- copy $(OBJDIR)\*.nlm $(INSTALL)\Apache2\bin\*.*
-
-#
-# Any specialized rules here
-#
-
-#
-# Include the 'tail' makefile that has targets that depend on variables defined
-# in this makefile
-#
-
-include $(AP_WORK)\build\NWGNUtail.inc
-
-
diff --git a/rubbos/app/httpd-2.0.64/support/NWGNUrotlogs b/rubbos/app/httpd-2.0.64/support/NWGNUrotlogs
deleted file mode 100644
index cdd6461e..00000000
--- a/rubbos/app/httpd-2.0.64/support/NWGNUrotlogs
+++ /dev/null
@@ -1,251 +0,0 @@
-#
-# Make sure all needed macro's are defined
-#
-
-#
-# Get the 'head' of the build environment if necessary. This includes default
-# targets and paths to tools
-#
-
-ifndef EnvironmentDefined
-include $(AP_WORK)\build\NWGNUhead.inc
-endif
-
-#
-# These directories will be at the beginning of the include list, followed by
-# INCDIRS
-#
-XINCDIRS += \
- $(APR)/include \
- $(APR)/misc/netware \
- $(NWOS) \
- $(EOLIST)
-
-#
-# These flags will come after CFLAGS
-#
-XCFLAGS += \
- $(EOLIST)
-
-#
-# These defines will come after DEFINES
-#
-XDEFINES += \
- $(EOLIST)
-
-#
-# These flags will be added to the link.opt file
-#
-XLFLAGS += \
- $(EOLIST)
-
-#
-# These values will be appended to the correct variables based on the value of
-# RELEASE
-#
-ifeq "$(RELEASE)" "debug"
-XINCDIRS += \
- $(EOLIST)
-
-XCFLAGS += \
- $(EOLIST)
-
-XDEFINES += \
- $(EOLIST)
-
-XLFLAGS += \
- $(EOLIST)
-endif
-
-ifeq "$(RELEASE)" "noopt"
-XINCDIRS += \
- $(EOLIST)
-
-XCFLAGS += \
- $(EOLIST)
-
-XDEFINES += \
- $(EOLIST)
-
-XLFLAGS += \
- $(EOLIST)
-endif
-
-ifeq "$(RELEASE)" "release"
-XINCDIRS += \
- $(EOLIST)
-
-XCFLAGS += \
- $(EOLIST)
-
-XDEFINES += \
- $(EOLIST)
-
-XLFLAGS += \
- $(EOLIST)
-endif
-
-#
-# These are used by the link target if an NLM is being generated
-# This is used by the link 'name' directive to name the nlm. If left blank
-# TARGET_nlm (see below) will be used.
-#
-NLM_NAME = rotlogs
-
-#
-# This is used by the link '-desc ' directive.
-# If left blank, NLM_NAME will be used.
-#
-NLM_DESCRIPTION = Apache $(VERSION_STR) Log Rotation Utility for NetWare
-
-#
-# This is used by the '-threadname' directive. If left blank,
-# NLM_NAME Thread will be used.
-#
-NLM_THREAD_NAME = rotlogs
-
-#
-# This is used by the '-screenname' directive. If left blank,
-# 'Apache for NetWare' Thread will be used.
-#
-NLM_SCREEN_NAME = DEFAULT
-
-#
-# If this is specified, it will override VERSION value in
-# $(AP_WORK)\build\NWGNUenvironment.inc
-#
-NLM_VERSION =
-
-#
-# If this is specified, it will override the default of 64K
-#
-NLM_STACK_SIZE = 98304
-
-
-#
-# If this is specified it will be used by the link '-entry' directive
-#
-NLM_ENTRY_SYM = _LibCPrelude
-
-#
-# If this is specified it will be used by the link '-exit' directive
-#
-NLM_EXIT_SYM = _LibCPostlude
-
-#
-# If this is specified it will be used by the link '-check' directive
-#
-NLM_CHECK_SYM =
-
-#
-# If these are specified it will be used by the link '-flags' directive
-#
-NLM_FLAGS = AUTOUNLOAD, PSEUDOPREEMPTION, MULTIPLE
-
-#
-# If this is specified it will be linked in with the XDCData option in the def
-# file instead of the default of $(NWOS)/apache.xdc. XDCData can be disabled
-# by setting APACHE_UNIPROC in the environment
-#
-XDCDATA =
-
-#
-# If there is an NLM target, put it here
-#
-TARGET_nlm = \
- $(OBJDIR)/rotlogs.nlm \
- $(EOLIST)
-
-#
-# If there is an LIB target, put it here
-#
-TARGET_lib = \
- $(EOLIST)
-
-#
-# These are the OBJ files needed to create the NLM target above.
-# Paths must all use the '/' character
-#
-FILES_nlm_objs = \
- $(OBJDIR)/rotatelogs.o \
- $(EOLIST)
-
-#
-# These are the LIB files needed to create the NLM target above.
-# These will be added as a library command in the link.opt file.
-#
-FILES_nlm_libs = \
- libcpre.o \
- $(EOLIST)
-
-#
-# These are the modules that the above NLM target depends on to load.
-# These will be added as a module command in the link.opt file.
-#
-FILES_nlm_modules = \
- aprlib \
- libc \
- $(EOLIST)
-
-#
-# If the nlm has a msg file, put it's path here
-#
-FILE_nlm_msg =
-
-#
-# If the nlm has a hlp file put it's path here
-#
-FILE_nlm_hlp =
-
-#
-# If this is specified, it will override $(NWOS)\copyright.txt.
-#
-FILE_nlm_copyright =
-
-#
-# Any additional imports go here
-#
-FILES_nlm_Ximports = \
- @$(APR)/aprlib.imp \
- @libc.imp \
- $(EOLIST)
-
-#
-# Any symbols exported to here
-#
-FILES_nlm_exports = \
- $(EOLIST)
-
-#
-# These are the OBJ files needed to create the LIB target above.
-# Paths must all use the '/' character
-#
-FILES_lib_objs = \
- $(EOLIST)
-
-#
-# implement targets and dependancies (leave this section alone)
-#
-
-libs :: $(OBJDIR) $(TARGET_lib)
-
-nlms :: libs $(TARGET_nlm)
-
-#
-# Updated this target to create necessary directories and copy files to the
-# correct place. (See $(AP_WORK)\build\NWGNUhead.inc for examples)
-#
-install :: nlms FORCE
-
-#
-# Any specialized rules here
-#
-
-#
-# Include the 'tail' makefile that has targets that depend on variables defined
-# in this makefile
-#
-
-include $(AP_WORK)\build\NWGNUtail.inc
-
-
diff --git a/rubbos/app/httpd-2.0.64/support/README b/rubbos/app/httpd-2.0.64/support/README
deleted file mode 100644
index 80e9cafd..00000000
--- a/rubbos/app/httpd-2.0.64/support/README
+++ /dev/null
@@ -1,62 +0,0 @@
-Support files:
-
-ab
- ABuse your server with this benchmarker. Rudimentary
- command line testing tool.
-
-apachectl
- Apache run-time Control script. To facilitate the
- administrator and/or your rc.d scripts to control the
- functioning of the Apache httpd daemon.
-
-apxs
- APache eXtenSion tool. Eases building and installing
- DSO style modules.
-
-dbmmanage
- Create and update user authentication files in the faster
- DBM format used by mod_auth_db.
-
-htdigest
- Create and update user authentication files used in
- DIGEST authentification. See mod_auth_digest.
-
-htpasswd
- Create and update user authentication files used in
- BASIC authentification. I.e. the htpasswd files.
- See mod_auth.
-
-httpd.8
- General apache man page.
-
-log_server_status
- This script is designed to be run at a frequent interval by something
- like cron. It connects to the server and downloads the status
- information. It reformats the information to a single line and logs
- it to a file.
-
-logresolve
- resolve hostnames for IP-adresses in Apache logfiles
-
-phf_abuse_log.cgi
- This script can be used to detect people trying to abuse an ancient
- and long plugged security hole which existed in a CGI script distributed
- with Apache 1.0.3 and earlier versions.
-
-rotatelogs
- rotate Apache logs without having to kill the server.
-
-split-logfile
- This script will take a combined virtual hosts access
- log file and break its contents into separate files.
-
-suexec
- Switch User For Exec. Used internally by apache,
- see the document `Apache suEXEC Support'
- under http://www.apache.org/docs/suexec.html .
-
-SHA1
- This directory includes some utilities to allow Apache 1.3.6 to
- recognize passwords in SHA1 format, as used by Netscape web
- servers. It is not installed by default.
-
diff --git a/rubbos/app/httpd-2.0.64/support/SHA1/README.sha1 b/rubbos/app/httpd-2.0.64/support/SHA1/README.sha1
deleted file mode 100644
index 3998e1fd..00000000
--- a/rubbos/app/httpd-2.0.64/support/SHA1/README.sha1
+++ /dev/null
@@ -1,34 +0,0 @@
-This directory includes some utilities to allow Apache 1.3.6 to
-recognize passwords in SHA1 format, as used by Netscape web servers.
-
-From Netscape's admin interface, export the password database to an
-ldif file and then use convert.pl in this distribution to generate
-apache style password files.
-
-Note: SHA1 support is useful for migration purposes, but is less
- secure than Apache's password format, since Apache's (MD5)
- password format uses a random eight character salt to generate
- one of many possible hashes for the same password. Netscape
- uses plain SHA1 without a salt, so the same password
- will always generate the same hash, making it easier
- to break since the search space is smaller.
-
-This code was contributed by Clinton Wong <clintdw@netcom.com>.
-
-README.sha1
- this file
-
-convert-sha1.pl
- takes an ldif dump from Netscape's web server on
- standard in, outputs apache htpasswd format on standard out.
-
- Usage: convert.pl < ldif > passwords
-
-htpasswd-sha1.pl
- perl script to generate entries in apache htpasswd format.
-
- Usage: htpasswd-sha1.pl some_user some_password
-
-ldif-sha1.example
- sample ldif dump with one sha1 password and one crypt password.
-
diff --git a/rubbos/app/httpd-2.0.64/support/SHA1/convert-sha1.pl b/rubbos/app/httpd-2.0.64/support/SHA1/convert-sha1.pl
deleted file mode 100644
index 35228022..00000000
--- a/rubbos/app/httpd-2.0.64/support/SHA1/convert-sha1.pl
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/perl -w
-use strict;
-
-# This is public domain code. Do whatever you want with it.
-# It was originally included in Clinton Wong's Apache 1.3.6 SHA1/ldif
-# patch distribution as sample code for converting accounts from
-# ldif format (as used by Netscape web servers) to Apache password format.
-
-my $uid='';
-my $passwd='';
-
-while (my $line = <>) {
- chomp $line;
- if ( $line =~ /uid:\s*(.+)/) { $uid = $1 }
- if ( $line =~ /userpassword:\s*(\{\w+\}.+)/) {
- $passwd = $1;
- $passwd =~ s/^\{crypt\}//i; # Apache stores crypt without a magic string
- }
-
- if (length($line)==0) {
-
- if (length $uid and length $passwd) {
- print $uid, ':', $passwd, "\n";
- } # output if we have something to print
-
- $uid = '';
- $passwd = '';
-
- } # if newline
-} # while something to read
-
-# handle last entry if there isn't a newline before EOF
- if (length $uid and length $passwd) {
- print $uid, ':', $passwd, "\n";
-}
-
diff --git a/rubbos/app/httpd-2.0.64/support/SHA1/htpasswd-sha1.pl b/rubbos/app/httpd-2.0.64/support/SHA1/htpasswd-sha1.pl
deleted file mode 100644
index ad624d11..00000000
--- a/rubbos/app/httpd-2.0.64/support/SHA1/htpasswd-sha1.pl
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/perl -w
-use strict;
-#
-# Utility which takes a username and password
-# on the command line and generates a username
-# sha1-encrytped password on the stdout.
-#
-# Typical useage:
-# ./htpasswd-sha1.pl dirkx MySecret >> sha1-passwd
-#
-# This is public domain code. Do whatever you want with it.
-# It was originally included in Clinton Wong's Apache 1.3.6 SHA1/ldif
-# patch distribution as sample code for generating entries for
-# Apache password files using SHA1.
-
-use MIME::Base64; # http://www.cpan.org/modules/by-module/MIME/
-use Digest::SHA1; # http://www.cpan.org/modules/by-module/MD5/
-
-if ($#ARGV!=1) { die "Usage $0: user password\n" }
-
-print $ARGV[0], ':{SHA}', encode_base64( Digest::SHA1::sha1($ARGV[1]) );
-
diff --git a/rubbos/app/httpd-2.0.64/support/SHA1/ldif-sha1.example b/rubbos/app/httpd-2.0.64/support/SHA1/ldif-sha1.example
deleted file mode 100644
index b8fe917e..00000000
--- a/rubbos/app/httpd-2.0.64/support/SHA1/ldif-sha1.example
+++ /dev/null
@@ -1,19 +0,0 @@
-dn: cn=someuser
-cn: someuser
-sn: someuser
-objectclass: top
-objectclass: person
-objectclass: organizationalPerson
-objectclass: inetOrgPerson
-uid: someuser
-userpassword: {SHA}GvF+c3IdvgxAARuC7Uuxp9vjzik=
-
-dn: cn=anotheruser
-cn: anotheruser
-sn: anotheruser
-objectclass: top
-objectclass: person
-objectclass: organizationalPerson
-objectclass: inetOrgPerson
-uid: anotheruser
-userpassword: {crypt}eFnp.4sz5XnH6
diff --git a/rubbos/app/httpd-2.0.64/support/ab b/rubbos/app/httpd-2.0.64/support/ab
deleted file mode 100755
index a5757c29..00000000
--- a/rubbos/app/httpd-2.0.64/support/ab
+++ /dev/null
@@ -1,131 +0,0 @@
-#! /bin/bash
-
-# ab - temporary wrapper script for .libs/ab
-# Generated by ltmain.sh - GNU libtool 1.5.26 (1.1220.2.493 2008/02/01 16:58:18)
-#
-# The ab program cannot be directly executed until all the libtool
-# libraries that it depends on are installed.
-#
-# This wrapper script should never be moved out of the build directory.
-# If it is, it will not operate correctly.
-
-# Sed substitution that helps us do robust quoting. It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='/bin/sed -e 1s/^X//'
-sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
-
-# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
-fi
-BIN_SH=xpg4; export BIN_SH # for Tru64
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-relink_command="(cd /bottlenecks/rubbos/app/httpd-2.0.64/support; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=\"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games\"; export PATH; gcc -g -O2 -pthread -D_REENTRANT -D_GNU_SOURCE -DAP_HAVE_DESIGNATED_INITIALIZER -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/include -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/include -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/lib -I. -I/bottlenecks/rubbos/app/httpd-2.0.64/os/unix -I/bottlenecks/rubbos/app/httpd-2.0.64/server/mpm/worker -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/http -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/filters -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/proxy -I/bottlenecks/rubbos/app/httpd-2.0.64/include -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/generators -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/dav/main -o \$progdir/\$file .libs/ab.o -Wl,--export-dynamic -L/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/lib /bottlenecks/rubbos/app/httpd-2.0.64/srclib/pcre/.libs/libpcre.a /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/.libs/libaprutil-0.so /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/.libs/libexpat.so /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/.libs/libapr-0.so -lrt -lm -lcrypt -lnsl -lpthread -ldl -Wl,--rpath -Wl,/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/.libs -Wl,--rpath -Wl,/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/.libs -Wl,--rpath -Wl,/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/.libs -Wl,--rpath -Wl,/bottlenecks/rubbos/app/apache2/lib ) "
-
-# This environment variable determines our operation mode.
-if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
- # install mode needs the following variable:
- notinst_deplibs=' /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/libaprutil-0.la /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/libexpat.la /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/libapr-0.la'
-else
- # When we are sourced in execute mode, $file and $echo are already set.
- if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
- echo="echo"
- file="$0"
- # Make sure echo works.
- if test "X$1" = X--no-reexec; then
- # Discard the --no-reexec flag, and continue.
- shift
- elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
- # Yippee, $echo works!
- :
- else
- # Restart under the correct shell, and then maybe $echo will work.
- exec /bin/bash "$0" --no-reexec ${1+"$@"}
- fi
- fi
-
- # Find the directory that this script lives in.
- thisdir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
- test "x$thisdir" = "x$file" && thisdir=.
-
- # Follow symbolic links until we get to the real thisdir.
- file=`ls -ld "$file" | /bin/sed -n 's/.*-> //p'`
- while test -n "$file"; do
- destdir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
-
- # If there was a directory component, then change thisdir.
- if test "x$destdir" != "x$file"; then
- case "$destdir" in
- [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
- *) thisdir="$thisdir/$destdir" ;;
- esac
- fi
-
- file=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
- file=`ls -ld "$thisdir/$file" | /bin/sed -n 's/.*-> //p'`
- done
-
- # Try to get the absolute directory name.
- absdir=`cd "$thisdir" && pwd`
- test -n "$absdir" && thisdir="$absdir"
-
- program=lt-'ab'
- progdir="$thisdir/.libs"
-
- if test ! -f "$progdir/$program" || \
- { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /bin/sed 1q`; \
- test "X$file" != "X$progdir/$program"; }; then
-
- file="$$-$program"
-
- if test ! -d "$progdir"; then
- mkdir "$progdir"
- else
- rm -f "$progdir/$file"
- fi
-
- # relink executable if necessary
- if test -n "$relink_command"; then
- if relink_command_output=`eval $relink_command 2>&1`; then :
- else
- echo "$relink_command_output" >&2
- rm -f "$progdir/$file"
- exit 1
- fi
- fi
-
- mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
- { rm -f "$progdir/$program";
- mv -f "$progdir/$file" "$progdir/$program"; }
- rm -f "$progdir/$file"
- fi
-
- if test -f "$progdir/$program"; then
- if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
- # Run the actual program with our arguments.
-
- exec "$progdir/$program" ${1+"$@"}
-
- $echo "$0: cannot exec $program $*"
- exit 1
- fi
- else
- # The program doesn't exist.
- $echo "$0: error: \`$progdir/$program' does not exist" 1>&2
- $echo "This script is just a wrapper for $program." 1>&2
- echo "See the libtool documentation for more information." 1>&2
- exit 1
- fi
-fi
diff --git a/rubbos/app/httpd-2.0.64/support/ab.c b/rubbos/app/httpd-2.0.64/support/ab.c
deleted file mode 100644
index 9f6edfd0..00000000
--- a/rubbos/app/httpd-2.0.64/support/ab.c
+++ /dev/null
@@ -1,2195 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- ** This program is based on ZeusBench V1.0 written by Adam Twiss
- ** which is Copyright (c) 1996 by Zeus Technology Ltd. http://www.zeustech.net/
- **
- ** This software is provided "as is" and any express or implied waranties,
- ** including but not limited to, the implied warranties of merchantability and
- ** fitness for a particular purpose are disclaimed. In no event shall
- ** Zeus Technology Ltd. be liable for any direct, indirect, incidental, special,
- ** exemplary, or consequential damaged (including, but not limited to,
- ** procurement of substitute good or services; loss of use, data, or profits;
- ** or business interruption) however caused and on 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.
- **
- */
-
-/*
- ** HISTORY:
- ** - Originally written by Adam Twiss <adam@zeus.co.uk>, March 1996
- ** with input from Mike Belshe <mbelshe@netscape.com> and
- ** Michael Campanella <campanella@stevms.enet.dec.com>
- ** - Enhanced by Dean Gaudet <dgaudet@apache.org>, November 1997
- ** - Cleaned up by Ralf S. Engelschall <rse@apache.org>, March 1998
- ** - POST and verbosity by Kurt Sussman <kls@merlot.com>, August 1998
- ** - HTML table output added by David N. Welton <davidw@prosa.it>, January 1999
- ** - Added Cookie, Arbitrary header and auth support. <dirkx@webweaving.org>, April 1999
- ** Version 1.3d
- ** - Increased version number - as some of the socket/error handling has
- ** fundamentally changed - and will give fundamentally different results
- ** in situations where a server is dropping requests. Therefore you can
- ** no longer compare results of AB as easily. Hence the inc of the version.
- ** They should be closer to the truth though. Sander & <dirkx@covalent.net>, End 2000.
- ** - Fixed proxy functionality, added median/mean statistics, added gnuplot
- ** output option, added _experimental/rudimentary_ SSL support. Added
- ** confidence guestimators and warnings. Sander & <dirkx@covalent.net>, End 2000
- ** - Fixed serious int overflow issues which would cause realistic (longer
- ** than a few minutes) run's to have wrong (but believable) results. Added
- ** trapping of connection errors which influenced measurements.
- ** Contributed by Sander Temme, Early 2001
- ** Version 1.3e
- ** - Changed timeout behavour during write to work whilst the sockets
- ** are filling up and apr_write() does writes a few - but not all.
- ** This will potentially change results. <dirkx@webweaving.org>, April 2001
- ** Version 2.0.36-dev
- ** Improvements to concurrent processing:
- ** - Enabled non-blocking connect()s.
- ** - Prevent blocking calls to apr_recv() (thereby allowing AB to
- ** manage its entire set of socket descriptors).
- ** - Any error returned from apr_recv() that is not EAGAIN or EOF
- ** is now treated as fatal.
- ** Contributed by Aaron Bannert, April 24, 2002
- **
- ** Version 2.0.36-2
- ** Internalized the version string - this string is part
- ** of the Agent: header and the result output.
- **
- ** Version 2.0.37-dev
- ** Adopted SSL code by Madhu Mathihalli <madhusudan_mathihalli@hp.com>
- ** [PATCH] ab with SSL support Posted Wed, 15 Aug 2001 20:55:06 GMT
- ** Introduces four 'if (int == value)' tests per non-ssl request.
- **
- ** Version 2.0.40-dev
- ** Switched to the new abstract pollset API, allowing ab to
- ** take advantage of future apr_pollset_t scalability improvements.
- ** Contributed by Brian Pane, August 31, 2002
- **/
-
-/* Note: this version string should start with \d+[\d\.]* and be a valid
- * string for an HTTP Agent: header when prefixed with 'ApacheBench/'.
- * It should reflect the version of AB - and not that of the apache server
- * it happens to accompany. And it should be updated or changed whenever
- * the results are no longer fundamentally comparable to the results of
- * a previous version of ab. Either due to a change in the logic of
- * ab - or to due to a change in the distribution it is compiled with
- * (such as an APR change in for example blocking).
- */
-#define AP_AB_BASEREVISION "2.0.41-dev"
-
-/*
- * BUGS:
- *
- * - uses strcpy/etc.
- * - has various other poor buffer attacks related to the lazy parsing of
- * response headers from the server
- * - doesn't implement much of HTTP/1.x, only accepts certain forms of
- * responses
- * - (performance problem) heavy use of strstr shows up top in profile
- * only an issue for loopback usage
- */
-
-/* -------------------------------------------------------------------- */
-
-#if 'A' != 0x41
-/* Hmmm... This source code isn't being compiled in ASCII.
- * In order for data that flows over the network to make
- * sense, we need to translate to/from ASCII.
- */
-#define NOT_ASCII
-#endif
-
-/* affects include files on Solaris */
-#define BSD_COMP
-
-#include "apr.h"
-#include "apr_signal.h"
-#include "apr_strings.h"
-#include "apr_network_io.h"
-#include "apr_file_io.h"
-#include "apr_time.h"
-#include "apr_getopt.h"
-#include "apr_general.h"
-#include "apr_lib.h"
-#include "apr_portable.h"
-#include "ap_release.h"
-#include "apr_poll.h"
-
-#define APR_WANT_STRFUNC
-#include "apr_want.h"
-
-#include "apr_base64.h"
-#ifdef NOT_ASCII
-#include "apr_xlate.h"
-#endif
-#if APR_HAVE_STDIO_H
-#include <stdio.h>
-#endif
-#if APR_HAVE_STDLIB_H
-#include <stdlib.h>
-
-#ifdef USE_SSL
-#if ((!(RSAREF)) && (!(SYSSSL)))
-/* Libraries on most systems.. */
-#include <openssl/rsa.h>
-#include <openssl/crypto.h>
-#include <openssl/x509.h>
-#include <openssl/pem.h>
-#include <openssl/err.h>
-#include <openssl/ssl.h>
-#include <openssl/rand.h>
-#else
-/* Libraries for RSAref and SYSSSL */
-#include <rsa.h>
-#include <crypto.h>
-#include <x509.h>
-#include <pem.h>
-#include <err.h>
-#include <ssl.h>
-#include <rand.h>
-#endif
-#endif
-
-#include <math.h>
-#endif
-#if APR_HAVE_CTYPE_H
-#include <ctype.h>
-#endif
-
-/* ------------------- DEFINITIONS -------------------------- */
-
-#ifndef LLONG_MAX
-#define AB_MAX APR_INT64_C(0x7fffffffffffffff)
-#else
-#define AB_MAX LLONG_MAX
-#endif
-
-/* maximum number of requests on a time limited test */
-#define MAX_REQUESTS 50000
-
-/* good old state hostname */
-#define STATE_UNCONNECTED 0
-#define STATE_CONNECTING 1 /* TCP connect initiated, but we don't
- * know if it worked yet
- */
-#define STATE_CONNECTED 2 /* we know TCP connect completed */
-#define STATE_READ 3
-
-#define CBUFFSIZE (2048)
-
-struct connection {
- apr_pool_t *ctx;
- apr_socket_t *aprsock;
- int state;
- apr_size_t read; /* amount of bytes read */
- apr_size_t bread; /* amount of body read */
- apr_size_t rwrite, rwrote; /* keep pointers in what we write - across
- * EAGAINs */
- apr_size_t length; /* Content-Length value used for keep-alive */
- char cbuff[CBUFFSIZE]; /* a buffer to store server response header */
- int cbx; /* offset in cbuffer */
- int keepalive; /* non-zero if a keep-alive request */
- int gotheader; /* non-zero if we have the entire header in
- * cbuff */
- apr_time_t start, /* Start of connection */
- connect, /* Connected, start writing */
- endwrite, /* Request written */
- beginread, /* First byte of input */
- done; /* Connection closed */
-
- int socknum;
-#ifdef USE_SSL
- SSL *ssl;
-#endif
-};
-
-struct data {
-#ifdef USE_SSL
- /* XXXX insert SSL timings */
-#endif
- int read; /* number of bytes read */
- apr_time_t starttime; /* start time of connection in seconds since
- * Jan. 1, 1970 */
- apr_interval_time_t waittime; /* Between writing request and reading
- * response */
- apr_interval_time_t ctime; /* time in ms to connect */
- apr_interval_time_t time; /* time in ms for connection */
-};
-
-#define ap_min(a,b) ((a)<(b))?(a):(b)
-#define ap_max(a,b) ((a)>(b))?(a):(b)
-#define MAX_CONCURRENCY 20000
-
-/* --------------------- GLOBALS ---------------------------- */
-
-int verbosity = 0; /* no verbosity by default */
-int posting = 0; /* GET by default */
-int requests = 1; /* Number of requests to make */
-int heartbeatres = 100; /* How often do we say we're alive */
-int concurrency = 1; /* Number of multiple requests to make */
-int percentile = 1; /* Show percentile served */
-int confidence = 1; /* Show confidence estimator and warnings */
-int tlimit = 0; /* time limit in secs */
-int keepalive = 0; /* try and do keepalive connections */
-char servername[1024]; /* name that server reports */
-char *hostname; /* host name from URL */
-char *host_field; /* value of "Host:" header field */
-char *path; /* path name */
-char postfile[1024]; /* name of file containing post data */
-char *postdata; /* *buffer containing data from postfile */
-apr_size_t postlen = 0; /* length of data to be POSTed */
-char content_type[1024]; /* content type to put in POST header */
-char *cookie, /* optional cookie line */
- *auth, /* optional (basic/uuencoded) auhentication */
- *hdrs; /* optional arbitrary headers */
-apr_port_t port; /* port number */
-char proxyhost[1024]; /* proxy host name */
-int proxyport = 0; /* proxy port */
-char *connecthost;
-apr_port_t connectport;
-char *gnuplot; /* GNUplot file */
-char *csvperc; /* CSV Percentile file */
-char url[1024];
-char * fullurl, * colonhost;
-int isproxy = 0;
-apr_interval_time_t aprtimeout = apr_time_from_sec(30); /* timeout value */
- /*
- * XXX - this is now a per read/write transact type of value
- */
-
-int use_html = 0; /* use html in the report */
-const char *tablestring;
-const char *trstring;
-const char *tdstring;
-
-apr_size_t doclen = 0; /* the length the document should be */
-long started = 0; /* number of requests started, so no excess */
-long totalread = 0; /* total number of bytes read */
-long totalbread = 0; /* totoal amount of entity body read */
-long totalposted = 0; /* total number of bytes posted, inc. headers */
-long done = 0; /* number of requests we have done */
-long doneka = 0; /* number of keep alive connections done */
-long good = 0, bad = 0; /* number of good and bad requests */
-long epipe = 0; /* number of broken pipe writes */
-
-#ifdef USE_SSL
-int ssl = 0;
-SSL_CTX *ctx;
-BIO *bio_out,*bio_err;
-static void write_request(struct connection * c);
-#endif
-
-/* store error cases */
-int err_length = 0, err_conn = 0, err_except = 0;
-int err_response = 0;
-
-apr_time_t start, endtime;
-
-/* global request (and its length) */
-char _request[512];
-char *request = _request;
-apr_size_t reqlen;
-
-/* one global throw-away buffer to read stuff into */
-char buffer[8192];
-
-/* interesting percentiles */
-int percs[] = {50, 66, 75, 80, 90, 95, 98, 99, 100};
-
-struct connection *con; /* connection array */
-struct data *stats; /* date for each request */
-apr_pool_t *cntxt;
-
-apr_pollset_t *readbits;
-
-apr_sockaddr_t *destsa;
-
-#ifdef NOT_ASCII
-apr_xlate_t *from_ascii, *to_ascii;
-#endif
-
-static void close_connection(struct connection * c);
-/* --------------------------------------------------------- */
-
-/* simple little function to write an error string and exit */
-
-static void err(char *s)
-{
- fprintf(stderr, "%s\n", s);
- if (done)
- printf("Total of %ld requests completed\n" , done);
- exit(1);
-}
-
-/* simple little function to write an APR error string and exit */
-
-static void apr_err(char *s, apr_status_t rv)
-{
- char buf[120];
-
- fprintf(stderr,
- "%s: %s (%d)\n",
- s, apr_strerror(rv, buf, sizeof buf), rv);
- if (done)
- printf("Total of %ld requests completed\n" , done);
- exit(rv);
-}
-
-#if defined(USE_SSL) && USE_THREADS
-/*
- * To ensure thread-safetyness in OpenSSL - work in progress
- */
-
-static apr_thread_mutex_t **lock_cs;
-static int lock_num_locks;
-
-static void ssl_util_thr_lock(int mode, int type,
- const char *file, int line)
-{
- if (type < lock_num_locks) {
- if (mode & CRYPTO_LOCK) {
- apr_thread_mutex_lock(lock_cs[type]);
- }
- else {
- apr_thread_mutex_unlock(lock_cs[type]);
- }
- }
-}
-
-static unsigned long ssl_util_thr_id(void)
-{
- /* OpenSSL needs this to return an unsigned long. On OS/390, the pthread
- * id is a structure twice that big. Use the TCB pointer instead as a
- * unique unsigned long.
- */
-#ifdef __MVS__
- struct PSA {
- char unmapped[540];
- unsigned long PSATOLD;
- } *psaptr = 0;
-
- return psaptr->PSATOLD;
-#else
- return (unsigned long) apr_os_thread_current();
-#endif
-}
-
-static apr_status_t ssl_util_thread_cleanup(void *data)
-{
- CRYPTO_set_locking_callback(NULL);
-
- /* Let the registered mutex cleanups do their own thing
- */
- return APR_SUCCESS;
-}
-
-void ssl_util_thread_setup(apr_pool_t *p)
-{
- int i;
-
- lock_num_locks = CRYPTO_num_locks();
- lock_cs = apr_palloc(p, lock_num_locks * sizeof(*lock_cs));
-
- for (i = 0; i < lock_num_locks; i++) {
- apr_thread_mutex_create(&(lock_cs[i]), APR_THREAD_MUTEX_DEFAULT, p);
- }
-
- CRYPTO_set_id_callback(ssl_util_thr_id);
-
- CRYPTO_set_locking_callback(ssl_util_thr_lock);
-
- apr_pool_cleanup_register(p, NULL, ssl_util_thread_cleanup,
- apr_pool_cleanup_null);
-}
-#endif
-
-/* --------------------------------------------------------- */
-/* write out request to a connection - assumes we can write
- * (small) request out in one go into our new socket buffer
- *
- */
-#ifdef USE_SSL
-long ssl_print_cb(BIO *bio,int cmd,const char *argp,int argi,long argl,long ret)
-{
- BIO *out;
-
- out=(BIO *)BIO_get_callback_arg(bio);
- if (out == NULL) return(ret);
-
- if (cmd == (BIO_CB_READ|BIO_CB_RETURN))
- {
- BIO_printf(out,"read from %08X [%08lX] (%d bytes => %ld (0x%X))\n",
- bio,argp,argi,ret,ret);
- BIO_dump(out,(char *)argp,(int)ret);
- return(ret);
- }
- else if (cmd == (BIO_CB_WRITE|BIO_CB_RETURN))
- {
- BIO_printf(out,"write to %08X [%08lX] (%d bytes => %ld (0x%X))\n",
- bio,argp,argi,ret,ret);
- BIO_dump(out,(char *)argp,(int)ret);
- }
- return(ret);
-}
-
-#ifndef RAND_MAX
-#include <limits.h>
-#define RAND_MAX INT_MAX
-#endif
-
-static int ssl_rand_choosenum(int l, int h)
-{
- int i;
- char buf[50];
-
- srand((unsigned int)time(NULL));
- apr_snprintf(buf, sizeof(buf), "%.0f",
- (((double)(rand()%RAND_MAX)/RAND_MAX)*(h-l)));
- i = atoi(buf)+1;
- if (i < l) i = l;
- if (i > h) i = h;
- return i;
-}
-
-void ssl_rand_seed()
-{
- int nDone = 0;
- int n, l;
- time_t t;
- pid_t pid;
- unsigned char stackdata[256];
-
- /*
- * seed in the current time (usually just 4 bytes)
- */
- t = time(NULL);
- l = sizeof(time_t);
- RAND_seed((unsigned char *)&t, l);
- nDone += l;
-
- /*
- * seed in the current process id (usually just 4 bytes)
- */
- pid = getpid();
- l = sizeof(pid_t);
- RAND_seed((unsigned char *)&pid, l);
- nDone += l;
-
- /*
- * seed in some current state of the run-time stack (128 bytes)
- */
- n = ssl_rand_choosenum(0, sizeof(stackdata)-128-1);
- RAND_seed(stackdata+n, 128);
- nDone += 128;
-}
-
-int ssl_print_connection_info(bio,ssl)
-BIO *bio;
-SSL *ssl;
-{
- SSL_CIPHER *c;
- int alg_bits,bits;
-
- c=SSL_get_current_cipher(ssl);
- BIO_printf(bio,"Cipher Suite Protocol :%s\n", SSL_CIPHER_get_version(c));
- BIO_printf(bio,"Cipher Suite Name :%s\n",SSL_CIPHER_get_name(c));
-
- bits=SSL_CIPHER_get_bits(c,&alg_bits);
- BIO_printf(bio,"Cipher Suite Cipher Bits:%d (%d)\n",bits,alg_bits);
-
- return(1);
-}
-
-int ssl_print_cert_info(bio,x509cert)
-BIO *bio;
-X509 *x509cert;
-{
- X509_NAME *dn;
- char buf[64];
-
- BIO_printf(bio,"Certificate version: %d\n",X509_get_version(x509cert)+1);
-
- BIO_printf(bio,"Valid from: ");
- ASN1_UTCTIME_print(bio, X509_get_notBefore(x509cert));
- BIO_printf(bio,"\n");
-
- BIO_printf(bio,"Valid to : ");
- ASN1_UTCTIME_print(bio, X509_get_notAfter(x509cert));
- BIO_printf(bio,"\n");
-
- BIO_printf(bio,"Public key is %d bits\n",
- EVP_PKEY_bits(X509_get_pubkey(x509cert)));
-
- dn=X509_get_issuer_name(x509cert);
- X509_NAME_oneline(dn, buf, BUFSIZ);
- BIO_printf(bio,"The issuer name is %s\n", buf);
-
- dn=X509_get_subject_name(x509cert);
- X509_NAME_oneline(dn, buf, BUFSIZ);
- BIO_printf(bio,"The subject name is %s\n", buf);
-
- /* dump the extension list too */
- BIO_printf(bio,"Extension Count: %d\n",X509_get_ext_count(x509cert));
-
- return(1);
-}
-
-void ssl_start_connect(struct connection * c)
-{
- BIO *bio;
- X509 *x509cert;
-#ifdef RSAREF
- STACK *sk;
-#else
- STACK_OF(X509) *sk;
-#endif
- int i, count, hdone = 0;
- char ssl_hostname[80];
-
- /* XXX - Verify if it's okay - TBD */
- if (requests < concurrency)
- requests = concurrency;
-
- if (!(started < requests))
- return;
-
- c->read = 0;
- c->bread = 0;
- c->keepalive = 0;
- c->cbx = 0;
- c->gotheader = 0;
- c->rwrite = 0;
- if (c->ctx)
- apr_pool_destroy(c->ctx);
- apr_pool_create(&c->ctx, cntxt);
-
- if ((c->ssl=SSL_new(ctx)) == NULL)
- {
- BIO_printf(bio_err,"SSL_new failed\n");
- exit(1);
- }
-
- ssl_rand_seed();
-
- c->start = apr_time_now();
- memset(ssl_hostname, 0, 80);
- sprintf(ssl_hostname, "%s:%d", hostname, port);
-
- if ((bio = BIO_new_connect(ssl_hostname)) == NULL)
- {
- BIO_printf(bio_err,"BIO_new_connect failed\n");
- exit(1);
- }
- SSL_set_bio(c->ssl,bio,bio);
- SSL_set_connect_state(c->ssl);
-
- if (verbosity >= 4)
- {
- BIO_set_callback(bio,ssl_print_cb);
- BIO_set_callback_arg(bio,(void*)bio_err);
- }
-
- while (!hdone)
- {
- i = SSL_do_handshake(c->ssl);
-
- switch (SSL_get_error(c->ssl,i))
- {
- case SSL_ERROR_NONE:
- hdone=1;
- break;
- case SSL_ERROR_SSL:
- case SSL_ERROR_SYSCALL:
- BIO_printf(bio_err,"SSL connection failed\n");
- err_conn++;
- c->state = STATE_UNCONNECTED;
- if (bad++ > 10) {
- SSL_free (c->ssl);
- BIO_printf(bio_err,"\nTest aborted after 10 failures\n\n");
- exit (1);
- }
- break;
- case SSL_ERROR_WANT_READ:
- case SSL_ERROR_WANT_WRITE:
- case SSL_ERROR_WANT_CONNECT:
- BIO_printf(bio_err, "Waiting .. sleep(1)\n");
- apr_sleep(apr_time_from_sec(1));
- c->state = STATE_CONNECTED;
- c->rwrite = 0;
- break;
- case SSL_ERROR_ZERO_RETURN:
- BIO_printf(bio_err,"socket closed\n");
- break;
- }
- }
-
- if (verbosity >= 2)
- {
- BIO_printf(bio_err, "\n");
- sk = SSL_get_peer_cert_chain(c->ssl);
-#ifdef RSAREF
- if ((count = sk_num(sk)) > 0)
-#else
- if ((count = sk_X509_num(sk)) > 0)
-#endif
- {
- for (i=1; i<count; i++)
- {
-#ifdef RSAREF
- x509cert = (X509 *)sk_value(sk,i);
-#else
- x509cert = (X509 *)sk_X509_value(sk,i);
-#endif
- ssl_print_cert_info(bio_out,x509cert);
- X509_free(x509cert);
- }
- }
-
- x509cert = SSL_get_peer_certificate(c->ssl);
- if (x509cert == NULL)
- BIO_printf(bio_out, "Anon DH\n");
- else
- {
- BIO_printf(bio_out, "Peer certificate\n");
- ssl_print_cert_info(bio_out,x509cert);
- X509_free(x509cert);
- }
-
- ssl_print_connection_info(bio_err,c->ssl);
- SSL_SESSION_print(bio_err,SSL_get_session(c->ssl));
- }
-
- /* connected first time */
- started++;
- write_request(c);
-}
-#endif /* USE_SSL */
-
-static void write_request(struct connection * c)
-{
- do {
- apr_time_t tnow = apr_time_now();
- apr_size_t l = c->rwrite;
- apr_status_t e;
-
- /*
- * First time round ?
- */
- if (c->rwrite == 0) {
-#ifdef USE_SSL
- if (ssl != 1)
-#endif
- apr_socket_timeout_set(c->aprsock, 0);
- c->connect = tnow;
- c->rwrite = reqlen;
- c->rwrote = 0;
- if (posting)
- c->rwrite += postlen;
- }
- else if (tnow > c->connect + aprtimeout) {
- printf("Send request timed out!\n");
- close_connection(c);
- return;
- }
-
-#ifdef USE_SSL
- if (ssl == 1) {
- apr_size_t e_ssl;
- e_ssl = SSL_write(c->ssl,request + c->rwrote, l);
- if (e_ssl != l)
- {
- printf("SSL write failed - closing connection\n");
- close_connection (c);
- return;
- }
- l = e_ssl;
- }
- else
-#endif
- e = apr_send(c->aprsock, request + c->rwrote, &l);
-
- /*
- * Bail early on the most common case
- */
- if (l == c->rwrite)
- break;
-
-#ifdef USE_SSL
- if (ssl != 1)
-#endif
- if (e != APR_SUCCESS) {
- /*
- * Let's hope this traps EWOULDBLOCK too !
- */
- if (!APR_STATUS_IS_EAGAIN(e)) {
- epipe++;
- printf("Send request failed!\n");
- close_connection(c);
- }
- return;
- }
- c->rwrote += l;
- c->rwrite -= l;
- } while (1);
-
- totalposted += c->rwrite;
- c->state = STATE_READ;
- c->endwrite = apr_time_now();
-#ifdef USE_SSL
- if (ssl != 1)
-#endif
- {
- apr_pollfd_t new_pollfd;
- new_pollfd.desc_type = APR_POLL_SOCKET;
- new_pollfd.reqevents = APR_POLLIN;
- new_pollfd.desc.s = c->aprsock;
- new_pollfd.client_data = c;
- apr_pollset_add(readbits, &new_pollfd);
- }
-}
-
-/* --------------------------------------------------------- */
-
-/* calculate and output results */
-
-static int compradre(struct data * a, struct data * b)
-{
- if ((a->ctime) < (b->ctime))
- return -1;
- if ((a->ctime) > (b->ctime))
- return +1;
- return 0;
-}
-
-static int comprando(struct data * a, struct data * b)
-{
- if ((a->time) < (b->time))
- return -1;
- if ((a->time) > (b->time))
- return +1;
- return 0;
-}
-
-static int compri(struct data * a, struct data * b)
-{
- apr_interval_time_t p = a->time - a->ctime;
- apr_interval_time_t q = b->time - b->ctime;
- if (p < q)
- return -1;
- if (p > q)
- return +1;
- return 0;
-}
-
-static int compwait(struct data * a, struct data * b)
-{
- if ((a->waittime) < (b->waittime))
- return -1;
- if ((a->waittime) > (b->waittime))
- return 1;
- return 0;
-}
-
-static void output_results(void)
-{
- apr_interval_time_t timetakenusec;
- float timetaken;
-
- endtime = apr_time_now();
- timetakenusec = endtime - start;
- timetaken = ((float)apr_time_sec(timetakenusec)) +
- ((float)apr_time_usec(timetakenusec)) / 1000000.0F;
-
- printf("\n\n");
- printf("Server Software: %s\n", servername);
- printf("Server Hostname: %s\n", hostname);
- printf("Server Port: %hd\n", port);
- printf("\n");
- printf("Document Path: %s\n", path);
- printf("Document Length: %" APR_SIZE_T_FMT " bytes\n", doclen);
- printf("\n");
- printf("Concurrency Level: %d\n", concurrency);
- printf("Time taken for tests: %ld.%03ld seconds\n",
- (long) apr_time_sec(timetakenusec),
- (long) apr_time_usec(timetakenusec));
- printf("Complete requests: %ld\n", done);
- printf("Failed requests: %ld\n", bad);
- if (bad)
- printf(" (Connect: %d, Length: %d, Exceptions: %d)\n",
- err_conn, err_length, err_except);
- printf("Write errors: %ld\n", epipe);
- if (err_response)
- printf("Non-2xx responses: %d\n", err_response);
- if (keepalive)
- printf("Keep-Alive requests: %ld\n", doneka);
- printf("Total transferred: %ld bytes\n", totalread);
- if (posting > 0)
- printf("Total POSTed: %ld\n", totalposted);
- printf("HTML transferred: %ld bytes\n", totalbread);
-
- /* avoid divide by zero */
- if (timetaken) {
- printf("Requests per second: %.2f [#/sec] (mean)\n",
- (float) (done / timetaken));
- printf("Time per request: %.3f [ms] (mean)\n",
- (float) (1000 * concurrency * timetaken / done));
- printf("Time per request: %.3f [ms] (mean, across all concurrent requests)\n",
- (float) (1000 * timetaken / done));
- printf("Transfer rate: %.2f [Kbytes/sec] received\n",
- (float) (totalread / 1024 / timetaken));
- if (posting > 0) {
- printf(" %.2f kb/s sent\n",
- (float) (totalposted / timetaken / 1024));
- printf(" %.2f kb/s total\n",
- (float) ((totalread + totalposted) / timetaken / 1024));
- }
- }
-
- if (requests) {
- /* work out connection times */
- long i;
- apr_time_t totalcon = 0, total = 0, totald = 0, totalwait = 0;
- apr_time_t meancon, meantot, meand, meanwait;
- apr_interval_time_t mincon = AB_MAX, mintot = AB_MAX, mind = AB_MAX,
- minwait = AB_MAX;
- apr_interval_time_t maxcon = 0, maxtot = 0, maxd = 0, maxwait = 0;
- apr_interval_time_t mediancon = 0, mediantot = 0, mediand = 0, medianwait = 0;
- double sdtot = 0, sdcon = 0, sdd = 0, sdwait = 0;
-
- for (i = 0; i < requests; i++) {
- struct data s = stats[i];
- mincon = ap_min(mincon, s.ctime);
- mintot = ap_min(mintot, s.time);
- mind = ap_min(mind, s.time - s.ctime);
- minwait = ap_min(minwait, s.waittime);
-
- maxcon = ap_max(maxcon, s.ctime);
- maxtot = ap_max(maxtot, s.time);
- maxd = ap_max(maxd, s.time - s.ctime);
- maxwait = ap_max(maxwait, s.waittime);
-
- totalcon += s.ctime;
- total += s.time;
- totald += s.time - s.ctime;
- totalwait += s.waittime;
- }
- meancon = totalcon / requests;
- meantot = total / requests;
- meand = totald / requests;
- meanwait = totalwait / requests;
-
- /* calculating the sample variance: the sum of the squared deviations, divided by n-1 */
- for (i = 0; i < requests; i++) {
- struct data s = stats[i];
- double a;
- a = ((double)s.time - meantot);
- sdtot += a * a;
- a = ((double)s.ctime - meancon);
- sdcon += a * a;
- a = ((double)s.time - (double)s.ctime - meand);
- sdd += a * a;
- a = ((double)s.waittime - meanwait);
- sdwait += a * a;
- }
-
- sdtot = (requests > 1) ? sqrt(sdtot / (requests - 1)) : 0;
- sdcon = (requests > 1) ? sqrt(sdcon / (requests - 1)) : 0;
- sdd = (requests > 1) ? sqrt(sdd / (requests - 1)) : 0;
- sdwait = (requests > 1) ? sqrt(sdwait / (requests - 1)) : 0;
-
- if (gnuplot) {
- FILE *out = fopen(gnuplot, "w");
- long i;
- apr_time_t sttime;
- char tmstring[1024];/* XXXX */
- if (!out) {
- perror("Cannot open gnuplot output file");
- exit(1);
- }
- fprintf(out, "starttime\tseconds\tctime\tdtime\tttime\twait\n");
- for (i = 0; i < requests; i++) {
- apr_time_t diff = stats[i].time - stats[i].ctime;
-
- sttime = stats[i].starttime;
- (void) apr_ctime(tmstring, sttime);
- fprintf(out, "%s\t%" APR_TIME_T_FMT "\t%" APR_TIME_T_FMT "\t%" APR_TIME_T_FMT "\t%" APR_TIME_T_FMT "\t%" APR_TIME_T_FMT "\n",
- tmstring,
- sttime,
- stats[i].ctime,
- diff,
- stats[i].time,
- stats[i].waittime);
- }
- fclose(out);
- }
- /*
- * XXX: what is better; this hideous cast of the compradre function; or
- * the four warnings during compile ? dirkx just does not know and
- * hates both/
- */
- qsort(stats, requests, sizeof(struct data),
- (int (*) (const void *, const void *)) compradre);
- if ((requests > 1) && (requests % 2))
- mediancon = (stats[requests / 2].ctime + stats[requests / 2 + 1].ctime) / 2;
- else
- mediancon = stats[requests / 2].ctime;
-
- qsort(stats, requests, sizeof(struct data),
- (int (*) (const void *, const void *)) compri);
- if ((requests > 1) && (requests % 2))
- mediand = (stats[requests / 2].time + stats[requests / 2 + 1].time \
- -stats[requests / 2].ctime - stats[requests / 2 + 1].ctime) / 2;
- else
- mediand = stats[requests / 2].time - stats[requests / 2].ctime;
-
- qsort(stats, requests, sizeof(struct data),
- (int (*) (const void *, const void *)) compwait);
- if ((requests > 1) && (requests % 2))
- medianwait = (stats[requests / 2].waittime + stats[requests / 2 + 1].waittime) / 2;
- else
- medianwait = stats[requests / 2].waittime;
-
- qsort(stats, requests, sizeof(struct data),
- (int (*) (const void *, const void *)) comprando);
- if ((requests > 1) && (requests % 2))
- mediantot = (stats[requests / 2].time + stats[requests / 2 + 1].time) / 2;
- else
- mediantot = stats[requests / 2].time;
-
- printf("\nConnection Times (ms)\n");
-
- if (confidence) {
-#define CONF_FMT_STRING "%5" APR_TIME_T_FMT " %4d %5.1f %6" APR_TIME_T_FMT " %7" APR_TIME_T_FMT "\n"
- printf(" min mean[+/-sd] median max\n");
- printf("Connect: " CONF_FMT_STRING,
- mincon, (int) (meancon + 0.5), sdcon, mediancon, maxcon);
- printf("Processing: " CONF_FMT_STRING,
- mind, (int) (meand + 0.5), sdd, mediand, maxd);
- printf("Waiting: " CONF_FMT_STRING,
- minwait, (int) (meanwait + 0.5), sdwait, medianwait, maxwait);
- printf("Total: " CONF_FMT_STRING,
- mintot, (int) (meantot + 0.5), sdtot, mediantot, maxtot);
-#undef CONF_FMT_STRING
-
-#define SANE(what,mean,median,sd) \
- { \
- double d = (double)mean - median; \
- if (d < 0) d = -d; \
- if (d > 2 * sd ) \
- printf("ERROR: The median and mean for " what " are more than twice the standard\n" \
- " deviation apart. These results are NOT reliable.\n"); \
- else if (d > sd ) \
- printf("WARNING: The median and mean for " what " are not within a normal deviation\n" \
- " These results are probably not that reliable.\n"); \
- }
- SANE("the initial connection time", meancon, mediancon, sdcon);
- SANE("the processing time", meand, mediand, sdd);
- SANE("the waiting time", meanwait, medianwait, sdwait);
- SANE("the total time", meantot, mediantot, sdtot);
- }
- else {
- printf(" min avg max\n");
-#define CONF_FMT_STRING "%5" APR_TIME_T_FMT " %5" APR_TIME_T_FMT "%5" APR_TIME_T_FMT "\n"
- printf("Connect: " CONF_FMT_STRING,
- mincon, meancon, maxcon);
- printf("Processing: " CONF_FMT_STRING,
- mintot - mincon, meantot - meancon, maxtot - maxcon);
- printf("Total: " CONF_FMT_STRING,
- mintot, meantot, maxtot);
-#undef CONF_FMT_STRING
- }
-
-
- /* Sorted on total connect times */
- if (percentile && (requests > 1)) {
- printf("\nPercentage of the requests served within a certain time (ms)\n");
- for (i = 0; i < sizeof(percs) / sizeof(int); i++)
- if (percs[i] <= 0)
- printf(" 0%% <0> (never)\n");
- else if (percs[i] >= 100)
- printf(" 100%% %5" APR_TIME_T_FMT " (longest request)\n",
- stats[requests - 1].time);
- else
- printf(" %d%% %5" APR_TIME_T_FMT "\n", percs[i],
- stats[(int) (requests * percs[i] / 100)].time);
- }
- if (csvperc) {
- FILE *out = fopen(csvperc, "w");
- int i;
- if (!out) {
- perror("Cannot open CSV output file");
- exit(1);
- }
- fprintf(out, "" "Percentage served" "," "Time in ms" "\n");
- for (i = 0; i < 100; i++) {
- apr_time_t t;
- if (i == 0)
- t = stats[0].time;
- else if (i == 100)
- t = stats[requests - 1].time;
- else
- t = stats[(int) (0.5 + requests * i / 100.0)].time;
- fprintf(out, "%d,%e\n", i, (double)t);
- }
- fclose(out);
- }
-
- }
-}
-
-/* --------------------------------------------------------- */
-
-/* calculate and output results in HTML */
-
-static void output_html_results(void)
-{
- long timetaken;
-
- endtime = apr_time_now();
- timetaken = (long)((endtime - start) / 1000);
-
- printf("\n\n<table %s>\n", tablestring);
- printf("<tr %s><th colspan=2 %s>Server Software:</th>"
- "<td colspan=2 %s>%s</td></tr>\n",
- trstring, tdstring, tdstring, servername);
- printf("<tr %s><th colspan=2 %s>Server Hostname:</th>"
- "<td colspan=2 %s>%s</td></tr>\n",
- trstring, tdstring, tdstring, hostname);
- printf("<tr %s><th colspan=2 %s>Server Port:</th>"
- "<td colspan=2 %s>%hd</td></tr>\n",
- trstring, tdstring, tdstring, port);
- printf("<tr %s><th colspan=2 %s>Document Path:</th>"
- "<td colspan=2 %s>%s</td></tr>\n",
- trstring, tdstring, tdstring, path);
- printf("<tr %s><th colspan=2 %s>Document Length:</th>"
- "<td colspan=2 %s>%" APR_SIZE_T_FMT " bytes</td></tr>\n",
- trstring, tdstring, tdstring, doclen);
- printf("<tr %s><th colspan=2 %s>Concurrency Level:</th>"
- "<td colspan=2 %s>%d</td></tr>\n",
- trstring, tdstring, tdstring, concurrency);
- printf("<tr %s><th colspan=2 %s>Time taken for tests:</th>"
- "<td colspan=2 %s>%" APR_INT64_T_FMT ".%03ld seconds</td></tr>\n",
- trstring, tdstring, tdstring, apr_time_sec(timetaken),
- (long)apr_time_usec(timetaken));
- printf("<tr %s><th colspan=2 %s>Complete requests:</th>"
- "<td colspan=2 %s>%ld</td></tr>\n",
- trstring, tdstring, tdstring, done);
- printf("<tr %s><th colspan=2 %s>Failed requests:</th>"
- "<td colspan=2 %s>%ld</td></tr>\n",
- trstring, tdstring, tdstring, bad);
- if (bad)
- printf("<tr %s><td colspan=4 %s > (Connect: %d, Length: %d, Exceptions: %d)</td></tr>\n",
- trstring, tdstring, err_conn, err_length, err_except);
- if (err_response)
- printf("<tr %s><th colspan=2 %s>Non-2xx responses:</th>"
- "<td colspan=2 %s>%d</td></tr>\n",
- trstring, tdstring, tdstring, err_response);
- if (keepalive)
- printf("<tr %s><th colspan=2 %s>Keep-Alive requests:</th>"
- "<td colspan=2 %s>%ld</td></tr>\n",
- trstring, tdstring, tdstring, doneka);
- printf("<tr %s><th colspan=2 %s>Total transferred:</th>"
- "<td colspan=2 %s>%ld bytes</td></tr>\n",
- trstring, tdstring, tdstring, totalread);
- if (posting > 0)
- printf("<tr %s><th colspan=2 %s>Total POSTed:</th>"
- "<td colspan=2 %s>%ld</td></tr>\n",
- trstring, tdstring, tdstring, totalposted);
- printf("<tr %s><th colspan=2 %s>HTML transferred:</th>"
- "<td colspan=2 %s>%ld bytes</td></tr>\n",
- trstring, tdstring, tdstring, totalbread);
-
- /* avoid divide by zero */
- if (timetaken) {
- printf("<tr %s><th colspan=2 %s>Requests per second:</th>"
- "<td colspan=2 %s>%.2f</td></tr>\n",
- trstring, tdstring, tdstring, 1000 * (float) (done) / timetaken);
- printf("<tr %s><th colspan=2 %s>Transfer rate:</th>"
- "<td colspan=2 %s>%.2f kb/s received</td></tr>\n",
- trstring, tdstring, tdstring, (float) (totalread) / timetaken);
- if (posting > 0) {
- printf("<tr %s><td colspan=2 %s>&nbsp;</td>"
- "<td colspan=2 %s>%.2f kb/s sent</td></tr>\n",
- trstring, tdstring, tdstring,
- (float) (totalposted) / timetaken);
- printf("<tr %s><td colspan=2 %s>&nbsp;</td>"
- "<td colspan=2 %s>%.2f kb/s total</td></tr>\n",
- trstring, tdstring, tdstring,
- (float) (totalread + totalposted) / timetaken);
- }
- } {
- /* work out connection times */
- long i;
- apr_interval_time_t totalcon = 0, total = 0;
- apr_interval_time_t mincon = AB_MAX, mintot = AB_MAX;
- apr_interval_time_t maxcon = 0, maxtot = 0;
-
- for (i = 0; i < requests; i++) {
- struct data s = stats[i];
- mincon = ap_min(mincon, s.ctime);
- mintot = ap_min(mintot, s.time);
- maxcon = ap_max(maxcon, s.ctime);
- maxtot = ap_max(maxtot, s.time);
- totalcon += s.ctime;
- total += s.time;
- }
-
- if (requests > 0) { /* avoid division by zero (if 0 requests) */
- printf("<tr %s><th %s colspan=4>Connnection Times (ms)</th></tr>\n",
- trstring, tdstring);
- printf("<tr %s><th %s>&nbsp;</th> <th %s>min</th> <th %s>avg</th> <th %s>max</th></tr>\n",
- trstring, tdstring, tdstring, tdstring, tdstring);
- printf("<tr %s><th %s>Connect:</th>"
- "<td %s>%5" APR_TIME_T_FMT "</td>"
- "<td %s>%5" APR_TIME_T_FMT "</td>"
- "<td %s>%5" APR_TIME_T_FMT "</td></tr>\n",
- trstring, tdstring, tdstring, mincon, tdstring, totalcon / requests, tdstring, maxcon);
- printf("<tr %s><th %s>Processing:</th>"
- "<td %s>%5" APR_TIME_T_FMT "</td>"
- "<td %s>%5" APR_TIME_T_FMT "</td>"
- "<td %s>%5" APR_TIME_T_FMT "</td></tr>\n",
- trstring, tdstring, tdstring, mintot - mincon, tdstring,
- (total / requests) - (totalcon / requests), tdstring, maxtot - maxcon);
- printf("<tr %s><th %s>Total:</th>"
- "<td %s>%5" APR_TIME_T_FMT "</td>"
- "<td %s>%5" APR_TIME_T_FMT "</td>"
- "<td %s>%5" APR_TIME_T_FMT "</td></tr>\n",
- trstring, tdstring, tdstring, mintot, tdstring, total / requests, tdstring, maxtot);
- }
- printf("</table>\n");
- }
-}
-
-/* --------------------------------------------------------- */
-
-/* start asnchronous non-blocking connection */
-
-static void start_connect(struct connection * c)
-{
- apr_status_t rv;
-
-#ifdef USE_SSL
- if (ssl == 1) {
- ssl_start_connect(c);
- return;
- }
-#endif
-
- if (!(started < requests))
- return;
-
- c->read = 0;
- c->bread = 0;
- c->keepalive = 0;
- c->cbx = 0;
- c->gotheader = 0;
- c->rwrite = 0;
- if (c->ctx)
- apr_pool_destroy(c->ctx);
- apr_pool_create(&c->ctx, cntxt);
-
- if ((rv = apr_socket_create(&c->aprsock, destsa->family,
- SOCK_STREAM, c->ctx)) != APR_SUCCESS) {
- apr_err("socket", rv);
- }
- if ((rv = apr_socket_opt_set(c->aprsock, APR_SO_NONBLOCK, 1))
- != APR_SUCCESS) {
- apr_err("socket nonblock", rv);
- }
- c->start = apr_time_now();
- if ((rv = apr_connect(c->aprsock, destsa)) != APR_SUCCESS) {
- if (APR_STATUS_IS_EINPROGRESS(rv)) {
- apr_pollfd_t new_pollfd;
- c->state = STATE_CONNECTING;
- c->rwrite = 0;
- new_pollfd.desc_type = APR_POLL_SOCKET;
- new_pollfd.reqevents = APR_POLLOUT;
- new_pollfd.desc.s = c->aprsock;
- new_pollfd.client_data = c;
- apr_pollset_add(readbits, &new_pollfd);
- return;
- }
- else {
- apr_pollfd_t remove_pollfd;
- remove_pollfd.desc_type = APR_POLL_SOCKET;
- remove_pollfd.desc.s = c->aprsock;
- apr_pollset_remove(readbits, &remove_pollfd);
- apr_socket_close(c->aprsock);
- err_conn++;
- if (bad++ > 10) {
- fprintf(stderr,
- "\nTest aborted after 10 failures\n\n");
- apr_err("apr_connect()", rv);
- }
- c->state = STATE_UNCONNECTED;
- start_connect(c);
- return;
- }
- }
-
- /* connected first time */
- c->state = STATE_CONNECTED;
- started++;
- write_request(c);
-}
-
-/* --------------------------------------------------------- */
-
-/* close down connection and save stats */
-
-static void close_connection(struct connection * c)
-{
- if (c->read == 0 && c->keepalive) {
- /*
- * server has legitimately shut down an idle keep alive request
- */
- if (good)
- good--; /* connection never happened */
- }
- else {
- if (good == 1) {
- /* first time here */
- doclen = c->bread;
- }
- else if (c->bread != doclen) {
- bad++;
- err_length++;
- }
- /* save out time */
- if (done < requests) {
- struct data s;
- if ((done) && heartbeatres && !(done % heartbeatres)) {
- fprintf(stderr, "Completed %ld requests\n", done);
- fflush(stderr);
- }
- c->done = apr_time_now();
- s.read = c->read;
- s.starttime = c->start;
- s.ctime = (c->connect - c->start) / 1000;
- s.time = (c->done - c->start) / 1000;
- s.waittime = (c->beginread - c->endwrite) / 1000;
- stats[done++] = s;
- }
- }
-
-#ifdef USE_SSL
- if (ssl == 1) {
- SSL_shutdown(c->ssl);
- SSL_free(c->ssl);
- }
- else
-#endif
- {
- apr_pollfd_t remove_pollfd;
- remove_pollfd.desc_type = APR_POLL_SOCKET;
- remove_pollfd.desc.s = c->aprsock;
- apr_pollset_remove(readbits, &remove_pollfd);
- apr_socket_close(c->aprsock);
- }
- c->state = STATE_UNCONNECTED;
-
- /* connect again */
- start_connect(c);
- return;
-}
-
-/* --------------------------------------------------------- */
-
-/* read data from connection */
-
-static void read_connection(struct connection * c)
-{
- apr_size_t r;
- apr_status_t status;
- char *part;
- char respcode[4]; /* 3 digits and null */
-
- r = sizeof(buffer);
-#ifdef USE_SSL
- if (ssl == 1)
- {
- status = SSL_read (c->ssl, buffer, r);
- if (status <= 0) {
- good++; c->read = 0;
- if (status < 0) printf("SSL read failed - closing connection\n");
- close_connection(c);
- return;
- }
- r = status;
- }
- else {
-#endif
- status = apr_recv(c->aprsock, buffer, &r);
- if (APR_STATUS_IS_EAGAIN(status))
- return;
- else if (r == 0 && APR_STATUS_IS_EOF(status)) {
- good++;
- close_connection(c);
- return;
- }
- /* catch legitimate fatal apr_recv errors */
- else if (status != APR_SUCCESS) {
- err_except++; /* XXX: is this the right error counter? */
- /* XXX: Should errors here be fatal, or should we allow a
- * certain number of them before completely failing? -aaron */
- apr_err("apr_recv", status);
- }
-#ifdef USE_SSL
- }
-#endif
-
- totalread += r;
- if (c->read == 0) {
- c->beginread = apr_time_now();
- }
- c->read += r;
-
-
- if (!c->gotheader) {
- char *s;
- int l = 4;
- apr_size_t space = CBUFFSIZE - c->cbx - 1; /* -1 allows for \0 term */
- int tocopy = (space < r) ? space : r;
-#ifdef NOT_ASCII
- apr_size_t inbytes_left = space, outbytes_left = space;
-
- status = apr_xlate_conv_buffer(from_ascii, buffer, &inbytes_left,
- c->cbuff + c->cbx, &outbytes_left);
- if (status || inbytes_left || outbytes_left) {
- fprintf(stderr, "only simple translation is supported (%d/%u/%u)\n",
- status, inbytes_left, outbytes_left);
- exit(1);
- }
-#else
- memcpy(c->cbuff + c->cbx, buffer, space);
-#endif /* NOT_ASCII */
- c->cbx += tocopy;
- space -= tocopy;
- c->cbuff[c->cbx] = 0; /* terminate for benefit of strstr */
- if (verbosity >= 2) {
- printf("LOG: header received:\n%s\n", c->cbuff);
- }
- s = strstr(c->cbuff, "\r\n\r\n");
- /*
- * this next line is so that we talk to NCSA 1.5 which blatantly
- * breaks the http specifaction
- */
- if (!s) {
- s = strstr(c->cbuff, "\n\n");
- l = 2;
- }
-
- if (!s) {
- /* read rest next time */
- if (space) {
- return;
- }
- else {
- /* header is in invalid or too big - close connection */
- apr_pollfd_t remove_pollfd;
- remove_pollfd.desc_type = APR_POLL_SOCKET;
- remove_pollfd.desc.s = c->aprsock;
- apr_pollset_remove(readbits, &remove_pollfd);
- apr_socket_close(c->aprsock);
- err_response++;
- if (bad++ > 10) {
- err("\nTest aborted after 10 failures\n\n");
- }
- start_connect(c);
- }
- }
- else {
- /* have full header */
- if (!good) {
- /*
- * this is first time, extract some interesting info
- */
- char *p, *q;
- p = strstr(c->cbuff, "Server:");
- q = servername;
- if (p) {
- p += 8;
- while (*p > 32)
- *q++ = *p++;
- }
- *q = 0;
- }
- /*
- * XXX: this parsing isn't even remotely HTTP compliant... but in
- * the interest of speed it doesn't totally have to be, it just
- * needs to be extended to handle whatever servers folks want to
- * test against. -djg
- */
-
- /* check response code */
- part = strstr(c->cbuff, "HTTP"); /* really HTTP/1.x_ */
- if (part && strlen(part) > strlen("HTTP/1.x_")) {
- strncpy(respcode, (part + strlen("HTTP/1.x_")), 3);
- respcode[3] = '\0';
- }
- else {
- strcpy(respcode, "500");
- }
-
- if (respcode[0] != '2') {
- err_response++;
- if (verbosity >= 2)
- printf("WARNING: Response code not 2xx (%s)\n", respcode);
- }
- else if (verbosity >= 3) {
- printf("LOG: Response code = %s\n", respcode);
- }
- c->gotheader = 1;
- *s = 0; /* terminate at end of header */
- if (keepalive &&
- (strstr(c->cbuff, "Keep-Alive")
- || strstr(c->cbuff, "keep-alive"))) { /* for benefit of MSIIS */
- char *cl;
- cl = strstr(c->cbuff, "Content-Length:");
- /* handle NCSA, which sends Content-length: */
- if (!cl)
- cl = strstr(c->cbuff, "Content-length:");
- if (cl) {
- c->keepalive = 1;
- c->length = atoi(cl + 16);
- }
- }
- c->bread += c->cbx - (s + l - c->cbuff) + r - tocopy;
- totalbread += c->bread;
- }
- }
- else {
- /* outside header, everything we have read is entity body */
- c->bread += r;
- totalbread += r;
- }
-
- if (c->keepalive && (c->bread >= c->length)) {
- /* finished a keep-alive connection */
- good++;
- /* save out time */
- if (good == 1) {
- /* first time here */
- doclen = c->bread;
- }
- else if (c->bread != doclen) {
- bad++;
- err_length++;
- }
- if (done < requests) {
- struct data s;
- doneka++;
- if (done && heartbeatres && !(done % heartbeatres)) {
- fprintf(stderr, "Completed %ld requests\n", done);
- fflush(stderr);
- }
- c->done = apr_time_now();
- s.read = c->read;
- s.starttime = c->start;
- s.ctime = (c->connect - c->start) / 1000;
- s.waittime = (c->beginread - c->endwrite) / 1000;
- s.time = (c->done - c->start) / 1000;
- stats[done++] = s;
- }
- c->keepalive = 0;
- c->length = 0;
- c->gotheader = 0;
- c->cbx = 0;
- c->read = c->bread = 0;
- c->start = c->connect = apr_time_now(); /* zero connect time with keep-alive */
- write_request(c);
- }
-}
-
-/* --------------------------------------------------------- */
-
-/* run the tests */
-
-static void test(void)
-{
- apr_time_t now;
- apr_int16_t rv;
- long i;
- apr_status_t status;
-#ifdef NOT_ASCII
- apr_size_t inbytes_left, outbytes_left;
-#endif
-
- if (isproxy) {
- connecthost = apr_pstrdup(cntxt, proxyhost);
- connectport = proxyport;
- }
- else {
- connecthost = apr_pstrdup(cntxt, hostname);
- connectport = port;
- }
-
- if (!use_html) {
- printf("Benchmarking %s ", hostname);
- if (isproxy)
- printf("[through %s:%d] ", proxyhost, proxyport);
- printf("(be patient)%s",
- (heartbeatres ? "\n" : "..."));
- fflush(stdout);
- }
-
- now = apr_time_now();
-
- con = calloc(concurrency * sizeof(struct connection), 1);
-
- stats = calloc(requests * sizeof(struct data), 1);
-
- if ((status = apr_pollset_create(&readbits, concurrency, cntxt, 0)) != APR_SUCCESS) {
- apr_err("apr_pollset_create failed", status);
- }
-
- /* setup request */
- if (posting <= 0) {
- sprintf(request, "%s %s HTTP/1.0\r\n"
- "User-Agent: ApacheBench/%s\r\n"
- "%s" "%s" "%s"
- "Host: %s%s\r\n"
- "Accept: */*\r\n"
- "%s" "\r\n",
- (posting == 0) ? "GET" : "HEAD",
- (isproxy) ? fullurl : path,
- AP_AB_BASEREVISION,
- keepalive ? "Connection: Keep-Alive\r\n" : "",
- cookie, auth, host_field, colonhost, hdrs);
- }
- else {
- sprintf(request, "POST %s HTTP/1.0\r\n"
- "User-Agent: ApacheBench/%s\r\n"
- "%s" "%s" "%s"
- "Host: %s%s\r\n"
- "Accept: */*\r\n"
- "Content-length: %" APR_SIZE_T_FMT "\r\n"
- "Content-type: %s\r\n"
- "%s"
- "\r\n",
- (isproxy) ? fullurl : path,
- AP_AB_BASEREVISION,
- keepalive ? "Connection: Keep-Alive\r\n" : "",
- cookie, auth,
- host_field, colonhost, postlen,
- (content_type[0]) ? content_type : "text/plain", hdrs);
- }
-
- if (verbosity >= 2)
- printf("INFO: POST header == \n---\n%s\n---\n", request);
-
- reqlen = strlen(request);
-
- /*
- * Combine headers and (optional) post file into one contineous buffer
- */
- if (posting == 1) {
- char *buff = malloc(postlen + reqlen + 1);
- if (!buff) {
- fprintf(stderr, "error creating request buffer: out of memory\n");
- return;
- }
- strcpy(buff, request);
- strcpy(buff + reqlen, postdata);
- request = buff;
- }
-
-#ifdef NOT_ASCII
- inbytes_left = outbytes_left = reqlen;
- status = apr_xlate_conv_buffer(to_ascii, request, &inbytes_left,
- request, &outbytes_left);
- if (status || inbytes_left || outbytes_left) {
- fprintf(stderr, "only simple translation is supported (%d/%u/%u)\n",
- status, inbytes_left, outbytes_left);
- exit(1);
- }
-#endif /* NOT_ASCII */
-
- /* This only needs to be done once */
-#ifdef USE_SSL
- if (ssl != 1)
-#endif
- if ((rv = apr_sockaddr_info_get(&destsa, connecthost, APR_UNSPEC, connectport, 0, cntxt))
- != APR_SUCCESS) {
- char buf[120];
- apr_snprintf(buf, sizeof(buf),
- "apr_sockaddr_info_get() for %s", connecthost);
- apr_err(buf, rv);
- }
-
- /* ok - lets start */
- start = apr_time_now();
-
- /* initialise lots of requests */
- for (i = 0; i < concurrency; i++) {
- con[i].socknum = i;
- start_connect(&con[i]);
- }
-
- while (done < requests) {
- apr_int32_t n;
- apr_int32_t timed;
- const apr_pollfd_t *pollresults;
-
- /* check for time limit expiry */
- now = apr_time_now();
- timed = (apr_int32_t)apr_time_sec(now - start);
- if (tlimit && timed >= tlimit) {
- requests = done; /* so stats are correct */
- break; /* no need to do another round */
- }
-
- n = concurrency;
-#ifdef USE_SSL
- if (ssl == 1)
- status = APR_SUCCESS;
- else
-#endif
- status = apr_pollset_poll(readbits, aprtimeout, &n, &pollresults);
- if (status != APR_SUCCESS)
- apr_err("apr_poll", status);
-
- if (!n) {
- err("\nServer timed out\n\n");
- }
-
- for (i = 0; i < n; i++) {
- const apr_pollfd_t *next_fd = &(pollresults[i]);
- struct connection *c = next_fd->client_data;
-
- /*
- * If the connection isn't connected how can we check it?
- */
- if (c->state == STATE_UNCONNECTED)
- continue;
-
-#ifdef USE_SSL
- if (ssl == 1)
- rv = APR_POLLIN;
- else
-#endif
- rv = next_fd->rtnevents;
-
- /*
- * Notes: APR_POLLHUP is set after FIN is received on some
- * systems, so treat that like APR_POLLIN so that we try to read
- * again.
- *
- * Some systems return APR_POLLERR with APR_POLLHUP. We need to
- * call read_connection() for APR_POLLHUP, so check for
- * APR_POLLHUP first so that a closed connection isn't treated
- * like an I/O error. If it is, we never figure out that the
- * connection is done and we loop here endlessly calling
- * apr_poll().
- */
- if ((rv & APR_POLLIN) || (rv & APR_POLLPRI) || (rv & APR_POLLHUP))
- read_connection(c);
- if ((rv & APR_POLLERR) || (rv & APR_POLLNVAL)) {
- bad++;
- err_except++;
- start_connect(c);
- continue;
- }
- if (rv & APR_POLLOUT) {
- if (c->state == STATE_CONNECTING) {
- apr_pollfd_t remove_pollfd;
- rv = apr_connect(c->aprsock, destsa);
- remove_pollfd.desc_type = APR_POLL_SOCKET;
- remove_pollfd.desc.s = c->aprsock;
- apr_pollset_remove(readbits, &remove_pollfd);
- if (rv != APR_SUCCESS) {
- apr_socket_close(c->aprsock);
- err_conn++;
- if (bad++ > 10) {
- fprintf(stderr,
- "\nTest aborted after 10 failures\n\n");
- apr_err("apr_connect()", rv);
- }
- c->state = STATE_UNCONNECTED;
- start_connect(c);
- continue;
- }
- else {
- c->state = STATE_CONNECTED;
- write_request(c);
- }
- }
- else {
- write_request(c);
- }
- }
-
- /*
- * When using a select based poll every time we check the bits
- * are reset. In 1.3's ab we copied the FD_SET's each time
- * through, but here we're going to check the state and if the
- * connection is in STATE_READ or STATE_CONNECTING we'll add the
- * socket back in as APR_POLLIN.
- */
-#ifdef USE_SSL
- if (ssl != 1)
-#endif
- if (c->state == STATE_READ) {
- apr_pollfd_t new_pollfd;
- new_pollfd.desc_type = APR_POLL_SOCKET;
- new_pollfd.reqevents = APR_POLLIN;
- new_pollfd.desc.s = c->aprsock;
- new_pollfd.client_data = c;
- apr_pollset_add(readbits, &new_pollfd);
- }
- }
- }
-
- if (heartbeatres)
- fprintf(stderr, "Finished %ld requests\n", done);
- else
- printf("..done\n");
-
- if (use_html)
- output_html_results();
- else
- output_results();
-}
-
-/* ------------------------------------------------------- */
-
-/* display copyright information */
-static void copyright(void)
-{
- if (!use_html) {
- printf("This is ApacheBench, Version %s\n", AP_AB_BASEREVISION " <$Revision: 1.121.2.12 $> apache-2.0");
- printf("Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/\n");
- printf("Copyright (c) 2006 The Apache Software Foundation, http://www.apache.org/\n");
- printf("\n");
- }
- else {
- printf("<p>\n");
- printf(" This is ApacheBench, Version %s <i>&lt;%s&gt;</i> apache-2.0<br>\n", AP_AB_BASEREVISION, "$Revision: 1.121.2.12 $");
- printf(" Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/<br>\n");
- printf(" Copyright (c) 2006 The Apache Software Foundation, http://www.apache.org/<br>\n");
- printf("</p>\n<p>\n");
- }
-}
-
-/* display usage information */
-static void usage(const char *progname)
-{
- fprintf(stderr, "Usage: %s [options] [http"
-#ifdef USE_SSL
- "[s]"
-#endif
- "://]hostname[:port]/path\n", progname);
- fprintf(stderr, "Options are:\n");
- fprintf(stderr, " -n requests Number of requests to perform\n");
- fprintf(stderr, " -c concurrency Number of multiple requests to make\n");
- fprintf(stderr, " -t timelimit Seconds to max. wait for responses\n");
- fprintf(stderr, " -p postfile File containing data to POST\n");
- fprintf(stderr, " -T content-type Content-type header for POSTing\n");
- fprintf(stderr, " -v verbosity How much troubleshooting info to print\n");
- fprintf(stderr, " -w Print out results in HTML tables\n");
- fprintf(stderr, " -i Use HEAD instead of GET\n");
- fprintf(stderr, " -x attributes String to insert as table attributes\n");
- fprintf(stderr, " -y attributes String to insert as tr attributes\n");
- fprintf(stderr, " -z attributes String to insert as td or th attributes\n");
- fprintf(stderr, " -C attribute Add cookie, eg. 'Apache=1234. (repeatable)\n");
- fprintf(stderr, " -H attribute Add Arbitrary header line, eg. 'Accept-Encoding: gzip'\n");
- fprintf(stderr, " Inserted after all normal header lines. (repeatable)\n");
- fprintf(stderr, " -A attribute Add Basic WWW Authentication, the attributes\n");
- fprintf(stderr, " are a colon separated username and password.\n");
- fprintf(stderr, " -P attribute Add Basic Proxy Authentication, the attributes\n");
- fprintf(stderr, " are a colon separated username and password.\n");
- fprintf(stderr, " -X proxy:port Proxyserver and port number to use\n");
- fprintf(stderr, " -V Print version number and exit\n");
- fprintf(stderr, " -k Use HTTP KeepAlive feature\n");
- fprintf(stderr, " -d Do not show percentiles served table.\n");
- fprintf(stderr, " -S Do not show confidence estimators and warnings.\n");
- fprintf(stderr, " -g filename Output collected data to gnuplot format file.\n");
- fprintf(stderr, " -e filename Output CSV file with percentages served\n");
-#ifdef USE_SSL
- fprintf(stderr, " -s Use httpS instead of HTTP (SSL)\n");
-#endif
- fprintf(stderr, " -h Display usage information (this message)\n");
- exit(EINVAL);
-}
-
-/* ------------------------------------------------------- */
-
-/* split URL into parts */
-
-static int parse_url(char *url)
-{
- char *cp;
- char *h;
- char *scope_id;
- apr_status_t rv;
-
- /* Save a copy for the proxy */
- fullurl = apr_pstrdup(cntxt, url);
-
- if (strlen(url) > 7 && strncmp(url, "http://", 7) == 0) {
- url += 7;
-#ifdef USE_SSL
- ssl = 0;
-#endif
- }
- else
-#ifdef USE_SSL
- if (strlen(url) > 8 && strncmp(url, "https://", 8) == 0) {
- url += 8;
- ssl = 1;
- }
-#else
- if (strlen(url) > 8 && strncmp(url, "https://", 8) == 0) {
- fprintf(stderr, "SSL not compiled in; no https support\n");
- exit(1);
- }
-#endif
-
- if ((cp = strchr(url, '/')) == NULL)
- return 1;
- h = apr_palloc(cntxt, cp - url + 1);
- memcpy(h, url, cp - url);
- h[cp - url] = '\0';
- rv = apr_parse_addr_port(&hostname, &scope_id, &port, h, cntxt);
- if (rv != APR_SUCCESS || !hostname || scope_id) {
- return 1;
- }
- path = apr_pstrdup(cntxt, cp);
- *cp = '\0';
- if (*url == '[') { /* IPv6 numeric address string */
- host_field = apr_psprintf(cntxt, "[%s]", hostname);
- }
- else {
- host_field = hostname;
- }
-
- if (port == 0) { /* no port specified */
-#ifdef USE_SSL
- if (ssl == 1)
- port = 443;
- else
-#endif
- port = 80;
- }
-
- if ((
-#ifdef USE_SSL
- (ssl == 1) && (port != 443)) || (( ssl == 0 ) &&
-#endif
- (port != 80)))
- {
- colonhost = apr_psprintf(cntxt,":%d",port);
- } else
- colonhost = "";
- return 0;
-}
-
-/* ------------------------------------------------------- */
-
-/* read data to POST from file, save contents and length */
-
-static int open_postfile(const char *pfile)
-{
- apr_file_t *postfd = NULL;
- apr_finfo_t finfo;
- apr_fileperms_t mode = APR_OS_DEFAULT;
- apr_size_t length;
- apr_status_t rv;
- char errmsg[120];
-
- rv = apr_file_open(&postfd, pfile, APR_READ, mode, cntxt);
- if (rv != APR_SUCCESS) {
- printf("Invalid postfile name (%s): %s\n", pfile,
- apr_strerror(rv, errmsg, sizeof errmsg));
- return rv;
- }
-
- apr_file_info_get(&finfo, APR_FINFO_NORM, postfd);
- postlen = (apr_size_t)finfo.size;
- postdata = (char *) malloc(postlen);
- if (!postdata) {
- printf("Can\'t alloc postfile buffer\n");
- return APR_ENOMEM;
- }
- length = postlen;
- rv = apr_file_read(postfd, postdata, &length);
- if (rv != APR_SUCCESS) {
- printf("error reading postfile: %s\n",
- apr_strerror(rv, errmsg, sizeof errmsg));
- return rv;
- }
- if (length != postlen) {
- printf("error reading postfile: read only %"
- APR_SIZE_T_FMT " bytes",
- length);
- return APR_EINVAL;
- }
- apr_file_close(postfd);
- return 0;
-}
-
-/* ------------------------------------------------------- */
-
-/* sort out command-line args and call test */
-int main(int argc, const char * const argv[])
-{
- int r, l;
- char tmp[1024];
- apr_status_t status;
- apr_getopt_t *opt;
- const char *optarg;
- char c;
-
- /* table defaults */
- tablestring = "";
- trstring = "";
- tdstring = "bgcolor=white";
- cookie = "";
- auth = "";
- proxyhost[0] = '\0';
- hdrs = "";
-
- apr_app_initialize(&argc, &argv, NULL);
- atexit(apr_terminate);
- apr_pool_create(&cntxt, NULL);
-
-#ifdef NOT_ASCII
- status = apr_xlate_open(&to_ascii, "ISO8859-1", APR_DEFAULT_CHARSET, cntxt);
- if (status) {
- fprintf(stderr, "apr_xlate_open(to ASCII)->%d\n", status);
- exit(1);
- }
- status = apr_xlate_open(&from_ascii, APR_DEFAULT_CHARSET, "ISO8859-1", cntxt);
- if (status) {
- fprintf(stderr, "apr_xlate_open(from ASCII)->%d\n", status);
- exit(1);
- }
- status = apr_base64init_ebcdic(to_ascii, from_ascii);
- if (status) {
- fprintf(stderr, "apr_base64init_ebcdic()->%d\n", status);
- exit(1);
- }
-#endif
-
- apr_getopt_init(&opt, cntxt, argc, argv);
- while ((status = apr_getopt(opt, "n:c:t:T:p:v:kVhwix:y:z:C:H:P:A:g:X:de:Sq"
-#ifdef USE_SSL
- "s"
-#endif
- ,&c, &optarg)) == APR_SUCCESS) {
- switch (c) {
- case 's':
-#ifdef USE_SSL
- ssl = 1;
- break;
-#else
- fprintf(stderr, "SSL not compiled in; no https support\n");
- exit(1);
-#endif
- case 'n':
- requests = atoi(optarg);
- if (!requests) {
- err("Invalid number of requests\n");
- }
- break;
- case 'k':
- keepalive = 1;
- break;
- case 'q':
- heartbeatres = 0;
- break;
- case 'c':
- concurrency = atoi(optarg);
- break;
- case 'i':
- if (posting == 1)
- err("Cannot mix POST and HEAD\n");
- posting = -1;
- break;
- case 'g':
- gnuplot = strdup(optarg);
- break;
- case 'd':
- percentile = 0;
- break;
- case 'e':
- csvperc = strdup(optarg);
- break;
- case 'S':
- confidence = 0;
- break;
- case 'p':
- if (posting != 0)
- err("Cannot mix POST and HEAD\n");
-
- if (0 == (r = open_postfile(optarg))) {
- posting = 1;
- }
- else if (postdata) {
- exit(r);
- }
- break;
- case 'v':
- verbosity = atoi(optarg);
- break;
- case 't':
- tlimit = atoi(optarg);
- requests = MAX_REQUESTS; /* need to size data array on
- * something */
- break;
- case 'T':
- strcpy(content_type, optarg);
- break;
- case 'C':
- cookie = apr_pstrcat(cntxt, "Cookie: ", optarg, "\r\n", NULL);
- break;
- case 'A':
- /*
- * assume username passwd already to be in colon separated form.
- * Ready to be uu-encoded.
- */
- while (apr_isspace(*optarg))
- optarg++;
- if (apr_base64_encode_len(strlen(optarg)) > sizeof(tmp)) {
- err("Authentication credentials too long\n");
- }
- l = apr_base64_encode(tmp, optarg, strlen(optarg));
- tmp[l] = '\0';
-
- auth = apr_pstrcat(cntxt, auth, "Authorization: Basic ", tmp,
- "\r\n", NULL);
- break;
- case 'P':
- /*
- * assume username passwd already to be in colon separated form.
- */
- while (apr_isspace(*optarg))
- optarg++;
- if (apr_base64_encode_len(strlen(optarg)) > sizeof(tmp)) {
- err("Proxy credentials too long\n");
- }
- l = apr_base64_encode(tmp, optarg, strlen(optarg));
- tmp[l] = '\0';
-
- auth = apr_pstrcat(cntxt, auth, "Proxy-Authorization: Basic ",
- tmp, "\r\n", NULL);
- break;
- case 'H':
- hdrs = apr_pstrcat(cntxt, hdrs, optarg, "\r\n", NULL);
- break;
- case 'w':
- use_html = 1;
- break;
- /*
- * if any of the following three are used, turn on html output
- * automatically
- */
- case 'x':
- use_html = 1;
- tablestring = optarg;
- break;
- case 'X':
- {
- char *p;
- /*
- * assume proxy-name[:port]
- */
- if ((p = strchr(optarg, ':'))) {
- *p = '\0';
- p++;
- proxyport = atoi(p);
- }
- strcpy(proxyhost, optarg);
- isproxy = 1;
- }
- break;
- case 'y':
- use_html = 1;
- trstring = optarg;
- break;
- case 'z':
- use_html = 1;
- tdstring = optarg;
- break;
- case 'h':
- usage(argv[0]);
- break;
- case 'V':
- copyright();
- return 0;
- }
- }
-
- if (opt->ind != argc - 1) {
- fprintf(stderr, "%s: wrong number of arguments\n", argv[0]);
- usage(argv[0]);
- }
-
- if (parse_url(apr_pstrdup(cntxt, opt->argv[opt->ind++]))) {
- fprintf(stderr, "%s: invalid URL\n", argv[0]);
- usage(argv[0]);
- }
-
- if ((concurrency < 0) || (concurrency > MAX_CONCURRENCY)) {
- fprintf(stderr, "%s: Invalid Concurrency [Range 0..%d]\n",
- argv[0], MAX_CONCURRENCY);
- usage(argv[0]);
- }
-
- if ((heartbeatres) && (requests > 150)) {
- heartbeatres = requests / 10; /* Print line every 10% of requests */
- if (heartbeatres < 100)
- heartbeatres = 100; /* but never more often than once every 100
- * connections. */
- }
- else
- heartbeatres = 0;
-
-#ifdef USE_SSL
-#ifdef RSAREF
- R_malloc_init();
-#else
- CRYPTO_malloc_init();
-#endif
- SSL_load_error_strings();
- SSL_library_init();
- bio_out=BIO_new_fp(stdout,BIO_NOCLOSE);
- bio_err=BIO_new_fp(stderr,BIO_NOCLOSE);
-
- /* TODO: Allow force SSLv2_client_method() (TLSv1?) */
- if (!(ctx = SSL_CTX_new(SSLv23_client_method()))) {
- fprintf(stderr, "Could not init SSL CTX");
- ERR_print_errors_fp(stderr);
- exit(1);
- }
- SSL_CTX_set_options(ctx, SSL_OP_ALL);
-#ifdef USE_THREADS
- ssl_util_thread_setup(cntxt);
-#endif
-#endif
-#ifdef SIGPIPE
- apr_signal(SIGPIPE, SIG_IGN); /* Ignore writes to connections that
- * have been closed at the other end. */
-#endif
- copyright();
- test();
- apr_pool_destroy(cntxt);
-
- return 0;
-}
diff --git a/rubbos/app/httpd-2.0.64/support/ab.dsp b/rubbos/app/httpd-2.0.64/support/ab.dsp
deleted file mode 100644
index c3866ba3..00000000
--- a/rubbos/app/httpd-2.0.64/support/ab.dsp
+++ /dev/null
@@ -1,123 +0,0 @@
-# Microsoft Developer Studio Project File - Name="ab" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=ab - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "ab.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "ab.mak" CFG="ab - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "ab - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "ab - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "ab - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /FD /c
-# ADD CPP /nologo /MD /W3 /Zi /O2 /I "../srclib/apr/include" /I "../srclib/apr-util/include" /I "../include" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /Fd"Release/ab_src" /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib wsock32.lib ws2_32.lib shell32.lib /nologo /subsystem:console
-# ADD LINK32 kernel32.lib advapi32.lib wsock32.lib ws2_32.lib shell32.lib /nologo /subsystem:console /debug /opt:ref
-
-!ELSEIF "$(CFG)" == "ab - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MDd /W3 /EHsc /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /FD /c
-# ADD CPP /nologo /MDd /W3 /EHsc /Zi /Od /I "../srclib/apr/include" /I "../srclib/apr-util/include" /I "../include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /Fd"Debug/ab_src" /FD /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib advapi32.lib wsock32.lib ws2_32.lib shell32.lib /nologo /subsystem:console /incremental:no /debug
-# ADD LINK32 kernel32.lib advapi32.lib wsock32.lib ws2_32.lib shell32.lib /nologo /subsystem:console /incremental:no /debug
-
-!ENDIF
-
-# Begin Target
-
-# Name "ab - Win32 Release"
-# Name "ab - Win32 Debug"
-# Begin Source File
-
-SOURCE=.\ab.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\ab.rc
-# End Source File
-# Begin Source File
-
-SOURCE=..\build\win32\win32ver.awk
-
-!IF "$(CFG)" == "ab - Win32 Release"
-
-# PROP Ignore_Default_Tool 1
-# Begin Custom Build - Creating Version Resource
-InputPath=..\build\win32\win32ver.awk
-
-".\ab.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- awk -f ../build/win32/win32ver.awk ab.exe "ApacheBench Utility" ../include/ap_release.h > .\ab.rc
-
-# End Custom Build
-
-!ELSEIF "$(CFG)" == "ab - Win32 Debug"
-
-# PROP Ignore_Default_Tool 1
-# Begin Custom Build - Creating Version Resource
-InputPath=..\build\win32\win32ver.awk
-
-".\ab.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- awk -f ../build/win32/win32ver.awk ab.exe "ApacheBench Utility" ../include/ap_release.h > .\ab.rc
-
-# End Custom Build
-
-!ENDIF
-
-# End Source File
-# End Target
-# End Project
diff --git a/rubbos/app/httpd-2.0.64/support/ab.lo b/rubbos/app/httpd-2.0.64/support/ab.lo
deleted file mode 100644
index a7d38649..00000000
--- a/rubbos/app/httpd-2.0.64/support/ab.lo
+++ /dev/null
@@ -1,12 +0,0 @@
-# ab.lo - a libtool object file
-# Generated by ltmain.sh - GNU libtool 1.5.26 (1.1220.2.493 2008/02/01 16:58:18)
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# Name of the PIC object.
-pic_object='.libs/ab.o'
-
-# Name of the non-PIC object.
-non_pic_object='ab.o'
-
diff --git a/rubbos/app/httpd-2.0.64/support/ab.o b/rubbos/app/httpd-2.0.64/support/ab.o
deleted file mode 100644
index 446096ca..00000000
--- a/rubbos/app/httpd-2.0.64/support/ab.o
+++ /dev/null
Binary files differ
diff --git a/rubbos/app/httpd-2.0.64/support/abs.dsp b/rubbos/app/httpd-2.0.64/support/abs.dsp
deleted file mode 100644
index f44242d8..00000000
--- a/rubbos/app/httpd-2.0.64/support/abs.dsp
+++ /dev/null
@@ -1,134 +0,0 @@
-# Microsoft Developer Studio Project File - Name="abs" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=abs - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "abs.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "abs.mak" CFG="abs - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "abs - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "abs - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "abs - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /D "SSL" /FD /c
-# ADD CPP /nologo /MD /W3 /Zi /O2 /I "../srclib/apr/include" /I "../srclib/apr-util/include" /I "../include" /I "../srclib/openssl/inc32/openssl" /I "../srclib/openssl/inc32" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /D "USE_SSL" /D "WIN32_LEAN_AND_MEAN" /D "NO_IDEA" /D "NO_RC5" /D "NO_MDC2" /D "OPENSSL_NO_IDEA" /D "OPENSSL_NO_RC5" /D "OPENSSL_NO_MDC2" /Fd"Release/abs_src" /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib wsock32.lib ws2_32.lib shell32.lib ssleay32.lib libeay32.lib /nologo /subsystem:console /libpath:"../srclib/openssl/out32dll"
-# ADD LINK32 kernel32.lib advapi32.lib wsock32.lib ws2_32.lib shell32.lib ssleay32.lib libeay32.lib /nologo /subsystem:console /debug /libpath:"../srclib/openssl/out32dll" /opt:ref
-
-!ELSEIF "$(CFG)" == "abs - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MDd /W3 /EHsc /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /D "SSL" /FD /c
-# ADD CPP /nologo /MDd /W3 /EHsc /Zi /Od /I "../srclib/apr/include" /I "../srclib/apr-util/include" /I "../include" /I "../srclib/openssl/inc32/openssl" /I "../srclib/openssl/inc32" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /D "USE_SSL" /D "WIN32_LEAN_AND_MEAN" /D "NO_IDEA" /D "NO_RC5" /D "NO_MDC2" /D "OPENSSL_NO_IDEA" /D "OPENSSL_NO_RC5" /D "OPENSSL_NO_MDC2" /Fd"Debug/abs_src" /FD /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib advapi32.lib wsock32.lib ws2_32.lib shell32.lib ssleay32.lib libeay32.lib /nologo /subsystem:console /incremental:no /debug /libpath:"../srclib/openssl/out32dll"
-# ADD LINK32 kernel32.lib advapi32.lib wsock32.lib ws2_32.lib shell32.lib ssleay32.lib libeay32.lib /nologo /subsystem:console /incremental:no /debug /libpath:"../srclib/openssl/out32dll"
-
-!ENDIF
-
-# Begin Target
-
-# Name "abs - Win32 Release"
-# Name "abs - Win32 Debug"
-# Begin Source File
-
-SOURCE=.\ab.c
-
-!IF "$(CFG)" == "abs - Win32 Release"
-
-# ADD CPP /Fo"Release/abs.obj"
-
-!ELSEIF "$(CFG)" == "abs - Win32 Debug"
-
-# ADD CPP /Fo"Debug/abs.obj"
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\abs.rc
-# End Source File
-# Begin Source File
-
-SOURCE=..\build\win32\win32ver.awk
-
-!IF "$(CFG)" == "abs - Win32 Release"
-
-# PROP Ignore_Default_Tool 1
-# Begin Custom Build - Creating Version Resource
-InputPath=..\build\win32\win32ver.awk
-
-".\abs.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- awk -f ../build/win32/win32ver.awk ab.exe "ApacheBench/SSL Utility" ../include/ap_release.h > .\abs.rc
-
-# End Custom Build
-
-!ELSEIF "$(CFG)" == "abs - Win32 Debug"
-
-# PROP Ignore_Default_Tool 1
-# Begin Custom Build - Creating Version Resource
-InputPath=..\build\win32\win32ver.awk
-
-".\abs.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- awk -f ../build/win32/win32ver.awk ab.exe "ApacheBench/SSL Utility" ../include/ap_release.h > .\abs.rc
-
-# End Custom Build
-
-!ENDIF
-
-# End Source File
-# End Target
-# End Project
diff --git a/rubbos/app/httpd-2.0.64/support/apachectl b/rubbos/app/httpd-2.0.64/support/apachectl
deleted file mode 100644
index 5eb2fe95..00000000
--- a/rubbos/app/httpd-2.0.64/support/apachectl
+++ /dev/null
@@ -1,103 +0,0 @@
-#!/bin/sh
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#
-# Apache control script designed to allow an easy command line interface
-# to controlling Apache. Written by Marc Slemko, 1997/08/23
-#
-# The exit codes returned are:
-# XXX this doc is no longer correct now that the interesting
-# XXX functions are handled by httpd
-# 0 - operation completed successfully
-# 1 -
-# 2 - usage error
-# 3 - httpd could not be started
-# 4 - httpd could not be stopped
-# 5 - httpd could not be started during a restart
-# 6 - httpd could not be restarted during a restart
-# 7 - httpd could not be restarted during a graceful restart
-# 8 - configuration syntax error
-#
-# When multiple arguments are given, only the error from the _last_
-# one is reported. Run "apachectl help" for usage info
-#
-ARGV="$@"
-#
-# |||||||||||||||||||| START CONFIGURATION SECTION ||||||||||||||||||||
-# -------------------- --------------------
-#
-# the path to your httpd binary, including options if necessary
-HTTPD='/bottlenecks/rubbos/app/apache2/bin/httpd'
-#
-# pick up any necessary environment variables
-if test -f /bottlenecks/rubbos/app/apache2/bin/envvars; then
- . /bottlenecks/rubbos/app/apache2/bin/envvars
-fi
-#
-# a command that outputs a formatted text version of the HTML at the
-# url given on the command line. Designed for lynx, however other
-# programs may work.
-LYNX="lynx -dump"
-#
-# the URL to your server's mod_status status page. If you do not
-# have one, then status and fullstatus will not work.
-STATUSURL="http://localhost:80/server-status"
-#
-# Set this variable to a command that increases the maximum
-# number of file descriptors allowed per child process. This is
-# critical for configurations that use many file descriptors,
-# such as mass vhosting, or a multithreaded server.
-ULIMIT_MAX_FILES="ulimit -S -n `ulimit -H -n`"
-# -------------------- --------------------
-# |||||||||||||||||||| END CONFIGURATION SECTION ||||||||||||||||||||
-
-# Set the maximum number of file descriptors allowed per child process.
-if [ "x$ULIMIT_MAX_FILES" != "x" ] ; then
- $ULIMIT_MAX_FILES
-fi
-
-ERROR=0
-if [ "x$ARGV" = "x" ] ; then
- ARGV="-h"
-fi
-
-case $ARGV in
-start|stop|restart|graceful)
- $HTTPD -k $ARGV
- ERROR=$?
- ;;
-startssl|sslstart|start-SSL)
- $HTTPD -k start -DSSL
- ERROR=$?
- ;;
-configtest)
- $HTTPD -t
- ERROR=$?
- ;;
-status)
- $LYNX $STATUSURL | awk ' /process$/ { print; exit } { print } '
- ;;
-fullstatus)
- $LYNX $STATUSURL
- ;;
-*)
- $HTTPD $ARGV
- ERROR=$?
-esac
-
-exit $ERROR
-
diff --git a/rubbos/app/httpd-2.0.64/support/apachectl.in b/rubbos/app/httpd-2.0.64/support/apachectl.in
deleted file mode 100644
index 58732d07..00000000
--- a/rubbos/app/httpd-2.0.64/support/apachectl.in
+++ /dev/null
@@ -1,103 +0,0 @@
-#!/bin/sh
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#
-# Apache control script designed to allow an easy command line interface
-# to controlling Apache. Written by Marc Slemko, 1997/08/23
-#
-# The exit codes returned are:
-# XXX this doc is no longer correct now that the interesting
-# XXX functions are handled by httpd
-# 0 - operation completed successfully
-# 1 -
-# 2 - usage error
-# 3 - httpd could not be started
-# 4 - httpd could not be stopped
-# 5 - httpd could not be started during a restart
-# 6 - httpd could not be restarted during a restart
-# 7 - httpd could not be restarted during a graceful restart
-# 8 - configuration syntax error
-#
-# When multiple arguments are given, only the error from the _last_
-# one is reported. Run "apachectl help" for usage info
-#
-ARGV="$@"
-#
-# |||||||||||||||||||| START CONFIGURATION SECTION ||||||||||||||||||||
-# -------------------- --------------------
-#
-# the path to your httpd binary, including options if necessary
-HTTPD='@exp_sbindir@/@progname@'
-#
-# pick up any necessary environment variables
-if test -f @exp_sbindir@/envvars; then
- . @exp_sbindir@/envvars
-fi
-#
-# a command that outputs a formatted text version of the HTML at the
-# url given on the command line. Designed for lynx, however other
-# programs may work.
-LYNX="lynx -dump"
-#
-# the URL to your server's mod_status status page. If you do not
-# have one, then status and fullstatus will not work.
-STATUSURL="http://localhost:@PORT@/server-status"
-#
-# Set this variable to a command that increases the maximum
-# number of file descriptors allowed per child process. This is
-# critical for configurations that use many file descriptors,
-# such as mass vhosting, or a multithreaded server.
-ULIMIT_MAX_FILES="@APACHECTL_ULIMIT@"
-# -------------------- --------------------
-# |||||||||||||||||||| END CONFIGURATION SECTION ||||||||||||||||||||
-
-# Set the maximum number of file descriptors allowed per child process.
-if [ "x$ULIMIT_MAX_FILES" != "x" ] ; then
- $ULIMIT_MAX_FILES
-fi
-
-ERROR=0
-if [ "x$ARGV" = "x" ] ; then
- ARGV="-h"
-fi
-
-case $ARGV in
-start|stop|restart|graceful)
- $HTTPD -k $ARGV
- ERROR=$?
- ;;
-startssl|sslstart|start-SSL)
- $HTTPD -k start -DSSL
- ERROR=$?
- ;;
-configtest)
- $HTTPD -t
- ERROR=$?
- ;;
-status)
- $LYNX $STATUSURL | awk ' /process$/ { print; exit } { print } '
- ;;
-fullstatus)
- $LYNX $STATUSURL
- ;;
-*)
- $HTTPD $ARGV
- ERROR=$?
-esac
-
-exit $ERROR
-
diff --git a/rubbos/app/httpd-2.0.64/support/apxs b/rubbos/app/httpd-2.0.64/support/apxs
deleted file mode 100644
index 4b3b702d..00000000
--- a/rubbos/app/httpd-2.0.64/support/apxs
+++ /dev/null
@@ -1,778 +0,0 @@
-#!/usr/bin/perl -w
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-require 5.003;
-use strict;
-package apxs;
-
-##
-## Configuration
-##
-
-my %config_vars = ();
-
-my $installbuilddir = "/bottlenecks/rubbos/app/apache2/build";
-get_config_vars("$installbuilddir/config_vars.mk",\%config_vars);
-
-# read the configuration variables once
-
-my $prefix = get_vars("prefix");
-my $CFG_PREFIX = $prefix;
-my $exec_prefix = get_vars("exec_prefix");
-my $datadir = get_vars("datadir");
-my $localstatedir = get_vars("localstatedir");
-my $CFG_TARGET = get_vars("progname");
-my $CFG_SYSCONFDIR = get_vars("sysconfdir");
-my $CFG_CFLAGS = join ' ', map { get_vars($_) }
- qw(SHLTCFLAGS CFLAGS NOTEST_CPPFLAGS EXTRA_CPPFLAGS EXTRA_CFLAGS);
-my $includedir = get_vars("includedir");
-my $CFG_INCLUDEDIR = eval qq("$includedir");
-my $CFG_CC = get_vars("CC");
-my $libexecdir = get_vars("libexecdir");
-my $CFG_LIBEXECDIR = eval qq("$libexecdir");
-my $sbindir = get_vars("sbindir");
-my $CFG_SBINDIR = eval qq("$sbindir");
-my $ltflags = $ENV{'LTFLAGS'};
-$ltflags or $ltflags = "--silent";
-
-my %internal_vars = map {$_ => 1}
- qw(TARGET CC CFLAGS CFLAGS_SHLIB LD_SHLIB LDFLAGS_SHLIB LIBS_SHLIB
- PREFIX SBINDIR INCLUDEDIR LIBEXECDIR SYSCONFDIR);
-
-##
-## parse argument line
-##
-
-# defaults for parameters
-my $opt_n = '';
-my $opt_g = '';
-my $opt_c = 0;
-my $opt_o = '';
-my @opt_D = ();
-my @opt_I = ();
-my @opt_L = ();
-my @opt_l = ();
-my @opt_W = ();
-my @opt_S = ();
-my $opt_e = 0;
-my $opt_i = 0;
-my $opt_a = 0;
-my $opt_A = 0;
-my $opt_q = 0;
-my $opt_h = 0;
-my $opt_p = 0;
-
-# this subroutine is derived from Perl's getopts.pl with the enhancement of
-# the "+" metacharacter at the format string to allow a list to be built by
-# subsequent occurrences of the same option.
-sub Getopts {
- my ($argumentative, @ARGV) = @_;
- my $errs = 0;
- local $_;
- local $[ = 0;
-
- my @args = split / */, $argumentative;
- while (@ARGV && ($_ = $ARGV[0]) =~ /^-(.)(.*)/) {
- my ($first, $rest) = ($1,$2);
- if ($_ =~ m|^--$|) {
- shift @ARGV;
- last;
- }
- my $pos = index($argumentative,$first);
- if ($pos >= $[) {
- if ($pos < $#args && $args[$pos+1] eq ':') {
- shift @ARGV;
- if ($rest eq '') {
- unless (@ARGV) {
- error("Incomplete option: $first (needs an argument)");
- $errs++;
- }
- $rest = shift(@ARGV);
- }
- eval "\$opt_$first = \$rest;";
- }
- elsif ($pos < $#args && $args[$pos+1] eq '+') {
- shift @ARGV;
- if ($rest eq '') {
- unless (@ARGV) {
- error("Incomplete option: $first (needs an argument)");
- $errs++;
- }
- $rest = shift(@ARGV);
- }
- eval "push(\@opt_$first, \$rest);";
- }
- else {
- eval "\$opt_$first = 1";
- if ($rest eq '') {
- shift(@ARGV);
- }
- else {
- $ARGV[0] = "-$rest";
- }
- }
- }
- else {
- error("Unknown option: $first");
- $errs++;
- if ($rest ne '') {
- $ARGV[0] = "-$rest";
- }
- else {
- shift(@ARGV);
- }
- }
- }
- return ($errs == 0, @ARGV);
-}
-
-sub usage {
- print STDERR "Usage: apxs -g [-S <var>=<val>] -n <modname>\n";
- print STDERR " apxs -q [-S <var>=<val>] <query> ...\n";
- print STDERR " apxs -c [-S <var>=<val>] [-o <dsofile>] [-D <name>[=<value>]]\n";
- print STDERR " [-I <incdir>] [-L <libdir>] [-l <libname>] [-Wc,<flags>]\n";
- print STDERR " [-Wl,<flags>] [-p] <files> ...\n";
- print STDERR " apxs -i [-S <var>=<val>] [-a] [-A] [-n <modname>] <dsofile> ...\n";
- print STDERR " apxs -e [-S <var>=<val>] [-a] [-A] [-n <modname>] <dsofile> ...\n";
- exit(1);
-}
-
-# option handling
-my $rc;
-($rc, @ARGV) = &Getopts("qn:gco:I+D+L+l+W+S+eiaAp", @ARGV);
-&usage if ($rc == 0);
-&usage if ($#ARGV == -1 and not $opt_g);
-&usage if (not $opt_q and not ($opt_g and $opt_n) and not $opt_i and not $opt_c and not $opt_e);
-
-# argument handling
-my @args = @ARGV;
-my $name = 'unknown';
-$name = $opt_n if ($opt_n ne '');
-
-if (@opt_S) {
- my ($opt_S);
- foreach $opt_S (@opt_S) {
- if ($opt_S =~ m/^([^=]+)=(.*)$/) {
- my ($var) = $1;
- my ($val) = $2;
- my $oldval = eval "\$CFG_$var";
-
- unless ($var and $oldval) {
- print STDERR "apxs:Error: no config variable $var\n";
- &usage;
- }
-
- eval "\$CFG_${var}=\"${val}\"";
- } else {
- print STDERR "apxs:Error: malformatted -S option\n";
- &usage;
- }
- }
-}
-
-##
-## Initial shared object support check
-##
-my $httpd = get_vars("sbindir") . "/" . get_vars("progname");
-$httpd = eval qq("$httpd");
-$httpd = eval qq("$httpd");
-my $envvars = get_vars("sbindir") . "/envvars";
-$envvars = eval qq("$envvars");
-$envvars = eval qq("$envvars");
-
-#allow apxs to be run from the source tree, before installation
-if ($0 =~ m:support/apxs$:) {
- ($httpd = $0) =~ s:support/apxs$::;
-}
-
-unless (-x "$httpd") {
- error("$httpd not found or not executable");
- exit 1;
-}
-
-unless (grep /mod_so/, `. $envvars && $httpd -l`) {
- error("Sorry, no shared object support for Apache");
- error("available under your platform. Make sure");
- error("the Apache module mod_so is compiled into");
- error("your server binary `$httpd'.");
- exit 1;
-}
-
-sub get_config_vars{
- my ($file, $rh_config) = @_;
-
- open IN, $file or die "cannot open $file: $!";
- while (<IN>){
- if (/^\s*(.*?)\s*=\s*(.*)$/){
- $rh_config->{$1} = $2;
- }
- }
- close IN;
-}
-
-sub get_vars {
- my $result = '';
- my $ok = 0;
- my $arg;
- foreach $arg (@_) {
- if (exists $config_vars{$arg} or exists $config_vars{lc $arg}) {
- my $val = exists $config_vars{$arg}
- ? $config_vars{$arg}
- : $config_vars{lc $arg};
- $val =~ s/[()]//g;
- $result .= eval "qq($val)" if defined $val;
- $result .= ";;";
- $ok = 1;
- }
- if (not $ok) {
- if (exists $internal_vars{$arg} or exists $internal_vars{lc $arg}) {
- my $val = exists $internal_vars{$arg} ? $arg : lc $arg;
- $val = eval "\$CFG_$val";
- $result .= eval "qq($val)" if defined $val;
- $result .= ";;";
- $ok = 1;
- }
- if (not $ok) {
- error("Invalid query string `$arg'");
- exit(1);
- }
- }
- }
- $result =~ s|;;$||;
- $result =~ s|:| |;
- return $result;
-}
-
-##
-## Operation
-##
-
-# helper function for executing a list of
-# system command with return code checks
-sub execute_cmds {
- my (@cmds) = @_;
- my ($cmd, $rc);
-
- foreach $cmd (@cmds) {
- notice($cmd);
- $rc = system $cmd;
- if ($rc) {
- error(sprintf "Command failed with rc=%d\n", $rc << 8);
- exit 1 ;
- }
- }
-}
-
-if ($opt_g) {
- ##
- ## SAMPLE MODULE SOURCE GENERATION
- ##
-
- if (-d $name) {
- error("Directory `$name' already exists. Remove first");
- exit(1);
- }
-
- my $data = join('', <DATA>);
- $data =~ s|%NAME%|$name|sg;
- $data =~ s|%TARGET%|$CFG_TARGET|sg;
- $data =~ s|%PREFIX%|$prefix|sg;
- $data =~ s|%INSTALLBUILDDIR%|$installbuilddir|sg;
-
- my ($mkf, $mods, $src) = ($data =~ m|^(.+)-=#=-\n(.+)-=#=-\n(.+)|s);
-
- notice("Creating [DIR] $name");
- system("mkdir $name");
- notice("Creating [FILE] $name/Makefile");
- open(FP, ">${name}/Makefile") || die;
- print FP $mkf;
- close(FP);
- notice("Creating [FILE] $name/modules.mk");
- open(FP, ">${name}/modules.mk") || die;
- print FP $mods;
- close(FP);
- notice("Creating [FILE] $name/mod_$name.c");
- open(FP, ">${name}/mod_${name}.c") || die;
- print FP $src;
- close(FP);
- notice("Creating [FILE] $name/.deps");
- system("touch ${name}/.deps");
-
- exit(0);
-}
-
-
-if ($opt_q) {
- ##
- ## QUERY INFORMATION
- ##
- my $result = get_vars(@args);
- print "$result\n";
-}
-
-my $apr_bindir = get_vars("APR_BINDIR");
-
-if (! -x "$apr_bindir/apr-config") {
- error("$apr_bindir/apr-config not found!");
- exit(1);
-}
-
-my $apu_bindir = get_vars("APU_BINDIR");
-
-if (! -x "$apu_bindir/apu-config") {
- error("$apu_bindir/apu-config not found!");
- exit(1);
-}
-
-my $libtool = `$apr_bindir/apr-config --installbuilddir`;
-chomp($libtool);
-$libtool = "$libtool/libtool";
-
-my $apr_includedir = `$apr_bindir/apr-config --includes`;
-chomp($apr_includedir);
-my $apu_includedir = `$apu_bindir/apu-config --includes`;
-chomp($apu_includedir);
-
-if ($opt_c) {
- ##
- ## SHARED OBJECT COMPILATION
- ##
-
- # split files into sources and objects
- my @srcs = ();
- my @objs = ();
- my $f;
- foreach $f (@args) {
- if ($f =~ m|\.c$|) {
- push(@srcs, $f);
- }
- else {
- push(@objs, $f);
- }
- }
-
- # determine output file
- my $dso_file;
- if ($opt_o eq '') {
- if ($#srcs > -1) {
- $dso_file = $srcs[0];
- $dso_file =~ s|\.[^.]+$|.la|;
- }
- elsif ($#objs > -1) {
- $dso_file = $objs[0];
- $dso_file =~ s|\.[^.]+$|.la|;
- }
- else {
- $dso_file = "mod_unknown.la";
- }
- }
- else {
- $dso_file = $opt_o;
- $dso_file =~ s|\.[^.]+$|.la|;
- }
-
- # create compilation commands
- my @cmds = ();
- my $opt = '';
- my ($opt_Wc, $opt_I, $opt_D);
- foreach $opt_Wc (@opt_W) {
- $opt .= "$1 " if ($opt_Wc =~ m|^\s*c,(.*)$|);
- }
- foreach $opt_I (@opt_I) {
- $opt .= "-I$opt_I ";
- }
- foreach $opt_D (@opt_D) {
- $opt .= "-D$opt_D ";
- }
- my $cflags = "$CFG_CFLAGS";
- my $s;
- my $mod;
- foreach $s (@srcs) {
- my $slo = $s;
- $slo =~ s|\.c$|.slo|;
- my $lo = $s;
- $lo =~ s|\.c$|.lo|;
- my $la = $s;
- $la =~ s|\.c$|.la|;
- my $o = $s;
- $o =~ s|\.c$|.o|;
- push(@cmds, "$libtool $ltflags --mode=compile $CFG_CC $cflags -I$CFG_INCLUDEDIR $apr_includedir $apu_includedir $opt -c -o $lo $s && touch $slo");
- unshift(@objs, $lo);
- }
-
- # create link command
- my $o;
- my $lo;
- foreach $o (@objs) {
- $lo .= " $o";
- }
- my ($opt_Wl, $opt_L, $opt_l);
- $opt = '';
- foreach $opt_Wl (@opt_W) {
- $opt .= "$1 " if ($opt_Wl =~ m|^\s*l,(.*)$|);
- }
- foreach $opt_L (@opt_L) {
- $opt .= " -L$opt_L";
- }
- foreach $opt_l (@opt_l) {
- $opt .= " -l$opt_l";
- }
-
- if ($opt_p == 1) {
-
- my $apr_libs=`$apr_bindir/apr-config --ldflags --link-libtool --libs`;
- chomp($apr_libs);
- my $apu_libs=`$apu_bindir/apu-config --ldflags --link-libtool --libs`;
- chomp($apu_libs);
-
- $opt .= " ".$apu_libs." ".$apr_libs;
- }
- else {
- my $apr_ldflags=`$apr_bindir/apr-config --ldflags`;
- chomp($apr_ldflags);
- $opt .= " -rpath $CFG_LIBEXECDIR -module -avoid-version $apr_ldflags";
- }
-
- push(@cmds, "$libtool $ltflags --mode=link $CFG_CC -o $dso_file $opt $lo");
-
- # execute the commands
- &execute_cmds(@cmds);
-
- # allow one-step compilation and installation
- if ($opt_i or $opt_e) {
- @args = ( $dso_file );
- }
-}
-
-if ($opt_i or $opt_e) {
- ##
- ## SHARED OBJECT INSTALLATION
- ##
-
- # determine installation commands
- # and corresponding LoadModule/AddModule directives
- my @lmd = ();
- my @amd = ();
- my @cmds = ();
- my $f;
- foreach $f (@args) {
- if ($f !~ m#(\.so$|\.la$)#) {
- error("file $f is not a shared object");
- exit(1);
- }
- my $t = $f;
- $t =~ s|^.+/([^/]+)$|$1|;
- $t =~ s|\.la$|\.so|;
- if ($opt_i) {
- push(@cmds, "$installbuilddir/instdso.sh SH_LIBTOOL='" .
- "$libtool' $f $CFG_LIBEXECDIR");
- push(@cmds, "chmod 755 $CFG_LIBEXECDIR/$t");
- }
-
- # determine module symbolname and filename
- my $filename = '';
- if ($name eq 'unknown') {
- $name = '';
- my $base = $f;
- $base =~ s|\.[^.]+$||;
- if (-f "$base.c") {
- open(FP, "<$base.c");
- my $content = join('', <FP>);
- close(FP);
- if ($content =~ m|.*module\s+(?:AP_MODULE_DECLARE_DATA\s+)?([a-zA-Z0-9_]+)_module\s*=\s*.*|s) {
- $name = "$1";
- $filename = "$base.c";
- $filename =~ s|^[^/]+/||;
- }
- }
- if ($name eq '') {
- if ($base =~ m|.*mod_([a-zA-Z0-9_]+)\..+|) {
- $name = "$1";
- $filename = $base;
- $filename =~ s|^[^/]+/||;
- }
- }
- if ($name eq '') {
- error("Sorry, cannot determine bootstrap symbol name");
- error("Please specify one with option `-n'");
- exit(1);
- }
- }
- if ($filename eq '') {
- $filename = "mod_${name}.c";
- }
- my $dir = $CFG_LIBEXECDIR;
- $dir =~ s|^$CFG_PREFIX/?||;
- $dir =~ s|(.)$|$1/|;
- $t =~ s|\.la$|.so|;
- push(@lmd, sprintf("LoadModule %-18s %s", "${name}_module", "$dir$t"));
- push(@amd, sprintf("AddModule %s", $filename));
- }
-
- # execute the commands
- &execute_cmds(@cmds);
-
- # activate module via LoadModule/AddModule directive
- if ($opt_a or $opt_A) {
- if (not -f "$CFG_SYSCONFDIR/$CFG_TARGET.conf") {
- error("Config file $CFG_SYSCONFDIR/$CFG_TARGET.conf not found");
- exit(1);
- }
-
- open(FP, "<$CFG_SYSCONFDIR/$CFG_TARGET.conf") || die;
- my $content = join('', <FP>);
- close(FP);
-
- if ($content !~ m|\n#?\s*LoadModule\s+|) {
- error("Activation failed for custom $CFG_SYSCONFDIR/$CFG_TARGET.conf file.");
- error("At least one `LoadModule' directive already has to exist.");
- exit(1);
- }
-
- my $lmd;
- my $c = '';
- $c = '#' if ($opt_A);
- foreach $lmd (@lmd) {
- my $what = $opt_A ? "preparing" : "activating";
- my $lmd_re = $lmd;
- $lmd_re =~ s/\s+/\\s+/g;
-
- if ($content !~ m|\n#?\s*$lmd_re|) {
- # check for open <containers>, so that the new LoadModule
- # directive always appears *outside* of an <container>.
-
- my $before = ($content =~ m|^(.*\n)#?\s*LoadModule\s+[^\n]+\n|s)[0];
-
- # the '()=' trick forces list context and the scalar
- # assignment counts the number of list members (aka number
- # of matches) then
- my $cntopen = () = ($before =~ m|^\s*<[^/].*$|mg);
- my $cntclose = () = ($before =~ m|^\s*</.*$|mg);
-
- if ($cntopen == $cntclose) {
- # fine. Last LoadModule is contextless.
- $content =~ s|^(.*\n#?\s*LoadModule\s+[^\n]+\n)|$1$c$lmd\n|s;
- }
- elsif ($cntopen < $cntclose) {
- error('Configuration file is not valid. There are sections'
- . ' closed before opened.');
- exit(1);
- }
- else {
- # put our cmd after the section containing the last
- # LoadModule.
- my $found =
- $content =~ s!\A ( # string and capture start
- (?:(?:
- ^\s* # start of conf line with a
- (?:[^<]|<[^/]) # directive which does not
- # start with '</'
-
- .*(?:$)\n # rest of the line.
- # the '$' is in parentheses
- # to avoid misinterpreting
- # the string "$\" as
- # perl variable.
-
- )* # catch as much as possible
- # of such lines. (including
- # zero)
-
- ^\s*</.*(?:$)\n? # after the above, we
- # expect a config line with
- # a closing container (</)
-
- ) {$cntopen} # the whole pattern (bunch
- # of lines that end up with
- # a closing directive) must
- # be repeated $cntopen
- # times. That's it.
- # Simple, eh? ;-)
-
- ) # capture end
- !$1$c$lmd\n!mx;
-
- unless ($found) {
- error('Configuration file is not valid. There are '
- . 'sections opened and not closed.');
- exit(1);
- }
- }
- } else {
- # replace already existing LoadModule line
- $content =~ s|^(.*\n)#?\s*$lmd_re[^\n]*\n|$1$c$lmd\n|s;
- }
- $lmd =~ m|LoadModule\s+(.+?)_module.*|;
- notice("[$what module `$1' in $CFG_SYSCONFDIR/$CFG_TARGET.conf]");
- }
- my $amd;
- foreach $amd (@amd) {
- if ($content !~ m|\n#?\s*$amd|) {
- $content =~ s|^(.*\n#?\s*AddModule\s+[^\n]+\n)|$1$c$amd\n|sg;
- } else {
- $content =~ s|^(.*\n)#?\s*$amd[^\n]*\n|$1$c$amd\n|sg;
- }
- }
- if (@lmd or @amd) {
- if (open(FP, ">$CFG_SYSCONFDIR/$CFG_TARGET.conf.new")) {
- print FP $content;
- close(FP);
- system("cp $CFG_SYSCONFDIR/$CFG_TARGET.conf $CFG_SYSCONFDIR/$CFG_TARGET.conf.bak && " .
- "cp $CFG_SYSCONFDIR/$CFG_TARGET.conf.new $CFG_SYSCONFDIR/$CFG_TARGET.conf && " .
- "rm $CFG_SYSCONFDIR/$CFG_TARGET.conf.new");
- } else {
- notice("unable to open configuration file");
- }
- }
- }
-}
-
-sub error{
- print STDERR "apxs:Error: $_[0].\n";
-}
-
-sub notice{
- print STDERR "$_[0]\n";
-}
-
-##EOF##
-__DATA__
-##
-## Makefile -- Build procedure for sample %NAME% Apache module
-## Autogenerated via ``apxs -n %NAME% -g''.
-##
-
-builddir=.
-top_srcdir=%PREFIX%
-top_builddir=%PREFIX%
-include %INSTALLBUILDDIR%/special.mk
-
-# the used tools
-APXS=apxs
-APACHECTL=apachectl
-
-# additional defines, includes and libraries
-#DEFS=-Dmy_define=my_value
-#INCLUDES=-Imy/include/dir
-#LIBS=-Lmy/lib/dir -lmylib
-
-# the default target
-all: local-shared-build
-
-# install the shared object file into Apache
-install: install-modules
-
-# cleanup
-clean:
- -rm -f mod_%NAME%.o mod_%NAME%.lo mod_%NAME%.slo mod_%NAME%.la
-
-# simple test
-test: reload
- lynx -mime_header http://localhost/%NAME%
-
-# install and activate shared object by reloading Apache to
-# force a reload of the shared object file
-reload: install restart
-
-# the general Apache start/restart/stop
-# procedures
-start:
- $(APACHECTL) start
-restart:
- $(APACHECTL) restart
-stop:
- $(APACHECTL) stop
-
--=#=-
-mod_%NAME%.la: mod_%NAME%.slo
- $(SH_LINK) -rpath $(libexecdir) -module -avoid-version mod_%NAME%.lo
-DISTCLEAN_TARGETS = modules.mk
-shared = mod_%NAME%.la
--=#=-
-/*
-** mod_%NAME%.c -- Apache sample %NAME% module
-** [Autogenerated via ``apxs -n %NAME% -g'']
-**
-** To play with this sample module first compile it into a
-** DSO file and install it into Apache's modules directory
-** by running:
-**
-** $ apxs -c -i mod_%NAME%.c
-**
-** Then activate it in Apache's %TARGET%.conf file for instance
-** for the URL /%NAME% in as follows:
-**
-** # %TARGET%.conf
-** LoadModule %NAME%_module modules/mod_%NAME%.so
-** <Location /%NAME%>
-** SetHandler %NAME%
-** </Location>
-**
-** Then after restarting Apache via
-**
-** $ apachectl restart
-**
-** you immediately can request the URL /%NAME% and watch for the
-** output of this module. This can be achieved for instance via:
-**
-** $ lynx -mime_header http://localhost/%NAME%
-**
-** The output should be similar to the following one:
-**
-** HTTP/1.1 200 OK
-** Date: Tue, 31 Mar 1998 14:42:22 GMT
-** Server: Apache/1.3.4 (Unix)
-** Connection: close
-** Content-Type: text/html
-**
-** The sample page from mod_%NAME%.c
-*/
-
-#include "httpd.h"
-#include "http_config.h"
-#include "http_protocol.h"
-#include "ap_config.h"
-
-/* The sample content handler */
-static int %NAME%_handler(request_rec *r)
-{
- if (strcmp(r->handler, "%NAME%")) {
- return DECLINED;
- }
- r->content_type = "text/html";
-
- if (!r->header_only)
- ap_rputs("The sample page from mod_%NAME%.c\n", r);
- return OK;
-}
-
-static void %NAME%_register_hooks(apr_pool_t *p)
-{
- ap_hook_handler(%NAME%_handler, NULL, NULL, APR_HOOK_MIDDLE);
-}
-
-/* Dispatch list for API hooks */
-module AP_MODULE_DECLARE_DATA %NAME%_module = {
- STANDARD20_MODULE_STUFF,
- NULL, /* create per-dir config structures */
- NULL, /* merge per-dir config structures */
- NULL, /* create per-server config structures */
- NULL, /* merge per-server config structures */
- NULL, /* table of config file commands */
- %NAME%_register_hooks /* register hooks */
-};
-
diff --git a/rubbos/app/httpd-2.0.64/support/apxs.in b/rubbos/app/httpd-2.0.64/support/apxs.in
deleted file mode 100644
index 135544cc..00000000
--- a/rubbos/app/httpd-2.0.64/support/apxs.in
+++ /dev/null
@@ -1,778 +0,0 @@
-#!@perlbin@ -w
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-require 5.003;
-use strict;
-package apxs;
-
-##
-## Configuration
-##
-
-my %config_vars = ();
-
-my $installbuilddir = "@exp_installbuilddir@";
-get_config_vars("$installbuilddir/config_vars.mk",\%config_vars);
-
-# read the configuration variables once
-
-my $prefix = get_vars("prefix");
-my $CFG_PREFIX = $prefix;
-my $exec_prefix = get_vars("exec_prefix");
-my $datadir = get_vars("datadir");
-my $localstatedir = get_vars("localstatedir");
-my $CFG_TARGET = get_vars("progname");
-my $CFG_SYSCONFDIR = get_vars("sysconfdir");
-my $CFG_CFLAGS = join ' ', map { get_vars($_) }
- qw(SHLTCFLAGS CFLAGS NOTEST_CPPFLAGS EXTRA_CPPFLAGS EXTRA_CFLAGS);
-my $includedir = get_vars("includedir");
-my $CFG_INCLUDEDIR = eval qq("$includedir");
-my $CFG_CC = get_vars("CC");
-my $libexecdir = get_vars("libexecdir");
-my $CFG_LIBEXECDIR = eval qq("$libexecdir");
-my $sbindir = get_vars("sbindir");
-my $CFG_SBINDIR = eval qq("$sbindir");
-my $ltflags = $ENV{'LTFLAGS'};
-$ltflags or $ltflags = "--silent";
-
-my %internal_vars = map {$_ => 1}
- qw(TARGET CC CFLAGS CFLAGS_SHLIB LD_SHLIB LDFLAGS_SHLIB LIBS_SHLIB
- PREFIX SBINDIR INCLUDEDIR LIBEXECDIR SYSCONFDIR);
-
-##
-## parse argument line
-##
-
-# defaults for parameters
-my $opt_n = '';
-my $opt_g = '';
-my $opt_c = 0;
-my $opt_o = '';
-my @opt_D = ();
-my @opt_I = ();
-my @opt_L = ();
-my @opt_l = ();
-my @opt_W = ();
-my @opt_S = ();
-my $opt_e = 0;
-my $opt_i = 0;
-my $opt_a = 0;
-my $opt_A = 0;
-my $opt_q = 0;
-my $opt_h = 0;
-my $opt_p = 0;
-
-# this subroutine is derived from Perl's getopts.pl with the enhancement of
-# the "+" metacharacter at the format string to allow a list to be built by
-# subsequent occurrences of the same option.
-sub Getopts {
- my ($argumentative, @ARGV) = @_;
- my $errs = 0;
- local $_;
- local $[ = 0;
-
- my @args = split / */, $argumentative;
- while (@ARGV && ($_ = $ARGV[0]) =~ /^-(.)(.*)/) {
- my ($first, $rest) = ($1,$2);
- if ($_ =~ m|^--$|) {
- shift @ARGV;
- last;
- }
- my $pos = index($argumentative,$first);
- if ($pos >= $[) {
- if ($pos < $#args && $args[$pos+1] eq ':') {
- shift @ARGV;
- if ($rest eq '') {
- unless (@ARGV) {
- error("Incomplete option: $first (needs an argument)");
- $errs++;
- }
- $rest = shift(@ARGV);
- }
- eval "\$opt_$first = \$rest;";
- }
- elsif ($pos < $#args && $args[$pos+1] eq '+') {
- shift @ARGV;
- if ($rest eq '') {
- unless (@ARGV) {
- error("Incomplete option: $first (needs an argument)");
- $errs++;
- }
- $rest = shift(@ARGV);
- }
- eval "push(\@opt_$first, \$rest);";
- }
- else {
- eval "\$opt_$first = 1";
- if ($rest eq '') {
- shift(@ARGV);
- }
- else {
- $ARGV[0] = "-$rest";
- }
- }
- }
- else {
- error("Unknown option: $first");
- $errs++;
- if ($rest ne '') {
- $ARGV[0] = "-$rest";
- }
- else {
- shift(@ARGV);
- }
- }
- }
- return ($errs == 0, @ARGV);
-}
-
-sub usage {
- print STDERR "Usage: apxs -g [-S <var>=<val>] -n <modname>\n";
- print STDERR " apxs -q [-S <var>=<val>] <query> ...\n";
- print STDERR " apxs -c [-S <var>=<val>] [-o <dsofile>] [-D <name>[=<value>]]\n";
- print STDERR " [-I <incdir>] [-L <libdir>] [-l <libname>] [-Wc,<flags>]\n";
- print STDERR " [-Wl,<flags>] [-p] <files> ...\n";
- print STDERR " apxs -i [-S <var>=<val>] [-a] [-A] [-n <modname>] <dsofile> ...\n";
- print STDERR " apxs -e [-S <var>=<val>] [-a] [-A] [-n <modname>] <dsofile> ...\n";
- exit(1);
-}
-
-# option handling
-my $rc;
-($rc, @ARGV) = &Getopts("qn:gco:I+D+L+l+W+S+eiaAp", @ARGV);
-&usage if ($rc == 0);
-&usage if ($#ARGV == -1 and not $opt_g);
-&usage if (not $opt_q and not ($opt_g and $opt_n) and not $opt_i and not $opt_c and not $opt_e);
-
-# argument handling
-my @args = @ARGV;
-my $name = 'unknown';
-$name = $opt_n if ($opt_n ne '');
-
-if (@opt_S) {
- my ($opt_S);
- foreach $opt_S (@opt_S) {
- if ($opt_S =~ m/^([^=]+)=(.*)$/) {
- my ($var) = $1;
- my ($val) = $2;
- my $oldval = eval "\$CFG_$var";
-
- unless ($var and $oldval) {
- print STDERR "apxs:Error: no config variable $var\n";
- &usage;
- }
-
- eval "\$CFG_${var}=\"${val}\"";
- } else {
- print STDERR "apxs:Error: malformatted -S option\n";
- &usage;
- }
- }
-}
-
-##
-## Initial shared object support check
-##
-my $httpd = get_vars("sbindir") . "/" . get_vars("progname");
-$httpd = eval qq("$httpd");
-$httpd = eval qq("$httpd");
-my $envvars = get_vars("sbindir") . "/envvars";
-$envvars = eval qq("$envvars");
-$envvars = eval qq("$envvars");
-
-#allow apxs to be run from the source tree, before installation
-if ($0 =~ m:support/apxs$:) {
- ($httpd = $0) =~ s:support/apxs$::;
-}
-
-unless (-x "$httpd") {
- error("$httpd not found or not executable");
- exit 1;
-}
-
-unless (grep /mod_so/, `. $envvars && $httpd -l`) {
- error("Sorry, no shared object support for Apache");
- error("available under your platform. Make sure");
- error("the Apache module mod_so is compiled into");
- error("your server binary `$httpd'.");
- exit 1;
-}
-
-sub get_config_vars{
- my ($file, $rh_config) = @_;
-
- open IN, $file or die "cannot open $file: $!";
- while (<IN>){
- if (/^\s*(.*?)\s*=\s*(.*)$/){
- $rh_config->{$1} = $2;
- }
- }
- close IN;
-}
-
-sub get_vars {
- my $result = '';
- my $ok = 0;
- my $arg;
- foreach $arg (@_) {
- if (exists $config_vars{$arg} or exists $config_vars{lc $arg}) {
- my $val = exists $config_vars{$arg}
- ? $config_vars{$arg}
- : $config_vars{lc $arg};
- $val =~ s/[()]//g;
- $result .= eval "qq($val)" if defined $val;
- $result .= ";;";
- $ok = 1;
- }
- if (not $ok) {
- if (exists $internal_vars{$arg} or exists $internal_vars{lc $arg}) {
- my $val = exists $internal_vars{$arg} ? $arg : lc $arg;
- $val = eval "\$CFG_$val";
- $result .= eval "qq($val)" if defined $val;
- $result .= ";;";
- $ok = 1;
- }
- if (not $ok) {
- error("Invalid query string `$arg'");
- exit(1);
- }
- }
- }
- $result =~ s|;;$||;
- $result =~ s|:| |;
- return $result;
-}
-
-##
-## Operation
-##
-
-# helper function for executing a list of
-# system command with return code checks
-sub execute_cmds {
- my (@cmds) = @_;
- my ($cmd, $rc);
-
- foreach $cmd (@cmds) {
- notice($cmd);
- $rc = system $cmd;
- if ($rc) {
- error(sprintf "Command failed with rc=%d\n", $rc << 8);
- exit 1 ;
- }
- }
-}
-
-if ($opt_g) {
- ##
- ## SAMPLE MODULE SOURCE GENERATION
- ##
-
- if (-d $name) {
- error("Directory `$name' already exists. Remove first");
- exit(1);
- }
-
- my $data = join('', <DATA>);
- $data =~ s|%NAME%|$name|sg;
- $data =~ s|%TARGET%|$CFG_TARGET|sg;
- $data =~ s|%PREFIX%|$prefix|sg;
- $data =~ s|%INSTALLBUILDDIR%|$installbuilddir|sg;
-
- my ($mkf, $mods, $src) = ($data =~ m|^(.+)-=#=-\n(.+)-=#=-\n(.+)|s);
-
- notice("Creating [DIR] $name");
- system("mkdir $name");
- notice("Creating [FILE] $name/Makefile");
- open(FP, ">${name}/Makefile") || die;
- print FP $mkf;
- close(FP);
- notice("Creating [FILE] $name/modules.mk");
- open(FP, ">${name}/modules.mk") || die;
- print FP $mods;
- close(FP);
- notice("Creating [FILE] $name/mod_$name.c");
- open(FP, ">${name}/mod_${name}.c") || die;
- print FP $src;
- close(FP);
- notice("Creating [FILE] $name/.deps");
- system("touch ${name}/.deps");
-
- exit(0);
-}
-
-
-if ($opt_q) {
- ##
- ## QUERY INFORMATION
- ##
- my $result = get_vars(@args);
- print "$result\n";
-}
-
-my $apr_bindir = get_vars("APR_BINDIR");
-
-if (! -x "$apr_bindir/apr-config") {
- error("$apr_bindir/apr-config not found!");
- exit(1);
-}
-
-my $apu_bindir = get_vars("APU_BINDIR");
-
-if (! -x "$apu_bindir/apu-config") {
- error("$apu_bindir/apu-config not found!");
- exit(1);
-}
-
-my $libtool = `$apr_bindir/apr-config --installbuilddir`;
-chomp($libtool);
-$libtool = "$libtool/libtool";
-
-my $apr_includedir = `$apr_bindir/apr-config --includes`;
-chomp($apr_includedir);
-my $apu_includedir = `$apu_bindir/apu-config --includes`;
-chomp($apu_includedir);
-
-if ($opt_c) {
- ##
- ## SHARED OBJECT COMPILATION
- ##
-
- # split files into sources and objects
- my @srcs = ();
- my @objs = ();
- my $f;
- foreach $f (@args) {
- if ($f =~ m|\.c$|) {
- push(@srcs, $f);
- }
- else {
- push(@objs, $f);
- }
- }
-
- # determine output file
- my $dso_file;
- if ($opt_o eq '') {
- if ($#srcs > -1) {
- $dso_file = $srcs[0];
- $dso_file =~ s|\.[^.]+$|.la|;
- }
- elsif ($#objs > -1) {
- $dso_file = $objs[0];
- $dso_file =~ s|\.[^.]+$|.la|;
- }
- else {
- $dso_file = "mod_unknown.la";
- }
- }
- else {
- $dso_file = $opt_o;
- $dso_file =~ s|\.[^.]+$|.la|;
- }
-
- # create compilation commands
- my @cmds = ();
- my $opt = '';
- my ($opt_Wc, $opt_I, $opt_D);
- foreach $opt_Wc (@opt_W) {
- $opt .= "$1 " if ($opt_Wc =~ m|^\s*c,(.*)$|);
- }
- foreach $opt_I (@opt_I) {
- $opt .= "-I$opt_I ";
- }
- foreach $opt_D (@opt_D) {
- $opt .= "-D$opt_D ";
- }
- my $cflags = "$CFG_CFLAGS";
- my $s;
- my $mod;
- foreach $s (@srcs) {
- my $slo = $s;
- $slo =~ s|\.c$|.slo|;
- my $lo = $s;
- $lo =~ s|\.c$|.lo|;
- my $la = $s;
- $la =~ s|\.c$|.la|;
- my $o = $s;
- $o =~ s|\.c$|.o|;
- push(@cmds, "$libtool $ltflags --mode=compile $CFG_CC $cflags -I$CFG_INCLUDEDIR $apr_includedir $apu_includedir $opt -c -o $lo $s && touch $slo");
- unshift(@objs, $lo);
- }
-
- # create link command
- my $o;
- my $lo;
- foreach $o (@objs) {
- $lo .= " $o";
- }
- my ($opt_Wl, $opt_L, $opt_l);
- $opt = '';
- foreach $opt_Wl (@opt_W) {
- $opt .= "$1 " if ($opt_Wl =~ m|^\s*l,(.*)$|);
- }
- foreach $opt_L (@opt_L) {
- $opt .= " -L$opt_L";
- }
- foreach $opt_l (@opt_l) {
- $opt .= " -l$opt_l";
- }
-
- if ($opt_p == 1) {
-
- my $apr_libs=`$apr_bindir/apr-config --ldflags --link-libtool --libs`;
- chomp($apr_libs);
- my $apu_libs=`$apu_bindir/apu-config --ldflags --link-libtool --libs`;
- chomp($apu_libs);
-
- $opt .= " ".$apu_libs." ".$apr_libs;
- }
- else {
- my $apr_ldflags=`$apr_bindir/apr-config --ldflags`;
- chomp($apr_ldflags);
- $opt .= " -rpath $CFG_LIBEXECDIR -module -avoid-version $apr_ldflags";
- }
-
- push(@cmds, "$libtool $ltflags --mode=link $CFG_CC -o $dso_file $opt $lo");
-
- # execute the commands
- &execute_cmds(@cmds);
-
- # allow one-step compilation and installation
- if ($opt_i or $opt_e) {
- @args = ( $dso_file );
- }
-}
-
-if ($opt_i or $opt_e) {
- ##
- ## SHARED OBJECT INSTALLATION
- ##
-
- # determine installation commands
- # and corresponding LoadModule/AddModule directives
- my @lmd = ();
- my @amd = ();
- my @cmds = ();
- my $f;
- foreach $f (@args) {
- if ($f !~ m#(\.so$|\.la$)#) {
- error("file $f is not a shared object");
- exit(1);
- }
- my $t = $f;
- $t =~ s|^.+/([^/]+)$|$1|;
- $t =~ s|\.la$|\.so|;
- if ($opt_i) {
- push(@cmds, "$installbuilddir/instdso.sh SH_LIBTOOL='" .
- "$libtool' $f $CFG_LIBEXECDIR");
- push(@cmds, "chmod 755 $CFG_LIBEXECDIR/$t");
- }
-
- # determine module symbolname and filename
- my $filename = '';
- if ($name eq 'unknown') {
- $name = '';
- my $base = $f;
- $base =~ s|\.[^.]+$||;
- if (-f "$base.c") {
- open(FP, "<$base.c");
- my $content = join('', <FP>);
- close(FP);
- if ($content =~ m|.*module\s+(?:AP_MODULE_DECLARE_DATA\s+)?([a-zA-Z0-9_]+)_module\s*=\s*.*|s) {
- $name = "$1";
- $filename = "$base.c";
- $filename =~ s|^[^/]+/||;
- }
- }
- if ($name eq '') {
- if ($base =~ m|.*mod_([a-zA-Z0-9_]+)\..+|) {
- $name = "$1";
- $filename = $base;
- $filename =~ s|^[^/]+/||;
- }
- }
- if ($name eq '') {
- error("Sorry, cannot determine bootstrap symbol name");
- error("Please specify one with option `-n'");
- exit(1);
- }
- }
- if ($filename eq '') {
- $filename = "mod_${name}.c";
- }
- my $dir = $CFG_LIBEXECDIR;
- $dir =~ s|^$CFG_PREFIX/?||;
- $dir =~ s|(.)$|$1/|;
- $t =~ s|\.la$|.so|;
- push(@lmd, sprintf("LoadModule %-18s %s", "${name}_module", "$dir$t"));
- push(@amd, sprintf("AddModule %s", $filename));
- }
-
- # execute the commands
- &execute_cmds(@cmds);
-
- # activate module via LoadModule/AddModule directive
- if ($opt_a or $opt_A) {
- if (not -f "$CFG_SYSCONFDIR/$CFG_TARGET.conf") {
- error("Config file $CFG_SYSCONFDIR/$CFG_TARGET.conf not found");
- exit(1);
- }
-
- open(FP, "<$CFG_SYSCONFDIR/$CFG_TARGET.conf") || die;
- my $content = join('', <FP>);
- close(FP);
-
- if ($content !~ m|\n#?\s*LoadModule\s+|) {
- error("Activation failed for custom $CFG_SYSCONFDIR/$CFG_TARGET.conf file.");
- error("At least one `LoadModule' directive already has to exist.");
- exit(1);
- }
-
- my $lmd;
- my $c = '';
- $c = '#' if ($opt_A);
- foreach $lmd (@lmd) {
- my $what = $opt_A ? "preparing" : "activating";
- my $lmd_re = $lmd;
- $lmd_re =~ s/\s+/\\s+/g;
-
- if ($content !~ m|\n#?\s*$lmd_re|) {
- # check for open <containers>, so that the new LoadModule
- # directive always appears *outside* of an <container>.
-
- my $before = ($content =~ m|^(.*\n)#?\s*LoadModule\s+[^\n]+\n|s)[0];
-
- # the '()=' trick forces list context and the scalar
- # assignment counts the number of list members (aka number
- # of matches) then
- my $cntopen = () = ($before =~ m|^\s*<[^/].*$|mg);
- my $cntclose = () = ($before =~ m|^\s*</.*$|mg);
-
- if ($cntopen == $cntclose) {
- # fine. Last LoadModule is contextless.
- $content =~ s|^(.*\n#?\s*LoadModule\s+[^\n]+\n)|$1$c$lmd\n|s;
- }
- elsif ($cntopen < $cntclose) {
- error('Configuration file is not valid. There are sections'
- . ' closed before opened.');
- exit(1);
- }
- else {
- # put our cmd after the section containing the last
- # LoadModule.
- my $found =
- $content =~ s!\A ( # string and capture start
- (?:(?:
- ^\s* # start of conf line with a
- (?:[^<]|<[^/]) # directive which does not
- # start with '</'
-
- .*(?:$)\n # rest of the line.
- # the '$' is in parentheses
- # to avoid misinterpreting
- # the string "$\" as
- # perl variable.
-
- )* # catch as much as possible
- # of such lines. (including
- # zero)
-
- ^\s*</.*(?:$)\n? # after the above, we
- # expect a config line with
- # a closing container (</)
-
- ) {$cntopen} # the whole pattern (bunch
- # of lines that end up with
- # a closing directive) must
- # be repeated $cntopen
- # times. That's it.
- # Simple, eh? ;-)
-
- ) # capture end
- !$1$c$lmd\n!mx;
-
- unless ($found) {
- error('Configuration file is not valid. There are '
- . 'sections opened and not closed.');
- exit(1);
- }
- }
- } else {
- # replace already existing LoadModule line
- $content =~ s|^(.*\n)#?\s*$lmd_re[^\n]*\n|$1$c$lmd\n|s;
- }
- $lmd =~ m|LoadModule\s+(.+?)_module.*|;
- notice("[$what module `$1' in $CFG_SYSCONFDIR/$CFG_TARGET.conf]");
- }
- my $amd;
- foreach $amd (@amd) {
- if ($content !~ m|\n#?\s*$amd|) {
- $content =~ s|^(.*\n#?\s*AddModule\s+[^\n]+\n)|$1$c$amd\n|sg;
- } else {
- $content =~ s|^(.*\n)#?\s*$amd[^\n]*\n|$1$c$amd\n|sg;
- }
- }
- if (@lmd or @amd) {
- if (open(FP, ">$CFG_SYSCONFDIR/$CFG_TARGET.conf.new")) {
- print FP $content;
- close(FP);
- system("cp $CFG_SYSCONFDIR/$CFG_TARGET.conf $CFG_SYSCONFDIR/$CFG_TARGET.conf.bak && " .
- "cp $CFG_SYSCONFDIR/$CFG_TARGET.conf.new $CFG_SYSCONFDIR/$CFG_TARGET.conf && " .
- "rm $CFG_SYSCONFDIR/$CFG_TARGET.conf.new");
- } else {
- notice("unable to open configuration file");
- }
- }
- }
-}
-
-sub error{
- print STDERR "apxs:Error: $_[0].\n";
-}
-
-sub notice{
- print STDERR "$_[0]\n";
-}
-
-##EOF##
-__DATA__
-##
-## Makefile -- Build procedure for sample %NAME% Apache module
-## Autogenerated via ``apxs -n %NAME% -g''.
-##
-
-builddir=.
-top_srcdir=%PREFIX%
-top_builddir=%PREFIX%
-include %INSTALLBUILDDIR%/special.mk
-
-# the used tools
-APXS=apxs
-APACHECTL=apachectl
-
-# additional defines, includes and libraries
-#DEFS=-Dmy_define=my_value
-#INCLUDES=-Imy/include/dir
-#LIBS=-Lmy/lib/dir -lmylib
-
-# the default target
-all: local-shared-build
-
-# install the shared object file into Apache
-install: install-modules
-
-# cleanup
-clean:
- -rm -f mod_%NAME%.o mod_%NAME%.lo mod_%NAME%.slo mod_%NAME%.la
-
-# simple test
-test: reload
- lynx -mime_header http://localhost/%NAME%
-
-# install and activate shared object by reloading Apache to
-# force a reload of the shared object file
-reload: install restart
-
-# the general Apache start/restart/stop
-# procedures
-start:
- $(APACHECTL) start
-restart:
- $(APACHECTL) restart
-stop:
- $(APACHECTL) stop
-
--=#=-
-mod_%NAME%.la: mod_%NAME%.slo
- $(SH_LINK) -rpath $(libexecdir) -module -avoid-version mod_%NAME%.lo
-DISTCLEAN_TARGETS = modules.mk
-shared = mod_%NAME%.la
--=#=-
-/*
-** mod_%NAME%.c -- Apache sample %NAME% module
-** [Autogenerated via ``apxs -n %NAME% -g'']
-**
-** To play with this sample module first compile it into a
-** DSO file and install it into Apache's modules directory
-** by running:
-**
-** $ apxs -c -i mod_%NAME%.c
-**
-** Then activate it in Apache's %TARGET%.conf file for instance
-** for the URL /%NAME% in as follows:
-**
-** # %TARGET%.conf
-** LoadModule %NAME%_module modules/mod_%NAME%.so
-** <Location /%NAME%>
-** SetHandler %NAME%
-** </Location>
-**
-** Then after restarting Apache via
-**
-** $ apachectl restart
-**
-** you immediately can request the URL /%NAME% and watch for the
-** output of this module. This can be achieved for instance via:
-**
-** $ lynx -mime_header http://localhost/%NAME%
-**
-** The output should be similar to the following one:
-**
-** HTTP/1.1 200 OK
-** Date: Tue, 31 Mar 1998 14:42:22 GMT
-** Server: Apache/1.3.4 (Unix)
-** Connection: close
-** Content-Type: text/html
-**
-** The sample page from mod_%NAME%.c
-*/
-
-#include "httpd.h"
-#include "http_config.h"
-#include "http_protocol.h"
-#include "ap_config.h"
-
-/* The sample content handler */
-static int %NAME%_handler(request_rec *r)
-{
- if (strcmp(r->handler, "%NAME%")) {
- return DECLINED;
- }
- r->content_type = "text/html";
-
- if (!r->header_only)
- ap_rputs("The sample page from mod_%NAME%.c\n", r);
- return OK;
-}
-
-static void %NAME%_register_hooks(apr_pool_t *p)
-{
- ap_hook_handler(%NAME%_handler, NULL, NULL, APR_HOOK_MIDDLE);
-}
-
-/* Dispatch list for API hooks */
-module AP_MODULE_DECLARE_DATA %NAME%_module = {
- STANDARD20_MODULE_STUFF,
- NULL, /* create per-dir config structures */
- NULL, /* merge per-dir config structures */
- NULL, /* create per-server config structures */
- NULL, /* merge per-server config structures */
- NULL, /* table of config file commands */
- %NAME%_register_hooks /* register hooks */
-};
-
diff --git a/rubbos/app/httpd-2.0.64/support/check_forensic b/rubbos/app/httpd-2.0.64/support/check_forensic
deleted file mode 100755
index 3c8123fc..00000000
--- a/rubbos/app/httpd-2.0.64/support/check_forensic
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/bin/sh
-
-# check_forensic <forensic log file>
-
-# check the forensic log for requests that did not complete
-# output the request log for each one
-
-F=$1
-
-temp_create_method=file
-if test -f `which mktemp`; then
- temp_create_method=mktemp
-elif test -f `which tempfile`; then
- temp_create_method=tempfile
-fi
-
-create_temp()
-{
- prefix=$1
- case "$temp_create_method" in
- file)
- name="/tmp/$1.$$"
- ;;
- mktemp)
- name=`mktemp -t $1.XXXXXX`
- ;;
- tempfile)
- name=`tempfile --prefix=$1`
- ;;
- *)
- echo "$0: Cannot create temporary file"
- exit 1
- ;;
- esac
-}
-
-create_temp fcall
-all=$name
-create_temp fcin
-in=$name
-create_temp fcout
-out=$name
-trap "rm -f -- \"$all\" \"$in\" \"$out\";" 0 1 2 3 13 15
-
-cut -f 1 -d '|' $F > $all
-grep + < $all | cut -c2- | sort > $in
-grep -- - < $all | cut -c2- | sort > $out
-
-# use -i instead of -I for GNU xargs
-join -v 1 $in $out | xargs -I xx egrep "^\\+xx" $F
-exit 0
diff --git a/rubbos/app/httpd-2.0.64/support/checkgid b/rubbos/app/httpd-2.0.64/support/checkgid
deleted file mode 100755
index ff663d36..00000000
--- a/rubbos/app/httpd-2.0.64/support/checkgid
+++ /dev/null
@@ -1,131 +0,0 @@
-#! /bin/bash
-
-# checkgid - temporary wrapper script for .libs/checkgid
-# Generated by ltmain.sh - GNU libtool 1.5.26 (1.1220.2.493 2008/02/01 16:58:18)
-#
-# The checkgid program cannot be directly executed until all the libtool
-# libraries that it depends on are installed.
-#
-# This wrapper script should never be moved out of the build directory.
-# If it is, it will not operate correctly.
-
-# Sed substitution that helps us do robust quoting. It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='/bin/sed -e 1s/^X//'
-sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
-
-# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
-fi
-BIN_SH=xpg4; export BIN_SH # for Tru64
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-relink_command="(cd /bottlenecks/rubbos/app/httpd-2.0.64/support; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=\"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games\"; export PATH; gcc -g -O2 -pthread -D_REENTRANT -D_GNU_SOURCE -DAP_HAVE_DESIGNATED_INITIALIZER -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/include -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/include -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/lib -I. -I/bottlenecks/rubbos/app/httpd-2.0.64/os/unix -I/bottlenecks/rubbos/app/httpd-2.0.64/server/mpm/worker -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/http -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/filters -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/proxy -I/bottlenecks/rubbos/app/httpd-2.0.64/include -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/generators -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/dav/main -o \$progdir/\$file .libs/checkgid.o -Wl,--export-dynamic -L/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/lib /bottlenecks/rubbos/app/httpd-2.0.64/srclib/pcre/.libs/libpcre.a /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/.libs/libaprutil-0.so /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/.libs/libexpat.so /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/.libs/libapr-0.so -lrt -lm -lcrypt -lnsl -lpthread -ldl -Wl,--rpath -Wl,/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/.libs -Wl,--rpath -Wl,/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/.libs -Wl,--rpath -Wl,/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/.libs -Wl,--rpath -Wl,/bottlenecks/rubbos/app/apache2/lib ) "
-
-# This environment variable determines our operation mode.
-if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
- # install mode needs the following variable:
- notinst_deplibs=' /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/libaprutil-0.la /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/libexpat.la /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/libapr-0.la'
-else
- # When we are sourced in execute mode, $file and $echo are already set.
- if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
- echo="echo"
- file="$0"
- # Make sure echo works.
- if test "X$1" = X--no-reexec; then
- # Discard the --no-reexec flag, and continue.
- shift
- elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
- # Yippee, $echo works!
- :
- else
- # Restart under the correct shell, and then maybe $echo will work.
- exec /bin/bash "$0" --no-reexec ${1+"$@"}
- fi
- fi
-
- # Find the directory that this script lives in.
- thisdir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
- test "x$thisdir" = "x$file" && thisdir=.
-
- # Follow symbolic links until we get to the real thisdir.
- file=`ls -ld "$file" | /bin/sed -n 's/.*-> //p'`
- while test -n "$file"; do
- destdir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
-
- # If there was a directory component, then change thisdir.
- if test "x$destdir" != "x$file"; then
- case "$destdir" in
- [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
- *) thisdir="$thisdir/$destdir" ;;
- esac
- fi
-
- file=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
- file=`ls -ld "$thisdir/$file" | /bin/sed -n 's/.*-> //p'`
- done
-
- # Try to get the absolute directory name.
- absdir=`cd "$thisdir" && pwd`
- test -n "$absdir" && thisdir="$absdir"
-
- program=lt-'checkgid'
- progdir="$thisdir/.libs"
-
- if test ! -f "$progdir/$program" || \
- { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /bin/sed 1q`; \
- test "X$file" != "X$progdir/$program"; }; then
-
- file="$$-$program"
-
- if test ! -d "$progdir"; then
- mkdir "$progdir"
- else
- rm -f "$progdir/$file"
- fi
-
- # relink executable if necessary
- if test -n "$relink_command"; then
- if relink_command_output=`eval $relink_command 2>&1`; then :
- else
- echo "$relink_command_output" >&2
- rm -f "$progdir/$file"
- exit 1
- fi
- fi
-
- mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
- { rm -f "$progdir/$program";
- mv -f "$progdir/$file" "$progdir/$program"; }
- rm -f "$progdir/$file"
- fi
-
- if test -f "$progdir/$program"; then
- if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
- # Run the actual program with our arguments.
-
- exec "$progdir/$program" ${1+"$@"}
-
- $echo "$0: cannot exec $program $*"
- exit 1
- fi
- else
- # The program doesn't exist.
- $echo "$0: error: \`$progdir/$program' does not exist" 1>&2
- $echo "This script is just a wrapper for $program." 1>&2
- echo "See the libtool documentation for more information." 1>&2
- exit 1
- fi
-fi
diff --git a/rubbos/app/httpd-2.0.64/support/checkgid.c b/rubbos/app/httpd-2.0.64/support/checkgid.c
deleted file mode 100644
index 2a918b29..00000000
--- a/rubbos/app/httpd-2.0.64/support/checkgid.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * Given one or more group identifers on the command line (e.g.,
- * "httpd" or "#-1"), figure out whether they'll be valid for
- * the server to use at run-time.
- *
- * If a groupname isn't found, or we can't setgid() to it, return
- * -1. If all groups are valid, return 0.
- *
- * This may need to be run as the superuser for the setgid() to
- * succeed; running it as any other user may result in a false
- * negative.
- */
-
-#include "ap_config.h"
-#if APR_HAVE_STDIO_H
-#include <stdio.h>
-#endif
-#if APR_HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#if APR_HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#if HAVE_GRP_H
-#include <grp.h>
-#endif
-#if APR_HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-int main(int argc, char *argv[])
-{
- int i;
- int result;
- gid_t gid;
- struct group *grent;
- struct group fake_grent;
-
- /*
- * Assume success. :-)
- */
- result = 0;
- for (i = 1; i < argc; ++i) {
- char *arg;
- arg = argv[i];
-
- /*
- * If it's from a 'Group #-1' statement, get the numeric value
- * and skip the group lookup stuff.
- */
- if (*arg == '#') {
- gid = atoi(&arg[1]);
- fake_grent.gr_gid = gid;
- grent = &fake_grent;
- }
- else {
- grent = getgrnam(arg);
- }
-
- /*
- * A NULL return means no such group was found, so we're done
- * with this one.
- */
- if (grent == NULL) {
- fprintf(stderr, "%s: group '%s' not found\n", argv[0], arg);
- result = -1;
- }
- else {
- int check;
-
- /*
- * See if we can switch to the numeric GID we have. If so,
- * all well and good; if not, well..
- */
- gid = grent->gr_gid;
- check = setgid(gid);
- if (check != 0) {
- fprintf(stderr, "%s: invalid group '%s'\n", argv[0], arg);
- perror(argv[0]);
- result = -1;
- }
- }
- }
- /*
- * Worst-case return value.
- */
- return result;
-}
-/*
- * Local Variables:
- * mode: C
- * c-file-style: "bsd"
- * End:
- */
diff --git a/rubbos/app/httpd-2.0.64/support/checkgid.lo b/rubbos/app/httpd-2.0.64/support/checkgid.lo
deleted file mode 100644
index 547929ac..00000000
--- a/rubbos/app/httpd-2.0.64/support/checkgid.lo
+++ /dev/null
@@ -1,12 +0,0 @@
-# checkgid.lo - a libtool object file
-# Generated by ltmain.sh - GNU libtool 1.5.26 (1.1220.2.493 2008/02/01 16:58:18)
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# Name of the PIC object.
-pic_object='.libs/checkgid.o'
-
-# Name of the non-PIC object.
-non_pic_object='checkgid.o'
-
diff --git a/rubbos/app/httpd-2.0.64/support/checkgid.o b/rubbos/app/httpd-2.0.64/support/checkgid.o
deleted file mode 100644
index 9116a3a9..00000000
--- a/rubbos/app/httpd-2.0.64/support/checkgid.o
+++ /dev/null
Binary files differ
diff --git a/rubbos/app/httpd-2.0.64/support/config.m4 b/rubbos/app/httpd-2.0.64/support/config.m4
deleted file mode 100644
index 8169a1ec..00000000
--- a/rubbos/app/httpd-2.0.64/support/config.m4
+++ /dev/null
@@ -1,104 +0,0 @@
-htpasswd_LTFLAGS=""
-htdigest_LTFLAGS=""
-rotatelogs_LTFLAGS=""
-logresolve_LTFLAGS=""
-htdbm_LTFLAGS=""
-ab_LTFLAGS=""
-checkgid_LTFLAGS=""
-
-AC_ARG_ENABLE(static-support,APACHE_HELP_STRING(--enable-static-support,Build a statically linked version the support binaries),[
-if test "$enableval" = "yes" ; then
- APR_ADDTO(htpasswd_LTFLAGS, [-static])
- APR_ADDTO(htdigest_LTFLAGS, [-static])
- APR_ADDTO(rotatelogs_LTFLAGS, [-static])
- APR_ADDTO(logresolve_LTFLAGS, [-static])
- APR_ADDTO(htdbm_LTFLAGS, [-static])
- APR_ADDTO(ab_LTFLAGS, [-static])
- APR_ADDTO(checkgid_LTFLAGS, [-static])
-fi
-])
-
-AC_ARG_ENABLE(static-htpasswd,APACHE_HELP_STRING(--enable-static-htpasswd,Build a statically linked version of htpasswd),[
-if test "$enableval" = "yes" ; then
- APR_ADDTO(htpasswd_LTFLAGS, [-static])
-else
- APR_REMOVEFROM(htpasswd_LTFLAGS, [-static])
-fi
-])
-APACHE_SUBST(htpasswd_LTFLAGS)
-
-AC_ARG_ENABLE(static-htdigest,APACHE_HELP_STRING(--enable-static-htdigest,Build a statically linked version of htdigest),[
-if test "$enableval" = "yes" ; then
- APR_ADDTO(htdigest_LTFLAGS, [-static])
-else
- APR_REMOVEFROM(htdigest_LTFLAGS, [-static])
-fi
-])
-APACHE_SUBST(htdigest_LTFLAGS)
-
-AC_ARG_ENABLE(static-rotatelogs,APACHE_HELP_STRING(--enable-static-rotatelogs,Build a statically linked version of rotatelogs),[
-if test "$enableval" = "yes" ; then
- APR_ADDTO(rotatelogs_LTFLAGS, [-static])
-else
- APR_REMOVEFROM(rotatelogs_LTFLAGS, [-static])
-fi
-])
-APACHE_SUBST(rotatelogs_LTFLAGS)
-
-AC_ARG_ENABLE(static-logresolve,APACHE_HELP_STRING(--enable-static-logresolve,Build a statically linked version of logresolve),[
-if test "$enableval" = "yes" ; then
- APR_ADDTO(logresolve_LTFLAGS, [-static])
-else
- APR_REMOVEFROM(logresolve_LTFLAGS, [-static])
-fi
-])
-APACHE_SUBST(logresolve_LTFLAGS)
-
-AC_ARG_ENABLE(static-htdbm,APACHE_HELP_STRING(--enable-static-htdbm,Build a statically linked version of htdbm),[
-if test "$enableval" = "yes" ; then
- APR_ADDTO(htdbm_LTFLAGS, [-static])
-else
- APR_REMOVEFROM(htdbm_LTFLAGS, [-static])
-fi
-])
-APACHE_SUBST(htdbm_LTFLAGS)
-
-AC_ARG_ENABLE(static-ab,APACHE_HELP_STRING(--enable-static-ab,Build a statically linked version of ab),[
-if test "$enableval" = "yes" ; then
- APR_ADDTO(ab_LTFLAGS, [-static])
-else
- APR_REMOVEFROM(ab_LTFLAGS, [-static])
-fi
-])
-APACHE_SUBST(ab_LTFLAGS)
-
-AC_ARG_ENABLE(static-checkgid,APACHE_HELP_STRING(--enable-static-checkgid,Build a statically linked version of checkgid),[
-if test "$enableval" = "yes" ; then
- APR_ADDTO(checkgid_LTFLAGS, [-static])
-else
- APR_REMOVEFROM(checkgid_LTFLAGS, [-static])
-fi
-])
-APACHE_SUBST(checkgid_LTFLAGS)
-
-case $host in
- *aix*)
- # this works in any locale, unlike the default command below, which
- # fails in a non-English locale if the hard limit is unlimited
- # since the display of the limit will translate "unlimited", but
- # ulimit only accepts English "unlimited" on input
- APACHECTL_ULIMIT="ulimit -S -n unlimited"
- ;;
- *alpha*-dec-osf*)
- # Tru64: -H is for setting, not retrieving
- APACHECTL_ULIMIT="ulimit -S -n \`ulimit -h -n\`"
- ;;
- *)
- if TMP_ULIMIT=`ulimit -H -n` && ulimit -S -n $TMP_ULIMIT ; then
- APACHECTL_ULIMIT="ulimit -S -n \`ulimit -H -n\`"
- else
- APACHECTL_ULIMIT=""
- fi
- ;;
-esac
-APACHE_SUBST(APACHECTL_ULIMIT)
diff --git a/rubbos/app/httpd-2.0.64/support/dbmmanage b/rubbos/app/httpd-2.0.64/support/dbmmanage
deleted file mode 100644
index 436e824f..00000000
--- a/rubbos/app/httpd-2.0.64/support/dbmmanage
+++ /dev/null
@@ -1,312 +0,0 @@
-#!/usr/bin/perl
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-#for more functionality see the HTTPD::UserAdmin module:
-# http://www.perl.com/CPAN/modules/by-module/HTTPD/HTTPD-Tools-x.xx.tar.gz
-#
-# usage: dbmmanage <DBMfile> <command> <user> <password> <groups> <comment>
-
-package dbmmanage;
-# -ldb -lndbm -lgdbm -lsdbm
-BEGIN { @AnyDBM_File::ISA = qw(DB_File NDBM_File GDBM_File SDBM_File) }
-use strict;
-use Fcntl;
-use AnyDBM_File ();
-
-sub usage {
- my $cmds = join "|", sort keys %dbmc::;
- die <<SYNTAX;
-Usage: dbmmanage [enc] dbname command [username [pw [group[,group] [comment]]]]
-
- where enc is -d for crypt encryption (default except on Win32, Netware)
- -m for MD5 encryption (default on Win32, Netware)
- -s for SHA1 encryption
- -p for plaintext
-
- command is one of: $cmds
-
- pw of . for update command retains the old password
- pw of - (or blank) for update command prompts for the password
-
- groups or comment of . (or blank) for update command retains old values
- groups or comment of - for update command clears the existing value
- groups or comment of - for add and adduser commands is the empty value
-SYNTAX
-}
-
-sub need_sha1_crypt {
- if (!eval ('require "Digest/SHA1.pm";')) {
- print STDERR <<SHAERR;
-dbmmanage SHA1 passwords require the interface or the module Digest::SHA1
-available from CPAN:
-
- http://www.cpan.org/modules/by-module/Digest/Digest-MD5-2.12.tar.gz
-
-Please install Digest::SHA1 and try again, or use a different crypt option:
-
-SHAERR
- usage();
- }
-}
-
-sub need_md5_crypt {
- if (!eval ('require "Crypt/PasswdMD5.pm";')) {
- print STDERR <<MD5ERR;
-dbmmanage MD5 passwords require the module Crypt::PasswdMD5 available from CPAN
-
- http://www.cpan.org/modules/by-module/Crypt/Crypt-PasswdMD5-1.1.tar.gz
-
-Please install Crypt::PasswdMD5 and try again, or use a different crypt option:
-
-MD5ERR
- usage();
- }
-}
-
-# if your osname is in $newstyle_salt, then use new style salt (starts with '_' and contains
-# four bytes of iteration count and four bytes of salt). Otherwise, just use
-# the traditional two-byte salt.
-# see the man page on your system to decide if you have a newer crypt() lib.
-# I believe that 4.4BSD derived systems do (at least BSD/OS 2.0 does).
-# The new style crypt() allows up to 20 characters of the password to be
-# significant rather than only 8.
-#
-my $newstyle_salt_platforms = join '|', qw{bsdos}; #others?
-my $newstyle_salt = $^O =~ /(?:$newstyle_salt_platforms)/;
-
-# Some platforms just can't crypt() for Apache
-#
-my $crypt_not_supported_platforms = join '|', qw{MSWin32 NetWare}; #others?
-my $crypt_not_supported = $^O =~ /(?:$crypt_not_supported_platforms)/;
-
-my $crypt_method = "crypt";
-
-if ($crypt_not_supported) {
- $crypt_method = "md5";
-}
-
-# Some platforms won't jump through our favorite hoops
-#
-my $not_unix_platforms = join '|', qw{MSWin32 NetWare}; #others?
-my $not_unix = $^O =~ /(?:$not_unix_platforms)/;
-
-if ($crypt_not_supported) {
- $crypt_method = "md5";
-}
-
-if (@ARGV[0] eq "-d") {
- shift @ARGV;
- if ($crypt_not_supported) {
- print STDERR
- "Warning: Apache/$^O does not support crypt()ed passwords!\n\n";
- }
- $crypt_method = "crypt";
-}
-
-if (@ARGV[0] eq "-m") {
- shift @ARGV;
- $crypt_method = "md5";
-}
-
-if (@ARGV[0] eq "-p") {
- shift @ARGV;
- if (!$crypt_not_supported) {
- print STDERR
- "Warning: Apache/$^O does not support plaintext passwords!\n\n";
- }
- $crypt_method = "plain";
-}
-
-if (@ARGV[0] eq "-s") {
- shift @ARGV;
- need_sha1_crypt();
- $crypt_method = "sha1";
-}
-
-if ($crypt_method eq "md5") {
- need_md5_crypt();
-}
-
-my($file,$command,$key,$crypted_pwd,$groups,$comment) = @ARGV;
-
-usage() unless $file and $command and defined &{$dbmc::{$command}};
-
-# remove extension if any
-my $chop = join '|', qw{db.? pag dir};
-$file =~ s/\.($chop)$//;
-
-my $is_update = $command eq "update";
-my %DB = ();
-my @range = ();
-my($mode, $flags) = $command =~
- /^(?:view|check)$/ ? (0644, O_RDONLY) : (0644, O_RDWR|O_CREAT);
-
-tie (%DB, "AnyDBM_File", $file, $flags, $mode) || die "Can't tie $file: $!";
-dbmc->$command();
-untie %DB;
-
-
-my $x;
-sub genseed {
- my $psf;
- if ($not_unix) {
- srand (time ^ $$ or time ^ ($$ + ($$ << 15)));
- }
- else {
- for (qw(-xlwwa -le)) {
- `ps $_ 2>/dev/null`;
- $psf = $_, last unless $?;
- }
- srand (time ^ $$ ^ unpack("%L*", `ps $psf | gzip -f`));
- }
- @range = (qw(. /), '0'..'9','a'..'z','A'..'Z');
- $x = int scalar @range;
-}
-
-sub randchar {
- join '', map $range[rand $x], 1..shift||1;
-}
-
-sub saltpw_crypt {
- genseed() unless @range;
- return $newstyle_salt ?
- join '', "_", randchar, "a..", randchar(4) :
- randchar(2);
-}
-
-sub cryptpw_crypt {
- my ($pw, $salt) = @_;
- $salt = saltpw_crypt unless $salt;
- crypt $pw, $salt;
-}
-
-sub saltpw_md5 {
- genseed() unless @range;
- randchar(8);
-}
-
-sub cryptpw_md5 {
- my($pw, $salt) = @_;
- $salt = saltpw_md5 unless $salt;
- Crypt::PasswdMD5::apache_md5_crypt($pw, $salt);
-}
-
-sub cryptpw_sha1 {
- my($pw, $salt) = @_;
- '{SHA}' . Digest::SHA1::sha1_base64($pw) . "=";
-}
-
-sub cryptpw {
- if ($crypt_method eq "md5") {
- return cryptpw_md5(@_);
- } elsif ($crypt_method eq "sha1") {
- return cryptpw_sha1(@_);
- } elsif ($crypt_method eq "crypt") {
- return cryptpw_crypt(@_);
- }
- @_[0]; # otherwise return plaintext
-}
-
-sub getpass {
- my $prompt = shift || "Enter password:";
-
- unless($not_unix) {
- open STDIN, "/dev/tty" or warn "couldn't open /dev/tty $!\n";
- system "stty -echo;";
- }
-
- my($c,$pwd);
- print STDERR $prompt;
- while (($c = getc(STDIN)) ne '' and $c ne "\n" and $c ne "\r") {
- $pwd .= $c;
- }
-
- system "stty echo" unless $not_unix;
- print STDERR "\n";
- die "Can't use empty password!\n" unless length $pwd;
- return $pwd;
-}
-
-sub dbmc::update {
- die "Sorry, user `$key' doesn't exist!\n" unless $DB{$key};
- $crypted_pwd = (split /:/, $DB{$key}, 3)[0] if $crypted_pwd eq '.';
- $groups = (split /:/, $DB{$key}, 3)[1] if !$groups || $groups eq '.';
- $comment = (split /:/, $DB{$key}, 3)[2] if !$comment || $comment eq '.';
- if (!$crypted_pwd || $crypted_pwd eq '-') {
- dbmc->adduser;
- }
- else {
- dbmc->add;
- }
-}
-
-sub dbmc::add {
- die "Can't use empty password!\n" unless $crypted_pwd;
- unless($is_update) {
- die "Sorry, user `$key' already exists!\n" if $DB{$key};
- }
- $groups = '' if $groups eq '-';
- $comment = '' if $comment eq '-';
- $groups .= ":" . $comment if $comment;
- $crypted_pwd .= ":" . $groups if $groups;
- $DB{$key} = $crypted_pwd;
- my $action = $is_update ? "updated" : "added";
- print "User $key $action with password encrypted to $DB{$key} using $crypt_method\n";
-}
-
-sub dbmc::adduser {
- my $value = getpass "New password:";
- die "They don't match, sorry.\n" unless getpass("Re-type new password:") eq $value;
- $crypted_pwd = cryptpw $value;
- dbmc->add;
-}
-
-sub dbmc::delete {
- die "Sorry, user `$key' doesn't exist!\n" unless $DB{$key};
- delete $DB{$key}, print "`$key' deleted\n";
-}
-
-sub dbmc::view {
- print $key ? "$key:$DB{$key}\n" : map { "$_:$DB{$_}\n" if $DB{$_} } keys %DB;
-}
-
-sub dbmc::check {
- die "Sorry, user `$key' doesn't exist!\n" unless $DB{$key};
- my $chkpass = (split /:/, $DB{$key}, 3)[0];
- my $testpass = getpass();
- if (substr($chkpass, 0, 6) eq '$apr1$') {
- need_md5_crypt;
- $crypt_method = "md5";
- } elsif (substr($chkpass, 0, 5) eq '{SHA}') {
- need_sha1_crypt;
- $crypt_method = "sha1";
- } elsif (length($chkpass) == 13 && $chkpass ne $testpass) {
- $crypt_method = "crypt";
- } else {
- $crypt_method = "plain";
- }
- print $crypt_method . (cryptpw($testpass, $chkpass) eq $chkpass
- ? " password ok\n" : " password mismatch\n");
-}
-
-sub dbmc::import {
- while(defined($_ = <STDIN>) and chomp) {
- ($key,$crypted_pwd,$groups,$comment) = split /:/, $_, 4;
- dbmc->add;
- }
-}
-
diff --git a/rubbos/app/httpd-2.0.64/support/dbmmanage.in b/rubbos/app/httpd-2.0.64/support/dbmmanage.in
deleted file mode 100644
index df78f503..00000000
--- a/rubbos/app/httpd-2.0.64/support/dbmmanage.in
+++ /dev/null
@@ -1,312 +0,0 @@
-#!@perlbin@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-#for more functionality see the HTTPD::UserAdmin module:
-# http://www.perl.com/CPAN/modules/by-module/HTTPD/HTTPD-Tools-x.xx.tar.gz
-#
-# usage: dbmmanage <DBMfile> <command> <user> <password> <groups> <comment>
-
-package dbmmanage;
-# -ldb -lndbm -lgdbm -lsdbm
-BEGIN { @AnyDBM_File::ISA = qw(DB_File NDBM_File GDBM_File SDBM_File) }
-use strict;
-use Fcntl;
-use AnyDBM_File ();
-
-sub usage {
- my $cmds = join "|", sort keys %dbmc::;
- die <<SYNTAX;
-Usage: dbmmanage [enc] dbname command [username [pw [group[,group] [comment]]]]
-
- where enc is -d for crypt encryption (default except on Win32, Netware)
- -m for MD5 encryption (default on Win32, Netware)
- -s for SHA1 encryption
- -p for plaintext
-
- command is one of: $cmds
-
- pw of . for update command retains the old password
- pw of - (or blank) for update command prompts for the password
-
- groups or comment of . (or blank) for update command retains old values
- groups or comment of - for update command clears the existing value
- groups or comment of - for add and adduser commands is the empty value
-SYNTAX
-}
-
-sub need_sha1_crypt {
- if (!eval ('require "Digest/SHA1.pm";')) {
- print STDERR <<SHAERR;
-dbmmanage SHA1 passwords require the interface or the module Digest::SHA1
-available from CPAN:
-
- http://www.cpan.org/modules/by-module/Digest/Digest-MD5-2.12.tar.gz
-
-Please install Digest::SHA1 and try again, or use a different crypt option:
-
-SHAERR
- usage();
- }
-}
-
-sub need_md5_crypt {
- if (!eval ('require "Crypt/PasswdMD5.pm";')) {
- print STDERR <<MD5ERR;
-dbmmanage MD5 passwords require the module Crypt::PasswdMD5 available from CPAN
-
- http://www.cpan.org/modules/by-module/Crypt/Crypt-PasswdMD5-1.1.tar.gz
-
-Please install Crypt::PasswdMD5 and try again, or use a different crypt option:
-
-MD5ERR
- usage();
- }
-}
-
-# if your osname is in $newstyle_salt, then use new style salt (starts with '_' and contains
-# four bytes of iteration count and four bytes of salt). Otherwise, just use
-# the traditional two-byte salt.
-# see the man page on your system to decide if you have a newer crypt() lib.
-# I believe that 4.4BSD derived systems do (at least BSD/OS 2.0 does).
-# The new style crypt() allows up to 20 characters of the password to be
-# significant rather than only 8.
-#
-my $newstyle_salt_platforms = join '|', qw{bsdos}; #others?
-my $newstyle_salt = $^O =~ /(?:$newstyle_salt_platforms)/;
-
-# Some platforms just can't crypt() for Apache
-#
-my $crypt_not_supported_platforms = join '|', qw{MSWin32 NetWare}; #others?
-my $crypt_not_supported = $^O =~ /(?:$crypt_not_supported_platforms)/;
-
-my $crypt_method = "crypt";
-
-if ($crypt_not_supported) {
- $crypt_method = "md5";
-}
-
-# Some platforms won't jump through our favorite hoops
-#
-my $not_unix_platforms = join '|', qw{MSWin32 NetWare}; #others?
-my $not_unix = $^O =~ /(?:$not_unix_platforms)/;
-
-if ($crypt_not_supported) {
- $crypt_method = "md5";
-}
-
-if (@ARGV[0] eq "-d") {
- shift @ARGV;
- if ($crypt_not_supported) {
- print STDERR
- "Warning: Apache/$^O does not support crypt()ed passwords!\n\n";
- }
- $crypt_method = "crypt";
-}
-
-if (@ARGV[0] eq "-m") {
- shift @ARGV;
- $crypt_method = "md5";
-}
-
-if (@ARGV[0] eq "-p") {
- shift @ARGV;
- if (!$crypt_not_supported) {
- print STDERR
- "Warning: Apache/$^O does not support plaintext passwords!\n\n";
- }
- $crypt_method = "plain";
-}
-
-if (@ARGV[0] eq "-s") {
- shift @ARGV;
- need_sha1_crypt();
- $crypt_method = "sha1";
-}
-
-if ($crypt_method eq "md5") {
- need_md5_crypt();
-}
-
-my($file,$command,$key,$crypted_pwd,$groups,$comment) = @ARGV;
-
-usage() unless $file and $command and defined &{$dbmc::{$command}};
-
-# remove extension if any
-my $chop = join '|', qw{db.? pag dir};
-$file =~ s/\.($chop)$//;
-
-my $is_update = $command eq "update";
-my %DB = ();
-my @range = ();
-my($mode, $flags) = $command =~
- /^(?:view|check)$/ ? (0644, O_RDONLY) : (0644, O_RDWR|O_CREAT);
-
-tie (%DB, "AnyDBM_File", $file, $flags, $mode) || die "Can't tie $file: $!";
-dbmc->$command();
-untie %DB;
-
-
-my $x;
-sub genseed {
- my $psf;
- if ($not_unix) {
- srand (time ^ $$ or time ^ ($$ + ($$ << 15)));
- }
- else {
- for (qw(-xlwwa -le)) {
- `ps $_ 2>/dev/null`;
- $psf = $_, last unless $?;
- }
- srand (time ^ $$ ^ unpack("%L*", `ps $psf | gzip -f`));
- }
- @range = (qw(. /), '0'..'9','a'..'z','A'..'Z');
- $x = int scalar @range;
-}
-
-sub randchar {
- join '', map $range[rand $x], 1..shift||1;
-}
-
-sub saltpw_crypt {
- genseed() unless @range;
- return $newstyle_salt ?
- join '', "_", randchar, "a..", randchar(4) :
- randchar(2);
-}
-
-sub cryptpw_crypt {
- my ($pw, $salt) = @_;
- $salt = saltpw_crypt unless $salt;
- crypt $pw, $salt;
-}
-
-sub saltpw_md5 {
- genseed() unless @range;
- randchar(8);
-}
-
-sub cryptpw_md5 {
- my($pw, $salt) = @_;
- $salt = saltpw_md5 unless $salt;
- Crypt::PasswdMD5::apache_md5_crypt($pw, $salt);
-}
-
-sub cryptpw_sha1 {
- my($pw, $salt) = @_;
- '{SHA}' . Digest::SHA1::sha1_base64($pw) . "=";
-}
-
-sub cryptpw {
- if ($crypt_method eq "md5") {
- return cryptpw_md5(@_);
- } elsif ($crypt_method eq "sha1") {
- return cryptpw_sha1(@_);
- } elsif ($crypt_method eq "crypt") {
- return cryptpw_crypt(@_);
- }
- @_[0]; # otherwise return plaintext
-}
-
-sub getpass {
- my $prompt = shift || "Enter password:";
-
- unless($not_unix) {
- open STDIN, "/dev/tty" or warn "couldn't open /dev/tty $!\n";
- system "stty -echo;";
- }
-
- my($c,$pwd);
- print STDERR $prompt;
- while (($c = getc(STDIN)) ne '' and $c ne "\n" and $c ne "\r") {
- $pwd .= $c;
- }
-
- system "stty echo" unless $not_unix;
- print STDERR "\n";
- die "Can't use empty password!\n" unless length $pwd;
- return $pwd;
-}
-
-sub dbmc::update {
- die "Sorry, user `$key' doesn't exist!\n" unless $DB{$key};
- $crypted_pwd = (split /:/, $DB{$key}, 3)[0] if $crypted_pwd eq '.';
- $groups = (split /:/, $DB{$key}, 3)[1] if !$groups || $groups eq '.';
- $comment = (split /:/, $DB{$key}, 3)[2] if !$comment || $comment eq '.';
- if (!$crypted_pwd || $crypted_pwd eq '-') {
- dbmc->adduser;
- }
- else {
- dbmc->add;
- }
-}
-
-sub dbmc::add {
- die "Can't use empty password!\n" unless $crypted_pwd;
- unless($is_update) {
- die "Sorry, user `$key' already exists!\n" if $DB{$key};
- }
- $groups = '' if $groups eq '-';
- $comment = '' if $comment eq '-';
- $groups .= ":" . $comment if $comment;
- $crypted_pwd .= ":" . $groups if $groups;
- $DB{$key} = $crypted_pwd;
- my $action = $is_update ? "updated" : "added";
- print "User $key $action with password encrypted to $DB{$key} using $crypt_method\n";
-}
-
-sub dbmc::adduser {
- my $value = getpass "New password:";
- die "They don't match, sorry.\n" unless getpass("Re-type new password:") eq $value;
- $crypted_pwd = cryptpw $value;
- dbmc->add;
-}
-
-sub dbmc::delete {
- die "Sorry, user `$key' doesn't exist!\n" unless $DB{$key};
- delete $DB{$key}, print "`$key' deleted\n";
-}
-
-sub dbmc::view {
- print $key ? "$key:$DB{$key}\n" : map { "$_:$DB{$_}\n" if $DB{$_} } keys %DB;
-}
-
-sub dbmc::check {
- die "Sorry, user `$key' doesn't exist!\n" unless $DB{$key};
- my $chkpass = (split /:/, $DB{$key}, 3)[0];
- my $testpass = getpass();
- if (substr($chkpass, 0, 6) eq '$apr1$') {
- need_md5_crypt;
- $crypt_method = "md5";
- } elsif (substr($chkpass, 0, 5) eq '{SHA}') {
- need_sha1_crypt;
- $crypt_method = "sha1";
- } elsif (length($chkpass) == 13 && $chkpass ne $testpass) {
- $crypt_method = "crypt";
- } else {
- $crypt_method = "plain";
- }
- print $crypt_method . (cryptpw($testpass, $chkpass) eq $chkpass
- ? " password ok\n" : " password mismatch\n");
-}
-
-sub dbmc::import {
- while(defined($_ = <STDIN>) and chomp) {
- ($key,$crypted_pwd,$groups,$comment) = split /:/, $_, 4;
- dbmc->add;
- }
-}
-
diff --git a/rubbos/app/httpd-2.0.64/support/envvars-std b/rubbos/app/httpd-2.0.64/support/envvars-std
deleted file mode 100644
index 771c6c59..00000000
--- a/rubbos/app/httpd-2.0.64/support/envvars-std
+++ /dev/null
@@ -1,24 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#
-# envvars-std - default environment variables for apachectl
-#
-# This file is generated from envvars-std.in
-#
-LD_LIBRARY_PATH="/bottlenecks/rubbos/app/apache2/lib:$LD_LIBRARY_PATH"
-export LD_LIBRARY_PATH
-#
-
diff --git a/rubbos/app/httpd-2.0.64/support/envvars-std.in b/rubbos/app/httpd-2.0.64/support/envvars-std.in
deleted file mode 100644
index cf50c5c7..00000000
--- a/rubbos/app/httpd-2.0.64/support/envvars-std.in
+++ /dev/null
@@ -1,24 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#
-# envvars-std - default environment variables for apachectl
-#
-# This file is generated from envvars-std.in
-#
-@SHLIBPATH_VAR@="@exp_libdir@:$@SHLIBPATH_VAR@"
-export @SHLIBPATH_VAR@
-#
-@OS_SPECIFIC_VARS@
diff --git a/rubbos/app/httpd-2.0.64/support/htdbm b/rubbos/app/httpd-2.0.64/support/htdbm
deleted file mode 100755
index 63c9fce2..00000000
--- a/rubbos/app/httpd-2.0.64/support/htdbm
+++ /dev/null
@@ -1,131 +0,0 @@
-#! /bin/bash
-
-# htdbm - temporary wrapper script for .libs/htdbm
-# Generated by ltmain.sh - GNU libtool 1.5.26 (1.1220.2.493 2008/02/01 16:58:18)
-#
-# The htdbm program cannot be directly executed until all the libtool
-# libraries that it depends on are installed.
-#
-# This wrapper script should never be moved out of the build directory.
-# If it is, it will not operate correctly.
-
-# Sed substitution that helps us do robust quoting. It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='/bin/sed -e 1s/^X//'
-sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
-
-# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
-fi
-BIN_SH=xpg4; export BIN_SH # for Tru64
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-relink_command="(cd /bottlenecks/rubbos/app/httpd-2.0.64/support; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=\"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games\"; export PATH; gcc -g -O2 -pthread -D_REENTRANT -D_GNU_SOURCE -DAP_HAVE_DESIGNATED_INITIALIZER -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/include -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/include -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/lib -I. -I/bottlenecks/rubbos/app/httpd-2.0.64/os/unix -I/bottlenecks/rubbos/app/httpd-2.0.64/server/mpm/worker -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/http -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/filters -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/proxy -I/bottlenecks/rubbos/app/httpd-2.0.64/include -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/generators -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/dav/main -o \$progdir/\$file .libs/htdbm.o -Wl,--export-dynamic -L/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/lib /bottlenecks/rubbos/app/httpd-2.0.64/srclib/pcre/.libs/libpcre.a /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/.libs/libaprutil-0.so /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/.libs/libexpat.so /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/.libs/libapr-0.so -lrt -lm -lcrypt -lnsl -lpthread -ldl -Wl,--rpath -Wl,/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/.libs -Wl,--rpath -Wl,/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/.libs -Wl,--rpath -Wl,/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/.libs -Wl,--rpath -Wl,/bottlenecks/rubbos/app/apache2/lib ) "
-
-# This environment variable determines our operation mode.
-if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
- # install mode needs the following variable:
- notinst_deplibs=' /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/libaprutil-0.la /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/libexpat.la /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/libapr-0.la'
-else
- # When we are sourced in execute mode, $file and $echo are already set.
- if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
- echo="echo"
- file="$0"
- # Make sure echo works.
- if test "X$1" = X--no-reexec; then
- # Discard the --no-reexec flag, and continue.
- shift
- elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
- # Yippee, $echo works!
- :
- else
- # Restart under the correct shell, and then maybe $echo will work.
- exec /bin/bash "$0" --no-reexec ${1+"$@"}
- fi
- fi
-
- # Find the directory that this script lives in.
- thisdir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
- test "x$thisdir" = "x$file" && thisdir=.
-
- # Follow symbolic links until we get to the real thisdir.
- file=`ls -ld "$file" | /bin/sed -n 's/.*-> //p'`
- while test -n "$file"; do
- destdir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
-
- # If there was a directory component, then change thisdir.
- if test "x$destdir" != "x$file"; then
- case "$destdir" in
- [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
- *) thisdir="$thisdir/$destdir" ;;
- esac
- fi
-
- file=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
- file=`ls -ld "$thisdir/$file" | /bin/sed -n 's/.*-> //p'`
- done
-
- # Try to get the absolute directory name.
- absdir=`cd "$thisdir" && pwd`
- test -n "$absdir" && thisdir="$absdir"
-
- program=lt-'htdbm'
- progdir="$thisdir/.libs"
-
- if test ! -f "$progdir/$program" || \
- { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /bin/sed 1q`; \
- test "X$file" != "X$progdir/$program"; }; then
-
- file="$$-$program"
-
- if test ! -d "$progdir"; then
- mkdir "$progdir"
- else
- rm -f "$progdir/$file"
- fi
-
- # relink executable if necessary
- if test -n "$relink_command"; then
- if relink_command_output=`eval $relink_command 2>&1`; then :
- else
- echo "$relink_command_output" >&2
- rm -f "$progdir/$file"
- exit 1
- fi
- fi
-
- mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
- { rm -f "$progdir/$program";
- mv -f "$progdir/$file" "$progdir/$program"; }
- rm -f "$progdir/$file"
- fi
-
- if test -f "$progdir/$program"; then
- if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
- # Run the actual program with our arguments.
-
- exec "$progdir/$program" ${1+"$@"}
-
- $echo "$0: cannot exec $program $*"
- exit 1
- fi
- else
- # The program doesn't exist.
- $echo "$0: error: \`$progdir/$program' does not exist" 1>&2
- $echo "This script is just a wrapper for $program." 1>&2
- echo "See the libtool documentation for more information." 1>&2
- exit 1
- fi
-fi
diff --git a/rubbos/app/httpd-2.0.64/support/htdbm.c b/rubbos/app/httpd-2.0.64/support/htdbm.c
deleted file mode 100644
index db1d1378..00000000
--- a/rubbos/app/httpd-2.0.64/support/htdbm.c
+++ /dev/null
@@ -1,585 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * htdbm.c: simple program for manipulating DBM
- * password databases for the Apache HTTP server
- *
- * Contributed by Mladen Turk <mturk@mappingsoft.com>
- * 12 Oct 2001
- */
-
-#include "apr.h"
-#include "apr_lib.h"
-#include "apr_strings.h"
-#include "apr_file_io.h"
-#include "apr_file_info.h"
-#include "apr_pools.h"
-#include "apr_signal.h"
-#include "apr_md5.h"
-#include "apr_sha1.h"
-#include "apr_dbm.h"
-
-#if APR_HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#if APR_HAVE_STRING_H
-#include <string.h>
-#endif
-#if APR_HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#include <time.h>
-
-#if APR_CHARSET_EBCDIC
-#include "apr_xlate.h"
-#endif /*APR_CHARSET_EBCDIC*/
-
-#if APR_HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#if APR_HAVE_CRYPT_H
-#include <crypt.h>
-#endif
-
-
-#if !APR_CHARSET_EBCDIC
-#define LF 10
-#define CR 13
-#else /*APR_CHARSET_EBCDIC*/
-#define LF '\n'
-#define CR '\r'
-#endif /*APR_CHARSET_EBCDIC*/
-
-#define MAX_STRING_LEN 256
-#define ALG_PLAIN 0
-#define ALG_APMD5 1
-#define ALG_APSHA 2
-
-#if APR_HAVE_CRYPT_H
-#define ALG_CRYPT 3
-#endif
-
-
-#define ERR_FILEPERM 1
-#define ERR_SYNTAX 2
-#define ERR_PWMISMATCH 3
-#define ERR_INTERRUPTED 4
-#define ERR_OVERFLOW 5
-#define ERR_BADUSER 6
-#define ERR_EMPTY 7
-
-
-typedef struct htdbm_t htdbm_t;
-
-struct htdbm_t {
- apr_dbm_t *dbm;
- apr_pool_t *pool;
-#if APR_CHARSET_EBCDIC
- apr_xlate_t *to_ascii;
-#endif
- char *filename;
- char *username;
- char *userpass;
- char *comment;
- char *type;
- int create;
- int rdonly;
- int alg;
-};
-
-
-#define HTDBM_MAKE 0
-#define HTDBM_DELETE 1
-#define HTDBM_VERIFY 2
-#define HTDBM_LIST 3
-#define HTDBM_NOFILE 4
-#define HTDBM_STDIN 5
-
-static void terminate(void)
-{
- apr_terminate();
-#ifdef NETWARE
- pressanykey();
-#endif
-}
-
-static void htdbm_terminate(htdbm_t *htdbm)
-{
- if (htdbm->dbm)
- apr_dbm_close(htdbm->dbm);
- htdbm->dbm = NULL;
-}
-
-static htdbm_t *h;
-
-static void htdbm_interrupted(void)
-{
- htdbm_terminate(h);
- fprintf(stderr, "htdbm Interrupted !\n");
- exit(ERR_INTERRUPTED);
-}
-
-static apr_status_t htdbm_init(apr_pool_t **pool, htdbm_t **hdbm)
-{
-
-#if APR_CHARSET_EBCDIC
- apr_status_t rv;
-#endif
-
- apr_pool_create( pool, NULL);
- apr_signal(SIGINT, (void (*)(int)) htdbm_interrupted);
-
- (*hdbm) = (htdbm_t *)apr_pcalloc(*pool, sizeof(htdbm_t));
- (*hdbm)->pool = *pool;
-
-#if APR_CHARSET_EBCDIC
- rv = apr_xlate_open(&((*hdbm)->to_ascii), "ISO8859-1", APR_DEFAULT_CHARSET, (*hdbm)->pool);
- if (rv) {
- fprintf(stderr, "apr_xlate_open(to ASCII)->%d\n", rv);
- return APR_EGENERAL;
- }
- rv = apr_SHA1InitEBCDIC((*hdbm)->to_ascii);
- if (rv) {
- fprintf(stderr, "apr_SHA1InitEBCDIC()->%d\n", rv);
- return APR_EGENERAL;
- }
- rv = apr_MD5InitEBCDIC((*hdbm)->to_ascii);
- if (rv) {
- fprintf(stderr, "apr_MD5InitEBCDIC()->%d\n", rv);
- return APR_EGENERAL;
- }
-#endif /*APR_CHARSET_EBCDIC*/
-
- /* Set MD5 as default */
- (*hdbm)->alg = ALG_APMD5;
- (*hdbm)->type = "default";
- return APR_SUCCESS;
-}
-
-static apr_status_t htdbm_open(htdbm_t *htdbm)
-{
- if (htdbm->create)
- return apr_dbm_open_ex(&htdbm->dbm, htdbm->type, htdbm->filename, APR_DBM_RWCREATE,
- APR_OS_DEFAULT, htdbm->pool);
- else
- return apr_dbm_open_ex(&htdbm->dbm, htdbm->type, htdbm->filename,
- htdbm->rdonly ? APR_DBM_READONLY : APR_DBM_READWRITE,
- APR_OS_DEFAULT, htdbm->pool);
-}
-
-static apr_status_t htdbm_save(htdbm_t *htdbm, int *changed)
-{
- apr_datum_t key, val;
-
- if (!htdbm->username)
- return APR_SUCCESS;
-
- key.dptr = htdbm->username;
- key.dsize = strlen(htdbm->username);
- if (apr_dbm_exists(htdbm->dbm, key))
- *changed = 1;
-
- val.dsize = strlen(htdbm->userpass);
- if (!htdbm->comment)
- val.dptr = htdbm->userpass;
- else {
- val.dptr = apr_pstrcat(htdbm->pool, htdbm->userpass, ":",
- htdbm->comment, NULL);
- val.dsize += (strlen(htdbm->comment) + 1);
- }
- return apr_dbm_store(htdbm->dbm, key, val);
-}
-
-static apr_status_t htdbm_del(htdbm_t *htdbm)
-{
- apr_datum_t key;
-
- key.dptr = htdbm->username;
- key.dsize = strlen(htdbm->username);
- if (!apr_dbm_exists(htdbm->dbm, key))
- return APR_ENOENT;
-
- return apr_dbm_delete(htdbm->dbm, key);
-}
-
-static apr_status_t htdbm_verify(htdbm_t *htdbm)
-{
- apr_datum_t key, val;
- char pwd[MAX_STRING_LEN] = {0};
- char *rec, *cmnt;
-
- key.dptr = htdbm->username;
- key.dsize = strlen(htdbm->username);
- if (!apr_dbm_exists(htdbm->dbm, key))
- return APR_ENOENT;
- if (apr_dbm_fetch(htdbm->dbm, key, &val) != APR_SUCCESS)
- return APR_ENOENT;
- rec = apr_pstrndup(htdbm->pool, val.dptr, val.dsize);
- cmnt = strchr(rec, ';');
- if (cmnt)
- strncpy(pwd, rec, cmnt - rec);
- else
- strcpy(pwd, rec);
- return apr_password_validate(htdbm->userpass, pwd);
-}
-
-static apr_status_t htdbm_list(htdbm_t *htdbm)
-{
- apr_status_t rv;
- apr_datum_t key, val;
- char *rec, *cmnt;
- char kb[MAX_STRING_LEN];
- int i = 0;
-
- rv = apr_dbm_firstkey(htdbm->dbm, &key);
- if (rv != APR_SUCCESS) {
- fprintf(stderr, "Empty database -- %s\n", htdbm->filename);
- return APR_ENOENT;
- }
- rec = apr_pcalloc(htdbm->pool, HUGE_STRING_LEN);
-
- fprintf(stderr, "Dumping records from database -- %s\n", htdbm->filename);
- fprintf(stderr, " %-32sComment\n", "Username");
- while (key.dptr != NULL) {
- rv = apr_dbm_fetch(htdbm->dbm, key, &val);
- if (rv != APR_SUCCESS) {
- fprintf(stderr, "Failed getting data from %s\n", htdbm->filename);
- return APR_EGENERAL;
- }
- strncpy(kb, key.dptr, key.dsize);
- kb[key.dsize] = '\0';
- fprintf(stderr, " %-32s", kb);
- strncpy(rec, val.dptr, val.dsize);
- rec[val.dsize] = '\0';
- cmnt = strchr(rec, ':');
- if (cmnt)
- fprintf(stderr, cmnt + 1);
- fprintf(stderr, "\n");
- rv = apr_dbm_nextkey(htdbm->dbm, &key);
- if (rv != APR_SUCCESS)
- fprintf(stderr, "Failed getting NextKey\n");
- ++i;
- }
-
- fprintf(stderr, "Total #records : %d\n", i);
- return APR_SUCCESS;
-}
-
-static void to64(char *s, unsigned long v, int n)
-{
- static unsigned char itoa64[] = /* 0 ... 63 => ASCII - 64 */
- "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
-
- while (--n >= 0) {
- *s++ = itoa64[v&0x3f];
- v >>= 6;
- }
-}
-
-static apr_status_t htdbm_make(htdbm_t *htdbm)
-{
- char cpw[MAX_STRING_LEN];
- char salt[9];
-
- switch (htdbm->alg) {
- case ALG_APSHA:
- /* XXX cpw >= 28 + strlen(sha1) chars - fixed len SHA */
- apr_sha1_base64(htdbm->userpass,strlen(htdbm->userpass),cpw);
- break;
-
- case ALG_APMD5:
- (void) srand((int) time((time_t *) NULL));
- to64(&salt[0], rand(), 8);
- salt[8] = '\0';
- apr_md5_encode((const char *)htdbm->userpass, (const char *)salt,
- cpw, sizeof(cpw));
- break;
- case ALG_PLAIN:
- /* XXX this len limitation is not in sync with any HTTPd len. */
- apr_cpystrn(cpw,htdbm->userpass,sizeof(cpw));
- break;
-#if APR_HAVE_CRYPT_H
- case ALG_CRYPT:
- (void) srand((int) time((time_t *) NULL));
- to64(&salt[0], rand(), 8);
- salt[8] = '\0';
- apr_cpystrn(cpw, (char *)crypt(htdbm->userpass, salt), sizeof(cpw) - 1);
- fprintf(stderr, "CRYPT is now deprecated, use MD5 instead!\n");
-#endif
- default:
- break;
- }
- htdbm->userpass = apr_pstrdup(htdbm->pool, cpw);
- return APR_SUCCESS;
-}
-
-static apr_status_t htdbm_valid_username(htdbm_t *htdbm)
-{
- if (!htdbm->username || (strlen(htdbm->username) > 64) || (strlen(htdbm->username) < 1)) {
- fprintf(stderr, "Invalid username length\n");
- return APR_EINVAL;
- }
- if (strchr(htdbm->username, ':')) {
- fprintf(stderr, "Username contains invalid characters\n");
- return APR_EINVAL;
- }
- return APR_SUCCESS;
-}
-
-static void htdbm_usage(void)
-{
-
-#if APR_HAVE_CRYPT_H
-#define CRYPT_OPTION "d"
-#else
-#define CRYPT_OPTION ""
-#endif
- fprintf(stderr, "htdbm -- program for manipulating DBM password databases.\n\n");
- fprintf(stderr, "Usage: htdbm [-cm"CRYPT_OPTION"pstvx] [-TDBTYPE] database username\n");
- fprintf(stderr, " -b[cm"CRYPT_OPTION"ptsv] [-TDBTYPE] database username password\n");
- fprintf(stderr, " -n[m"CRYPT_OPTION"pst] username\n");
- fprintf(stderr, " -nb[m"CRYPT_OPTION"pst] username password\n");
- fprintf(stderr, " -v[m"CRYPT_OPTION"ps] [-TDBTYPE] database username\n");
- fprintf(stderr, " -vb[m"CRYPT_OPTION"ps] [-TDBTYPE] database username password\n");
- fprintf(stderr, " -x[m"CRYPT_OPTION"ps] [-TDBTYPE] database username\n");
- fprintf(stderr, " -l [-TDBTYPE] database\n");
- fprintf(stderr, "Options:\n");
- fprintf(stderr, " -b Use the password from the command line rather "
- "than prompting for it.\n");
- fprintf(stderr, " -c Create a new database.\n");
- fprintf(stderr, " -n Don't update database; display results on stdout.\n");
- fprintf(stderr, " -m Force MD5 encryption of the password (default).\n");
-#if APR_HAVE_CRYPT_H
- fprintf(stderr, " -d Force CRYPT encryption of the password (now deprecated).\n");
-#endif
- fprintf(stderr, " -p Do not encrypt the password (plaintext).\n");
- fprintf(stderr, " -s Force SHA encryption of the password.\n");
- fprintf(stderr, " -T DBM Type (SDBM|GDBM|DB|default).\n");
- fprintf(stderr, " -l Display usernames from database on stdout.\n");
- fprintf(stderr, " -t The last param is username comment.\n");
- fprintf(stderr, " -v Verify the username/password.\n");
- fprintf(stderr, " -x Remove the username record from database.\n");
- exit(ERR_SYNTAX);
-
-}
-
-
-int main(int argc, const char * const argv[])
-{
- apr_pool_t *pool;
- apr_status_t rv;
- apr_size_t l;
- char pwi[MAX_STRING_LEN];
- char pwc[MAX_STRING_LEN];
- char errbuf[MAX_STRING_LEN];
- const char *arg;
- int need_file = 1;
- int need_user = 1;
- int need_pwd = 1;
- int need_cmnt = 0;
- int pwd_supplied = 0;
- int changed;
- int cmd = HTDBM_MAKE;
- int i;
- int args_left = 2;
-
- apr_app_initialize(&argc, &argv, NULL);
- atexit(terminate);
-
- if ((rv = htdbm_init(&pool, &h)) != APR_SUCCESS) {
- fprintf(stderr, "Unable to initialize htdbm terminating!\n");
- apr_strerror(rv, errbuf, sizeof(errbuf));
- exit(1);
- }
- /*
- * Preliminary check to make sure they provided at least
- * three arguments, we'll do better argument checking as
- * we parse the command line.
- */
- if (argc < 3)
- htdbm_usage();
- /*
- * Go through the argument list and pick out any options. They
- * have to precede any other arguments.
- */
- for (i = 1; i < argc; i++) {
- arg = argv[i];
- if (*arg != '-')
- break;
-
- while (*++arg != '\0') {
- switch (*arg) {
- case 'b':
- pwd_supplied = 1;
- need_pwd = 0;
- args_left++;
- break;
- case 'c':
- h->create = 1;
- break;
- case 'n':
- need_file = 0;
- cmd = HTDBM_NOFILE;
- args_left--;
- break;
- case 'l':
- need_pwd = 0;
- need_user = 0;
- cmd = HTDBM_LIST;
- h->rdonly = 1;
- args_left--;
- break;
- case 't':
- need_cmnt = 1;
- args_left++;
- break;
- case 'T':
- h->type = apr_pstrdup(h->pool, ++arg);
- while (*arg != '\0')
- ++arg;
- --arg; /* so incrementing this in the loop with find a null */
- break;
- case 'v':
- h->rdonly = 1;
- cmd = HTDBM_VERIFY;
- break;
- case 'x':
- need_pwd = 0;
- cmd = HTDBM_DELETE;
- break;
- case 'm':
- h->alg = ALG_APMD5;
- break;
- case 'p':
- h->alg = ALG_PLAIN;
- break;
- case 's':
- h->alg = ALG_APSHA;
- break;
-#if APR_HAVE_CRYPT_H
- case 'd':
- h->alg = ALG_CRYPT;
- break;
-#endif
- default:
- htdbm_usage();
- break;
- }
- }
- }
- /*
- * Make sure we still have exactly the right number of arguments left
- * (the filename, the username, and possibly the password if -b was
- * specified).
- */
- if ((argc - i) != args_left)
- htdbm_usage();
-
- if (!need_file)
- i--;
- else {
- h->filename = apr_pstrdup(h->pool, argv[i]);
- if ((rv = htdbm_open(h)) != APR_SUCCESS) {
- fprintf(stderr, "Error opening database %s\n", argv[i]);
- apr_strerror(rv, errbuf, sizeof(errbuf));
- fprintf(stderr,"%s\n",errbuf);
- exit(ERR_FILEPERM);
- }
- }
- if (need_user) {
- h->username = apr_pstrdup(pool, argv[i+1]);
- if (htdbm_valid_username(h) != APR_SUCCESS)
- exit(ERR_BADUSER);
- }
- if (pwd_supplied)
- h->userpass = apr_pstrdup(pool, argv[i+2]);
-
- if (need_pwd) {
- l = sizeof(pwc);
- if (apr_password_get("Enter password : ", pwi, &l) != APR_SUCCESS) {
- fprintf(stderr, "Password too long\n");
- exit(ERR_OVERFLOW);
- }
- l = sizeof(pwc);
- if (apr_password_get("Re-type password : ", pwc, &l) != APR_SUCCESS) {
- fprintf(stderr, "Password too long\n");
- exit(ERR_OVERFLOW);
- }
- if (strcmp(pwi, pwc) != 0) {
- fprintf(stderr, "Password verification error\n");
- exit(ERR_PWMISMATCH);
- }
-
- h->userpass = apr_pstrdup(pool, pwi);
- }
- if (need_cmnt && pwd_supplied)
- h->comment = apr_pstrdup(pool, argv[i+3]);
- else if (need_cmnt)
- h->comment = apr_pstrdup(pool, argv[i+2]);
-
- switch (cmd) {
- case HTDBM_VERIFY:
- if ((rv = htdbm_verify(h)) != APR_SUCCESS) {
- if(rv == APR_ENOENT) {
- fprintf(stderr, "The user '%s' could not be found in database\n", h->username);
- exit(ERR_BADUSER);
- }
- else {
- fprintf(stderr, "Password mismatch for user '%s'\n", h->username);
- exit(ERR_PWMISMATCH);
- }
- }
- else
- fprintf(stderr, "Password validated for user '%s'\n", h->username);
- break;
- case HTDBM_DELETE:
- if (htdbm_del(h) != APR_SUCCESS) {
- fprintf(stderr, "Cannot find user '%s' in database\n", h->username);
- exit(ERR_BADUSER);
- }
- h->username = NULL;
- changed = 1;
- break;
- case HTDBM_LIST:
- htdbm_list(h);
- break;
- default:
- htdbm_make(h);
- break;
-
- }
- if (need_file && !h->rdonly) {
- if ((rv = htdbm_save(h, &changed)) != APR_SUCCESS) {
- apr_strerror(rv, errbuf, sizeof(errbuf));
- exit(ERR_FILEPERM);
- }
- fprintf(stdout, "Database %s %s.\n", h->filename,
- h->create ? "created" : (changed ? "modified" : "updated"));
- }
- if (cmd == HTDBM_NOFILE) {
- if (!need_cmnt) {
- fprintf(stderr, "%s:%s\n", h->username, h->userpass);
- }
- else {
- fprintf(stderr, "%s:%s:%s\n", h->username, h->userpass,
- h->comment);
- }
- }
- htdbm_terminate(h);
-
- return 0; /* Suppress compiler warning. */
-}
diff --git a/rubbos/app/httpd-2.0.64/support/htdbm.dsp b/rubbos/app/httpd-2.0.64/support/htdbm.dsp
deleted file mode 100644
index c00c2c84..00000000
--- a/rubbos/app/httpd-2.0.64/support/htdbm.dsp
+++ /dev/null
@@ -1,123 +0,0 @@
-# Microsoft Developer Studio Project File - Name="htdbm" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=htdbm - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "htdbm.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "htdbm.mak" CFG="htdbm - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "htdbm - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "htdbm - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "htdbm - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /FD /c
-# ADD CPP /nologo /MD /W3 /Zi /O2 /I "../srclib/apr/include" /I "../srclib/apr-util/include" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /Fd"Release/htdbm_src" /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib advapi32.lib wsock32.lib ws2_32.lib shell32.lib /nologo /subsystem:console
-# ADD LINK32 kernel32.lib advapi32.lib wsock32.lib ws2_32.lib shell32.lib /nologo /subsystem:console /debug /opt:ref
-
-!ELSEIF "$(CFG)" == "htdbm - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MDd /W3 /EHsc /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /FD /c
-# ADD CPP /nologo /MDd /W3 /EHsc /Zi /Od /I "../srclib/apr/include" /I "../srclib/apr-util/include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /Fd"Debug/htdbm_src" /FD /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib advapi32.lib wsock32.lib ws2_32.lib shell32.lib /nologo /subsystem:console /incremental:no /debug
-# ADD LINK32 kernel32.lib advapi32.lib wsock32.lib ws2_32.lib shell32.lib /nologo /subsystem:console /incremental:no /debug
-
-!ENDIF
-
-# Begin Target
-
-# Name "htdbm - Win32 Release"
-# Name "htdbm - Win32 Debug"
-# Begin Source File
-
-SOURCE=.\htdbm.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\htdbm.rc
-# End Source File
-# Begin Source File
-
-SOURCE=..\build\win32\win32ver.awk
-
-!IF "$(CFG)" == "htdbm - Win32 Release"
-
-# PROP Ignore_Default_Tool 1
-# Begin Custom Build - Creating Version Resource
-InputPath=..\build\win32\win32ver.awk
-
-".\htdbm.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- awk -f ../build/win32/win32ver.awk htdbm.exe "htdbm Utility" ../include/ap_release.h > .\htdbm.rc
-
-# End Custom Build
-
-!ELSEIF "$(CFG)" == "htdbm - Win32 Debug"
-
-# PROP Ignore_Default_Tool 1
-# Begin Custom Build - Creating Version Resource
-InputPath=..\build\win32\win32ver.awk
-
-".\htdbm.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- awk -f ../build/win32/win32ver.awk htdbm.exe "htdbm Utility" ../include/ap_release.h > .\htdbm.rc
-
-# End Custom Build
-
-!ENDIF
-
-# End Source File
-# End Target
-# End Project
diff --git a/rubbos/app/httpd-2.0.64/support/htdbm.lo b/rubbos/app/httpd-2.0.64/support/htdbm.lo
deleted file mode 100644
index 1397a739..00000000
--- a/rubbos/app/httpd-2.0.64/support/htdbm.lo
+++ /dev/null
@@ -1,12 +0,0 @@
-# htdbm.lo - a libtool object file
-# Generated by ltmain.sh - GNU libtool 1.5.26 (1.1220.2.493 2008/02/01 16:58:18)
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# Name of the PIC object.
-pic_object='.libs/htdbm.o'
-
-# Name of the non-PIC object.
-non_pic_object='htdbm.o'
-
diff --git a/rubbos/app/httpd-2.0.64/support/htdbm.o b/rubbos/app/httpd-2.0.64/support/htdbm.o
deleted file mode 100644
index 35bf9bd8..00000000
--- a/rubbos/app/httpd-2.0.64/support/htdbm.o
+++ /dev/null
Binary files differ
diff --git a/rubbos/app/httpd-2.0.64/support/htdigest b/rubbos/app/httpd-2.0.64/support/htdigest
deleted file mode 100755
index 61c78dd4..00000000
--- a/rubbos/app/httpd-2.0.64/support/htdigest
+++ /dev/null
@@ -1,131 +0,0 @@
-#! /bin/bash
-
-# htdigest - temporary wrapper script for .libs/htdigest
-# Generated by ltmain.sh - GNU libtool 1.5.26 (1.1220.2.493 2008/02/01 16:58:18)
-#
-# The htdigest program cannot be directly executed until all the libtool
-# libraries that it depends on are installed.
-#
-# This wrapper script should never be moved out of the build directory.
-# If it is, it will not operate correctly.
-
-# Sed substitution that helps us do robust quoting. It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='/bin/sed -e 1s/^X//'
-sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
-
-# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
-fi
-BIN_SH=xpg4; export BIN_SH # for Tru64
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-relink_command="(cd /bottlenecks/rubbos/app/httpd-2.0.64/support; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=\"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games\"; export PATH; gcc -g -O2 -pthread -D_REENTRANT -D_GNU_SOURCE -DAP_HAVE_DESIGNATED_INITIALIZER -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/include -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/include -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/lib -I. -I/bottlenecks/rubbos/app/httpd-2.0.64/os/unix -I/bottlenecks/rubbos/app/httpd-2.0.64/server/mpm/worker -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/http -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/filters -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/proxy -I/bottlenecks/rubbos/app/httpd-2.0.64/include -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/generators -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/dav/main -o \$progdir/\$file .libs/htdigest.o -Wl,--export-dynamic -L/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/lib /bottlenecks/rubbos/app/httpd-2.0.64/srclib/pcre/.libs/libpcre.a /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/.libs/libaprutil-0.so /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/.libs/libexpat.so /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/.libs/libapr-0.so -lrt -lm -lcrypt -lnsl -lpthread -ldl -Wl,--rpath -Wl,/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/.libs -Wl,--rpath -Wl,/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/.libs -Wl,--rpath -Wl,/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/.libs -Wl,--rpath -Wl,/bottlenecks/rubbos/app/apache2/lib ) "
-
-# This environment variable determines our operation mode.
-if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
- # install mode needs the following variable:
- notinst_deplibs=' /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/libaprutil-0.la /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/libexpat.la /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/libapr-0.la'
-else
- # When we are sourced in execute mode, $file and $echo are already set.
- if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
- echo="echo"
- file="$0"
- # Make sure echo works.
- if test "X$1" = X--no-reexec; then
- # Discard the --no-reexec flag, and continue.
- shift
- elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
- # Yippee, $echo works!
- :
- else
- # Restart under the correct shell, and then maybe $echo will work.
- exec /bin/bash "$0" --no-reexec ${1+"$@"}
- fi
- fi
-
- # Find the directory that this script lives in.
- thisdir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
- test "x$thisdir" = "x$file" && thisdir=.
-
- # Follow symbolic links until we get to the real thisdir.
- file=`ls -ld "$file" | /bin/sed -n 's/.*-> //p'`
- while test -n "$file"; do
- destdir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
-
- # If there was a directory component, then change thisdir.
- if test "x$destdir" != "x$file"; then
- case "$destdir" in
- [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
- *) thisdir="$thisdir/$destdir" ;;
- esac
- fi
-
- file=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
- file=`ls -ld "$thisdir/$file" | /bin/sed -n 's/.*-> //p'`
- done
-
- # Try to get the absolute directory name.
- absdir=`cd "$thisdir" && pwd`
- test -n "$absdir" && thisdir="$absdir"
-
- program=lt-'htdigest'
- progdir="$thisdir/.libs"
-
- if test ! -f "$progdir/$program" || \
- { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /bin/sed 1q`; \
- test "X$file" != "X$progdir/$program"; }; then
-
- file="$$-$program"
-
- if test ! -d "$progdir"; then
- mkdir "$progdir"
- else
- rm -f "$progdir/$file"
- fi
-
- # relink executable if necessary
- if test -n "$relink_command"; then
- if relink_command_output=`eval $relink_command 2>&1`; then :
- else
- echo "$relink_command_output" >&2
- rm -f "$progdir/$file"
- exit 1
- fi
- fi
-
- mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
- { rm -f "$progdir/$program";
- mv -f "$progdir/$file" "$progdir/$program"; }
- rm -f "$progdir/$file"
- fi
-
- if test -f "$progdir/$program"; then
- if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
- # Run the actual program with our arguments.
-
- exec "$progdir/$program" ${1+"$@"}
-
- $echo "$0: cannot exec $program $*"
- exit 1
- fi
- else
- # The program doesn't exist.
- $echo "$0: error: \`$progdir/$program' does not exist" 1>&2
- $echo "This script is just a wrapper for $program." 1>&2
- echo "See the libtool documentation for more information." 1>&2
- exit 1
- fi
-fi
diff --git a/rubbos/app/httpd-2.0.64/support/htdigest.c b/rubbos/app/httpd-2.0.64/support/htdigest.c
deleted file mode 100644
index 55699ad1..00000000
--- a/rubbos/app/httpd-2.0.64/support/htdigest.c
+++ /dev/null
@@ -1,291 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/******************************************************************************
- ******************************************************************************
- * NOTE! This program is not safe as a setuid executable! Do not make it
- * setuid!
- ******************************************************************************
- *****************************************************************************/
-/*
- * htdigest.c: simple program for manipulating digest passwd file for Apache
- *
- * by Alexei Kosut, based on htpasswd.c, by Rob McCool
- */
-
-#include "apr.h"
-#include "apr_file_io.h"
-#include "apr_md5.h"
-#include "apr_lib.h" /* for apr_getpass() */
-#include "apr_general.h"
-#include "apr_signal.h"
-#include "apr_strings.h" /* for apr_pstrdup() */
-
-#define APR_WANT_STDIO
-#define APR_WANT_STRFUNC
-#include "apr_want.h"
-
-#if APR_HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#if APR_HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-
-#ifdef WIN32
-#include <conio.h>
-#endif
-
-
-#if APR_CHARSET_EBCDIC
-#define LF '\n'
-#define CR '\r'
-#else
-#define LF 10
-#define CR 13
-#endif /* APR_CHARSET_EBCDIC */
-
-#define MAX_STRING_LEN 256
-
-apr_file_t *tfp = NULL;
-apr_file_t *errfile;
-apr_pool_t *cntxt;
-#if APR_CHARSET_EBCDIC
-apr_xlate_t *to_ascii;
-#endif
-
-static void cleanup_tempfile_and_exit(int rc)
-{
- if (tfp) {
- apr_file_close(tfp);
- }
- exit(rc);
-}
-
-static void getword(char *word, char *line, char stop)
-{
- int x = 0, y;
-
- for (x = 0; ((line[x]) && (line[x] != stop)); x++)
- word[x] = line[x];
-
- word[x] = '\0';
- if (line[x])
- ++x;
- y = 0;
-
- while ((line[y++] = line[x++]));
-}
-
-static int get_line(char *s, int n, apr_file_t *f)
-{
- register int i = 0;
- char ch;
- apr_status_t rv = APR_EINVAL;
-
- while (i < (n - 1) &&
- ((rv = apr_file_getc(&ch, f)) == APR_SUCCESS) && (ch != '\n')) {
- s[i++] = ch;
- }
- if (ch == '\n')
- s[i++] = ch;
- s[i] = '\0';
-
- if (rv != APR_SUCCESS)
- return 1;
-
- return 0;
-}
-
-static void putline(apr_file_t *f, char *l)
-{
- int x;
-
- for (x = 0; l[x]; x++)
- apr_file_putc(l[x], f);
-}
-
-
-static void add_password(const char *user, const char *realm, apr_file_t *f)
-{
- char *pw;
- apr_md5_ctx_t context;
- unsigned char digest[16];
- char string[MAX_STRING_LEN];
- char pwin[MAX_STRING_LEN];
- char pwv[MAX_STRING_LEN];
- unsigned int i;
- apr_size_t len = sizeof(pwin);
-
- if (apr_password_get("New password: ", pwin, &len) != APR_SUCCESS) {
- apr_file_printf(errfile, "password too long");
- cleanup_tempfile_and_exit(5);
- }
- len = sizeof(pwin);
- apr_password_get("Re-type new password: ", pwv, &len);
- if (strcmp(pwin, pwv) != 0) {
- apr_file_printf(errfile, "They don't match, sorry.\n");
- cleanup_tempfile_and_exit(1);
- }
- pw = pwin;
- apr_file_printf(f, "%s:%s:", user, realm);
-
- /* Do MD5 stuff */
- sprintf(string, "%s:%s:%s", user, realm, pw);
-
- apr_md5_init(&context);
-#if APR_CHARSET_EBCDIC
- apr_md5_set_xlate(&context, to_ascii);
-#endif
- apr_md5_update(&context, (unsigned char *) string, strlen(string));
- apr_md5_final(digest, &context);
-
- for (i = 0; i < 16; i++)
- apr_file_printf(f, "%02x", digest[i]);
-
- apr_file_printf(f, "\n");
-}
-
-static void usage(void)
-{
- apr_file_printf(errfile, "Usage: htdigest [-c] passwordfile realm username\n");
- apr_file_printf(errfile, "The -c flag creates a new file.\n");
- exit(1);
-}
-
-static void interrupted(void)
-{
- apr_file_printf(errfile, "Interrupted.\n");
- cleanup_tempfile_and_exit(1);
-}
-
-static void terminate(void)
-{
- apr_terminate();
-#ifdef NETWARE
- pressanykey();
-#endif
-}
-
-int main(int argc, const char * const argv[])
-{
- apr_file_t *f;
- apr_status_t rv;
- char tn[] = "htdigest.tmp.XXXXXX";
- char *dirname;
- char user[MAX_STRING_LEN];
- char realm[MAX_STRING_LEN];
- char line[MAX_STRING_LEN];
- char l[MAX_STRING_LEN];
- char w[MAX_STRING_LEN];
- char x[MAX_STRING_LEN];
- int found;
-
- apr_app_initialize(&argc, &argv, NULL);
- atexit(terminate);
- apr_pool_create(&cntxt, NULL);
- apr_file_open_stderr(&errfile, cntxt);
-
-#if APR_CHARSET_EBCDIC
- rv = apr_xlate_open(&to_ascii, "ISO8859-1", APR_DEFAULT_CHARSET, cntxt);
- if (rv) {
- apr_file_printf(errfile, "apr_xlate_open(): %s (%d)\n",
- apr_strerror(rv, line, sizeof(line)), rv);
- exit(1);
- }
-#endif
-
- apr_signal(SIGINT, (void (*)(int)) interrupted);
- if (argc == 5) {
- if (strcmp(argv[1], "-c"))
- usage();
- rv = apr_file_open(&f, argv[2], APR_WRITE | APR_CREATE,
- APR_OS_DEFAULT, cntxt);
- if (rv != APR_SUCCESS) {
- char errmsg[120];
-
- apr_file_printf(errfile, "Could not open passwd file %s for writing: %s\n",
- argv[2],
- apr_strerror(rv, errmsg, sizeof errmsg));
- exit(1);
- }
- apr_file_printf(errfile, "Adding password for %s in realm %s.\n",
- argv[4], argv[3]);
- add_password(argv[4], argv[3], f);
- apr_file_close(f);
- exit(0);
- }
- else if (argc != 4)
- usage();
-
- if (apr_temp_dir_get((const char**)&dirname, cntxt) != APR_SUCCESS) {
- apr_file_printf(errfile, "%s: could not determine temp dir\n",
- argv[0]);
- exit(1);
- }
- dirname = apr_psprintf(cntxt, "%s/%s", dirname, tn);
-
- if (apr_file_mktemp(&tfp, dirname, 0, cntxt) != APR_SUCCESS) {
- apr_file_printf(errfile, "Could not open temp file %s.\n", dirname);
- exit(1);
- }
-
- if (apr_file_open(&f, argv[1], APR_READ, APR_OS_DEFAULT, cntxt) != APR_SUCCESS) {
- apr_file_printf(errfile,
- "Could not open passwd file %s for reading.\n", argv[1]);
- apr_file_printf(errfile, "Use -c option to create new one.\n");
- cleanup_tempfile_and_exit(1);
- }
- apr_cpystrn(user, argv[3], sizeof(user));
- apr_cpystrn(realm, argv[2], sizeof(realm));
-
- found = 0;
- while (!(get_line(line, MAX_STRING_LEN, f))) {
- if (found || (line[0] == '#') || (!line[0])) {
- putline(tfp, line);
- continue;
- }
- strcpy(l, line);
- getword(w, l, ':');
- getword(x, l, ':');
- if (strcmp(user, w) || strcmp(realm, x)) {
- putline(tfp, line);
- continue;
- }
- else {
- apr_file_printf(errfile, "Changing password for user %s in realm %s\n",
- user, realm);
- add_password(user, realm, tfp);
- found = 1;
- }
- }
- if (!found) {
- apr_file_printf(errfile, "Adding user %s in realm %s\n", user, realm);
- add_password(user, realm, tfp);
- }
- apr_file_close(f);
-
- /* The temporary file has all the data, just copy it to the new location.
- */
- if (apr_file_copy(dirname, argv[1], APR_FILE_SOURCE_PERMS, cntxt) !=
- APR_SUCCESS) {
- apr_file_printf(errfile, "%s: unable to update file %s\n",
- argv[0], argv[1]);
- }
- apr_file_close(tfp);
-
- return 0;
-}
diff --git a/rubbos/app/httpd-2.0.64/support/htdigest.dsp b/rubbos/app/httpd-2.0.64/support/htdigest.dsp
deleted file mode 100644
index 94bc802c..00000000
--- a/rubbos/app/httpd-2.0.64/support/htdigest.dsp
+++ /dev/null
@@ -1,123 +0,0 @@
-# Microsoft Developer Studio Project File - Name="htdigest" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=htdigest - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "htdigest.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "htdigest.mak" CFG="htdigest - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "htdigest - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "htdigest - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "htdigest - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /FD /c
-# ADD CPP /nologo /MD /W3 /Zi /O2 /I "../srclib/apr/include" /I "../srclib/apr-util/include" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /Fd"Release/htdigest_src" /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib advapi32.lib wsock32.lib ws2_32.lib shell32.lib /nologo /subsystem:console
-# ADD LINK32 kernel32.lib advapi32.lib wsock32.lib ws2_32.lib shell32.lib /nologo /subsystem:console /debug /opt:ref
-
-!ELSEIF "$(CFG)" == "htdigest - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MDd /W3 /EHsc /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /FD /c
-# ADD CPP /nologo /MDd /W3 /EHsc /Zi /Od /I "../srclib/apr/include" /I "../srclib/apr-util/include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /Fd"Debug/htdigest_src" /FD /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib advapi32.lib wsock32.lib ws2_32.lib shell32.lib /nologo /subsystem:console /incremental:no /debug
-# ADD LINK32 kernel32.lib advapi32.lib wsock32.lib ws2_32.lib shell32.lib /nologo /subsystem:console /incremental:no /debug
-
-!ENDIF
-
-# Begin Target
-
-# Name "htdigest - Win32 Release"
-# Name "htdigest - Win32 Debug"
-# Begin Source File
-
-SOURCE=.\htdigest.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\htdigest.rc
-# End Source File
-# Begin Source File
-
-SOURCE=..\build\win32\win32ver.awk
-
-!IF "$(CFG)" == "htdigest - Win32 Release"
-
-# PROP Ignore_Default_Tool 1
-# Begin Custom Build - Creating Version Resource
-InputPath=..\build\win32\win32ver.awk
-
-".\htdigest.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- awk -f ../build/win32/win32ver.awk htdigest.exe "htdigest Utility" ../include/ap_release.h > .\htdigest.rc
-
-# End Custom Build
-
-!ELSEIF "$(CFG)" == "htdigest - Win32 Debug"
-
-# PROP Ignore_Default_Tool 1
-# Begin Custom Build - Creating Version Resource
-InputPath=..\build\win32\win32ver.awk
-
-".\htdigest.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- awk -f ../build/win32/win32ver.awk htdigest.exe "htdigest Utility" ../include/ap_release.h > .\htdigest.rc
-
-# End Custom Build
-
-!ENDIF
-
-# End Source File
-# End Target
-# End Project
diff --git a/rubbos/app/httpd-2.0.64/support/htdigest.lo b/rubbos/app/httpd-2.0.64/support/htdigest.lo
deleted file mode 100644
index 845a48ff..00000000
--- a/rubbos/app/httpd-2.0.64/support/htdigest.lo
+++ /dev/null
@@ -1,12 +0,0 @@
-# htdigest.lo - a libtool object file
-# Generated by ltmain.sh - GNU libtool 1.5.26 (1.1220.2.493 2008/02/01 16:58:18)
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# Name of the PIC object.
-pic_object='.libs/htdigest.o'
-
-# Name of the non-PIC object.
-non_pic_object='htdigest.o'
-
diff --git a/rubbos/app/httpd-2.0.64/support/htdigest.o b/rubbos/app/httpd-2.0.64/support/htdigest.o
deleted file mode 100644
index e3ec6704..00000000
--- a/rubbos/app/httpd-2.0.64/support/htdigest.o
+++ /dev/null
Binary files differ
diff --git a/rubbos/app/httpd-2.0.64/support/htpasswd b/rubbos/app/httpd-2.0.64/support/htpasswd
deleted file mode 100755
index b572d20c..00000000
--- a/rubbos/app/httpd-2.0.64/support/htpasswd
+++ /dev/null
@@ -1,131 +0,0 @@
-#! /bin/bash
-
-# htpasswd - temporary wrapper script for .libs/htpasswd
-# Generated by ltmain.sh - GNU libtool 1.5.26 (1.1220.2.493 2008/02/01 16:58:18)
-#
-# The htpasswd program cannot be directly executed until all the libtool
-# libraries that it depends on are installed.
-#
-# This wrapper script should never be moved out of the build directory.
-# If it is, it will not operate correctly.
-
-# Sed substitution that helps us do robust quoting. It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='/bin/sed -e 1s/^X//'
-sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
-
-# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
-fi
-BIN_SH=xpg4; export BIN_SH # for Tru64
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-relink_command="(cd /bottlenecks/rubbos/app/httpd-2.0.64/support; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=\"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games\"; export PATH; gcc -g -O2 -pthread -D_REENTRANT -D_GNU_SOURCE -DAP_HAVE_DESIGNATED_INITIALIZER -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/include -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/include -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/lib -I. -I/bottlenecks/rubbos/app/httpd-2.0.64/os/unix -I/bottlenecks/rubbos/app/httpd-2.0.64/server/mpm/worker -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/http -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/filters -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/proxy -I/bottlenecks/rubbos/app/httpd-2.0.64/include -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/generators -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/dav/main -o \$progdir/\$file .libs/htpasswd.o -Wl,--export-dynamic -L/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/lib /bottlenecks/rubbos/app/httpd-2.0.64/srclib/pcre/.libs/libpcre.a /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/.libs/libaprutil-0.so /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/.libs/libexpat.so /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/.libs/libapr-0.so -lrt -lm -lcrypt -lnsl -lpthread -ldl -Wl,--rpath -Wl,/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/.libs -Wl,--rpath -Wl,/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/.libs -Wl,--rpath -Wl,/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/.libs -Wl,--rpath -Wl,/bottlenecks/rubbos/app/apache2/lib ) "
-
-# This environment variable determines our operation mode.
-if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
- # install mode needs the following variable:
- notinst_deplibs=' /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/libaprutil-0.la /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/libexpat.la /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/libapr-0.la'
-else
- # When we are sourced in execute mode, $file and $echo are already set.
- if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
- echo="echo"
- file="$0"
- # Make sure echo works.
- if test "X$1" = X--no-reexec; then
- # Discard the --no-reexec flag, and continue.
- shift
- elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
- # Yippee, $echo works!
- :
- else
- # Restart under the correct shell, and then maybe $echo will work.
- exec /bin/bash "$0" --no-reexec ${1+"$@"}
- fi
- fi
-
- # Find the directory that this script lives in.
- thisdir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
- test "x$thisdir" = "x$file" && thisdir=.
-
- # Follow symbolic links until we get to the real thisdir.
- file=`ls -ld "$file" | /bin/sed -n 's/.*-> //p'`
- while test -n "$file"; do
- destdir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
-
- # If there was a directory component, then change thisdir.
- if test "x$destdir" != "x$file"; then
- case "$destdir" in
- [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
- *) thisdir="$thisdir/$destdir" ;;
- esac
- fi
-
- file=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
- file=`ls -ld "$thisdir/$file" | /bin/sed -n 's/.*-> //p'`
- done
-
- # Try to get the absolute directory name.
- absdir=`cd "$thisdir" && pwd`
- test -n "$absdir" && thisdir="$absdir"
-
- program=lt-'htpasswd'
- progdir="$thisdir/.libs"
-
- if test ! -f "$progdir/$program" || \
- { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /bin/sed 1q`; \
- test "X$file" != "X$progdir/$program"; }; then
-
- file="$$-$program"
-
- if test ! -d "$progdir"; then
- mkdir "$progdir"
- else
- rm -f "$progdir/$file"
- fi
-
- # relink executable if necessary
- if test -n "$relink_command"; then
- if relink_command_output=`eval $relink_command 2>&1`; then :
- else
- echo "$relink_command_output" >&2
- rm -f "$progdir/$file"
- exit 1
- fi
- fi
-
- mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
- { rm -f "$progdir/$program";
- mv -f "$progdir/$file" "$progdir/$program"; }
- rm -f "$progdir/$file"
- fi
-
- if test -f "$progdir/$program"; then
- if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
- # Run the actual program with our arguments.
-
- exec "$progdir/$program" ${1+"$@"}
-
- $echo "$0: cannot exec $program $*"
- exit 1
- fi
- else
- # The program doesn't exist.
- $echo "$0: error: \`$progdir/$program' does not exist" 1>&2
- $echo "This script is just a wrapper for $program." 1>&2
- echo "See the libtool documentation for more information." 1>&2
- exit 1
- fi
-fi
diff --git a/rubbos/app/httpd-2.0.64/support/htpasswd.c b/rubbos/app/httpd-2.0.64/support/htpasswd.c
deleted file mode 100644
index b76f530b..00000000
--- a/rubbos/app/httpd-2.0.64/support/htpasswd.c
+++ /dev/null
@@ -1,610 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/******************************************************************************
- ******************************************************************************
- * NOTE! This program is not safe as a setuid executable! Do not make it
- * setuid!
- ******************************************************************************
- *****************************************************************************/
-/*
- * htpasswd.c: simple program for manipulating password file for
- * the Apache HTTP server
- *
- * Originally by Rob McCool
- *
- * Exit values:
- * 0: Success
- * 1: Failure; file access/permission problem
- * 2: Failure; command line syntax problem (usage message issued)
- * 3: Failure; password verification failure
- * 4: Failure; operation interrupted (such as with CTRL/C)
- * 5: Failure; buffer would overflow (username, filename, or computed
- * record too long)
- * 6: Failure; username contains illegal or reserved characters
- * 7: Failure; file is not a valid htpasswd file
- */
-
-#include "apr.h"
-#include "apr_lib.h"
-#include "apr_strings.h"
-#include "apr_errno.h"
-#include "apr_file_io.h"
-#include "apr_general.h"
-#include "apr_signal.h"
-
-#if APR_HAVE_STDIO_H
-#include <stdio.h>
-#endif
-
-#include "apr_md5.h"
-#include "apr_sha1.h"
-#include <time.h>
-
-#if APR_HAVE_CRYPT_H
-#include <crypt.h>
-#endif
-#if APR_HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#if APR_HAVE_STRING_H
-#include <string.h>
-#endif
-#if APR_HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#ifdef WIN32
-#include <conio.h>
-#define unlink _unlink
-#endif
-
-#if !APR_CHARSET_EBCDIC
-#define LF 10
-#define CR 13
-#else /*APR_CHARSET_EBCDIC*/
-#define LF '\n'
-#define CR '\r'
-#endif /*APR_CHARSET_EBCDIC*/
-
-#define MAX_STRING_LEN 256
-#define ALG_PLAIN 0
-#define ALG_CRYPT 1
-#define ALG_APMD5 2
-#define ALG_APSHA 3
-
-#define ERR_FILEPERM 1
-#define ERR_SYNTAX 2
-#define ERR_PWMISMATCH 3
-#define ERR_INTERRUPTED 4
-#define ERR_OVERFLOW 5
-#define ERR_BADUSER 6
-#define ERR_INVALID 7
-
-#define APHTP_NEWFILE 1
-#define APHTP_NOFILE 2
-#define APHTP_NONINTERACTIVE 4
-#define APHTP_DELUSER 8
-
-apr_file_t *errfile;
-apr_file_t *ftemp = NULL;
-
-static void to64(char *s, unsigned long v, int n)
-{
- static unsigned char itoa64[] = /* 0 ... 63 => ASCII - 64 */
- "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
-
- while (--n >= 0) {
- *s++ = itoa64[v&0x3f];
- v >>= 6;
- }
-}
-
-static void putline(apr_file_t *f, const char *l)
-{
- apr_file_puts(l, f);
-}
-
-/*
- * Make a password record from the given information. A zero return
- * indicates success; failure means that the output buffer contains an
- * error message instead.
- */
-static int mkrecord(char *user, char *record, apr_size_t rlen, char *passwd,
- int alg)
-{
- char *pw;
- char cpw[120];
- char pwin[MAX_STRING_LEN];
- char pwv[MAX_STRING_LEN];
- char salt[9];
- apr_size_t bufsize;
-
- if (passwd != NULL) {
- pw = passwd;
- }
- else {
- bufsize = sizeof(pwin);
- if (apr_password_get("New password: ", pwin, &bufsize) != 0) {
- apr_snprintf(record, (rlen - 1), "password too long (>%"
- APR_SIZE_T_FMT ")", sizeof(pwin) - 1);
- return ERR_OVERFLOW;
- }
- bufsize = sizeof(pwv);
- apr_password_get("Re-type new password: ", pwv, &bufsize);
- if (strcmp(pwin, pwv) != 0) {
- apr_cpystrn(record, "password verification error", (rlen - 1));
- return ERR_PWMISMATCH;
- }
- pw = pwin;
- memset(pwv, '\0', sizeof(pwin));
- }
- switch (alg) {
-
- case ALG_APSHA:
- /* XXX cpw >= 28 + strlen(sha1) chars - fixed len SHA */
- apr_sha1_base64(pw,strlen(pw),cpw);
- break;
-
- case ALG_APMD5:
- (void) srand((int) time((time_t *) NULL));
- to64(&salt[0], rand(), 8);
- salt[8] = '\0';
-
- apr_md5_encode((const char *)pw, (const char *)salt,
- cpw, sizeof(cpw));
- break;
-
- case ALG_PLAIN:
- /* XXX this len limitation is not in sync with any HTTPd len. */
- apr_cpystrn(cpw,pw,sizeof(cpw));
- break;
-
-#if !(defined(WIN32) || defined(NETWARE))
- case ALG_CRYPT:
- default:
- (void) srand((int) time((time_t *) NULL));
- to64(&salt[0], rand(), 8);
- salt[8] = '\0';
-
- apr_cpystrn(cpw, (char *)crypt(pw, salt), sizeof(cpw) - 1);
- break;
-#endif
- }
- memset(pw, '\0', strlen(pw));
-
- /*
- * Check to see if the buffer is large enough to hold the username,
- * hash, and delimiters.
- */
- if ((strlen(user) + 1 + strlen(cpw)) > (rlen - 1)) {
- apr_cpystrn(record, "resultant record too long", (rlen - 1));
- return ERR_OVERFLOW;
- }
- strcpy(record, user);
- strcat(record, ":");
- strcat(record, cpw);
- strcat(record, "\n");
- return 0;
-}
-
-static void usage(void)
-{
- apr_file_printf(errfile, "Usage:\n");
- apr_file_printf(errfile, "\thtpasswd [-cmdpsD] passwordfile username\n");
- apr_file_printf(errfile, "\thtpasswd -b[cmdpsD] passwordfile username "
- "password\n\n");
- apr_file_printf(errfile, "\thtpasswd -n[mdps] username\n");
- apr_file_printf(errfile, "\thtpasswd -nb[mdps] username password\n");
- apr_file_printf(errfile, " -c Create a new file.\n");
- apr_file_printf(errfile, " -n Don't update file; display results on "
- "stdout.\n");
- apr_file_printf(errfile, " -m Force MD5 encryption of the password"
-#if defined(WIN32) || defined(TPF) || defined(NETWARE)
- " (default)"
-#endif
- ".\n");
- apr_file_printf(errfile, " -d Force CRYPT encryption of the password"
-#if (!(defined(WIN32) || defined(TPF) || defined(NETWARE)))
- " (default)"
-#endif
- ".\n");
- apr_file_printf(errfile, " -p Do not encrypt the password (plaintext).\n");
- apr_file_printf(errfile, " -s Force SHA encryption of the password.\n");
- apr_file_printf(errfile, " -b Use the password from the command line "
- "rather than prompting for it.\n");
- apr_file_printf(errfile, " -D Delete the specified user.\n");
- apr_file_printf(errfile,
- "On Windows, NetWare and TPF systems the '-m' flag is used by "
- "default.\n");
- apr_file_printf(errfile,
- "On all other systems, the '-p' flag will probably not work.\n");
- exit(ERR_SYNTAX);
-}
-
-/*
- * Check to see if the specified file can be opened for the given
- * access.
- */
-static int accessible(apr_pool_t *pool, char *fname, int mode)
-{
- apr_file_t *f = NULL;
-
- if (apr_file_open(&f, fname, mode, APR_OS_DEFAULT, pool) != APR_SUCCESS) {
- return 0;
- }
- apr_file_close(f);
- return 1;
-}
-
-/*
- * Return true if the named file exists, regardless of permissions.
- */
-static int exists(char *fname, apr_pool_t *pool)
-{
- apr_finfo_t sbuf;
- apr_status_t check;
-
- check = apr_stat(&sbuf, fname, APR_FINFO_TYPE, pool);
- return ((check || sbuf.filetype != APR_REG) ? 0 : 1);
-}
-
-static void terminate(void)
-{
- apr_terminate();
-#ifdef NETWARE
- pressanykey();
-#endif
-}
-
-static void check_args(apr_pool_t *pool, int argc, const char *const argv[],
- int *alg, int *mask, char **user, char **pwfilename,
- char **password)
-{
- const char *arg;
- int args_left = 2;
- int i;
-
- /*
- * Preliminary check to make sure they provided at least
- * three arguments, we'll do better argument checking as
- * we parse the command line.
- */
- if (argc < 3) {
- usage();
- }
-
- /*
- * Go through the argument list and pick out any options. They
- * have to precede any other arguments.
- */
- for (i = 1; i < argc; i++) {
- arg = argv[i];
- if (*arg != '-') {
- break;
- }
- while (*++arg != '\0') {
- if (*arg == 'c') {
- *mask |= APHTP_NEWFILE;
- }
- else if (*arg == 'n') {
- *mask |= APHTP_NOFILE;
- args_left--;
- }
- else if (*arg == 'm') {
- *alg = ALG_APMD5;
- }
- else if (*arg == 's') {
- *alg = ALG_APSHA;
- }
- else if (*arg == 'p') {
- *alg = ALG_PLAIN;
- }
- else if (*arg == 'd') {
- *alg = ALG_CRYPT;
- }
- else if (*arg == 'b') {
- *mask |= APHTP_NONINTERACTIVE;
- args_left++;
- }
- else if (*arg == 'D') {
- *mask |= APHTP_DELUSER;
- }
- else {
- usage();
- }
- }
- }
-
- if ((*mask & APHTP_NEWFILE) && (*mask & APHTP_NOFILE)) {
- apr_file_printf(errfile, "%s: -c and -n options conflict\n", argv[0]);
- exit(ERR_SYNTAX);
- }
- if ((*mask & APHTP_NEWFILE) && (*mask & APHTP_DELUSER)) {
- apr_file_printf(errfile, "%s: -c and -D options conflict\n", argv[0]);
- exit(ERR_SYNTAX);
- }
- if ((*mask & APHTP_NOFILE) && (*mask & APHTP_DELUSER)) {
- apr_file_printf(errfile, "%s: -n and -D options conflict\n", argv[0]);
- exit(ERR_SYNTAX);
- }
- /*
- * Make sure we still have exactly the right number of arguments left
- * (the filename, the username, and possibly the password if -b was
- * specified).
- */
- if ((argc - i) != args_left) {
- usage();
- }
-
- if (*mask & APHTP_NOFILE) {
- i--;
- }
- else {
- if (strlen(argv[i]) > (APR_PATH_MAX - 1)) {
- apr_file_printf(errfile, "%s: filename too long\n", argv[0]);
- exit(ERR_OVERFLOW);
- }
- *pwfilename = apr_pstrdup(pool, argv[i]);
- if (strlen(argv[i + 1]) > (MAX_STRING_LEN - 1)) {
- apr_file_printf(errfile, "%s: username too long (> %d)\n",
- argv[0], MAX_STRING_LEN - 1);
- exit(ERR_OVERFLOW);
- }
- }
- *user = apr_pstrdup(pool, argv[i + 1]);
- if ((arg = strchr(*user, ':')) != NULL) {
- apr_file_printf(errfile, "%s: username contains illegal "
- "character '%c'\n", argv[0], *arg);
- exit(ERR_BADUSER);
- }
- if (*mask & APHTP_NONINTERACTIVE) {
- if (strlen(argv[i + 2]) > (MAX_STRING_LEN - 1)) {
- apr_file_printf(errfile, "%s: password too long (> %d)\n",
- argv[0], MAX_STRING_LEN);
- exit(ERR_OVERFLOW);
- }
- *password = apr_pstrdup(pool, argv[i + 2]);
- }
-}
-
-/*
- * Let's do it. We end up doing a lot of file opening and closing,
- * but what do we care? This application isn't run constantly.
- */
-int main(int argc, const char * const argv[])
-{
- apr_file_t *fpw = NULL;
- char record[MAX_STRING_LEN];
- char line[MAX_STRING_LEN];
- char *password = NULL;
- char *pwfilename = NULL;
- char *user = NULL;
- char tn[] = "htpasswd.tmp.XXXXXX";
- char *dirname;
- char *scratch, cp[MAX_STRING_LEN];
- int found = 0;
- int i;
- int alg = ALG_CRYPT;
- int mask = 0;
- apr_pool_t *pool;
- int existing_file = 0;
-#if APR_CHARSET_EBCDIC
- apr_status_t rv;
- apr_xlate_t *to_ascii;
-#endif
-
- apr_app_initialize(&argc, &argv, NULL);
- atexit(terminate);
- apr_pool_create(&pool, NULL);
- apr_file_open_stderr(&errfile, pool);
-
-#if APR_CHARSET_EBCDIC
- rv = apr_xlate_open(&to_ascii, "ISO8859-1", APR_DEFAULT_CHARSET, pool);
- if (rv) {
- apr_file_printf(errfile, "apr_xlate_open(to ASCII)->%d\n", rv);
- exit(1);
- }
- rv = apr_SHA1InitEBCDIC(to_ascii);
- if (rv) {
- apr_file_printf(errfile, "apr_SHA1InitEBCDIC()->%d\n", rv);
- exit(1);
- }
- rv = apr_MD5InitEBCDIC(to_ascii);
- if (rv) {
- apr_file_printf(errfile, "apr_MD5InitEBCDIC()->%d\n", rv);
- exit(1);
- }
-#endif /*APR_CHARSET_EBCDIC*/
-
- check_args(pool, argc, argv, &alg, &mask, &user, &pwfilename, &password);
-
-
-#if defined(WIN32) || defined(NETWARE)
- if (alg == ALG_CRYPT) {
- alg = ALG_APMD5;
- apr_file_printf(errfile, "Automatically using MD5 format.\n");
- }
-#endif
-
-#if (!(defined(WIN32) || defined(TPF) || defined(NETWARE)))
- if (alg == ALG_PLAIN) {
- apr_file_printf(errfile,"Warning: storing passwords as plain text "
- "might just not work on this platform.\n");
- }
-#endif
-
- /*
- * Only do the file checks if we're supposed to frob it.
- */
- if (!(mask & APHTP_NOFILE)) {
- existing_file = exists(pwfilename, pool);
- if (existing_file) {
- /*
- * Check that this existing file is readable and writable.
- */
- if (!accessible(pool, pwfilename, APR_READ | APR_APPEND)) {
- apr_file_printf(errfile, "%s: cannot open file %s for "
- "read/write access\n", argv[0], pwfilename);
- exit(ERR_FILEPERM);
- }
- }
- else {
- /*
- * Error out if -c was omitted for this non-existant file.
- */
- if (!(mask & APHTP_NEWFILE)) {
- apr_file_printf(errfile,
- "%s: cannot modify file %s; use '-c' to create it\n",
- argv[0], pwfilename);
- exit(ERR_FILEPERM);
- }
- /*
- * As it doesn't exist yet, verify that we can create it.
- */
- if (!accessible(pool, pwfilename, APR_CREATE | APR_WRITE)) {
- apr_file_printf(errfile, "%s: cannot create file %s\n",
- argv[0], pwfilename);
- exit(ERR_FILEPERM);
- }
- }
- }
-
- /*
- * All the file access checks (if any) have been made. Time to go to work;
- * try to create the record for the username in question. If that
- * fails, there's no need to waste any time on file manipulations.
- * Any error message text is returned in the record buffer, since
- * the mkrecord() routine doesn't have access to argv[].
- */
- if (!(mask & APHTP_DELUSER)) {
- i = mkrecord(user, record, sizeof(record) - 1,
- password, alg);
- if (i != 0) {
- apr_file_printf(errfile, "%s: %s\n", argv[0], record);
- exit(i);
- }
- if (mask & APHTP_NOFILE) {
- printf("%s\n", record);
- exit(0);
- }
- }
-
- /*
- * We can access the files the right way, and we have a record
- * to add or update. Let's do it..
- */
- if (apr_temp_dir_get((const char**)&dirname, pool) != APR_SUCCESS) {
- apr_file_printf(errfile, "%s: could not determine temp dir\n",
- argv[0]);
- exit(ERR_FILEPERM);
- }
- dirname = apr_psprintf(pool, "%s/%s", dirname, tn);
-
- if (apr_file_mktemp(&ftemp, dirname, 0, pool) != APR_SUCCESS) {
- apr_file_printf(errfile, "%s: unable to create temporary file %s\n",
- argv[0], dirname);
- exit(ERR_FILEPERM);
- }
-
- /*
- * If we're not creating a new file, copy records from the existing
- * one to the temporary file until we find the specified user.
- */
- if (existing_file && !(mask & APHTP_NEWFILE)) {
- if (apr_file_open(&fpw, pwfilename, APR_READ | APR_BUFFERED,
- APR_OS_DEFAULT, pool) != APR_SUCCESS) {
- apr_file_printf(errfile, "%s: unable to read file %s\n",
- argv[0], pwfilename);
- exit(ERR_FILEPERM);
- }
- while (apr_file_gets(line, sizeof(line), fpw) == APR_SUCCESS) {
- char *colon;
-
- strcpy(cp, line);
- scratch = cp;
- while (apr_isspace(*scratch)) {
- ++scratch;
- }
-
- if (!*scratch || (*scratch == '#')) {
- putline(ftemp, line);
- continue;
- }
- /*
- * See if this is our user.
- */
- colon = strchr(scratch, ':');
- if (colon != NULL) {
- *colon = '\0';
- }
- else {
- /*
- * If we've not got a colon on the line, this could well
- * not be a valid htpasswd file.
- * We should bail at this point.
- */
- apr_file_printf(errfile, "\n%s: The file %s does not appear "
- "to be a valid htpasswd file.\n",
- argv[0], pwfilename);
- apr_file_close(fpw);
- exit(ERR_INVALID);
- }
- if (strcmp(user, scratch) != 0) {
- putline(ftemp, line);
- continue;
- }
- else {
- if (!(mask & APHTP_DELUSER)) {
- /* We found the user we were looking for.
- * Add him to the file.
- */
- apr_file_printf(errfile, "Updating ");
- putline(ftemp, record);
- found++;
- }
- else {
- /* We found the user we were looking for.
- * Delete them from the file.
- */
- apr_file_printf(errfile, "Deleting ");
- found++;
- }
- }
- }
- apr_file_close(fpw);
- }
- if (!found && !(mask & APHTP_DELUSER)) {
- apr_file_printf(errfile, "Adding ");
- putline(ftemp, record);
- }
- else if (!found && (mask & APHTP_DELUSER)) {
- apr_file_printf(errfile, "User %s not found\n", user);
- exit(0);
- }
- apr_file_printf(errfile, "password for user %s\n", user);
-
- /* The temporary file has all the data, just copy it to the new location.
- */
- if (apr_file_copy(dirname, pwfilename, APR_FILE_SOURCE_PERMS, pool) !=
- APR_SUCCESS) {
- apr_file_printf(errfile, "%s: unable to update file %s\n",
- argv[0], pwfilename);
- exit(ERR_FILEPERM);
- }
- apr_file_close(ftemp);
- return 0;
-}
diff --git a/rubbos/app/httpd-2.0.64/support/htpasswd.dsp b/rubbos/app/httpd-2.0.64/support/htpasswd.dsp
deleted file mode 100644
index 15bbbdb2..00000000
--- a/rubbos/app/httpd-2.0.64/support/htpasswd.dsp
+++ /dev/null
@@ -1,123 +0,0 @@
-# Microsoft Developer Studio Project File - Name="htpasswd" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=htpasswd - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "htpasswd.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "htpasswd.mak" CFG="htpasswd - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "htpasswd - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "htpasswd - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "htpasswd - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /FD /c
-# ADD CPP /nologo /MD /W3 /Zi /O2 /I "../srclib/apr/include" /I "../srclib/apr-util/include" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /Fd"Release/htpasswd_src" /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib advapi32.lib wsock32.lib ws2_32.lib shell32.lib /nologo /subsystem:console
-# ADD LINK32 kernel32.lib advapi32.lib wsock32.lib ws2_32.lib shell32.lib /nologo /subsystem:console /debug /opt:ref
-
-!ELSEIF "$(CFG)" == "htpasswd - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MDd /W3 /EHsc /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /FD /c
-# ADD CPP /nologo /MDd /W3 /EHsc /Zi /Od /I "../srclib/apr/include" /I "../srclib/apr-util/include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /Fd"Debug/htpasswd_src" /FD /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib advapi32.lib wsock32.lib ws2_32.lib shell32.lib /nologo /subsystem:console /incremental:no /debug
-# ADD LINK32 kernel32.lib advapi32.lib wsock32.lib ws2_32.lib shell32.lib /nologo /subsystem:console /incremental:no /debug
-
-!ENDIF
-
-# Begin Target
-
-# Name "htpasswd - Win32 Release"
-# Name "htpasswd - Win32 Debug"
-# Begin Source File
-
-SOURCE=.\htpasswd.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\htpasswd.rc
-# End Source File
-# Begin Source File
-
-SOURCE=..\build\win32\win32ver.awk
-
-!IF "$(CFG)" == "htpasswd - Win32 Release"
-
-# PROP Ignore_Default_Tool 1
-# Begin Custom Build - Creating Version Resource
-InputPath=..\build\win32\win32ver.awk
-
-".\htpasswd.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- awk -f ../build/win32/win32ver.awk htpasswd.exe "htpasswd Utility" ../include/ap_release.h > .\htpasswd.rc
-
-# End Custom Build
-
-!ELSEIF "$(CFG)" == "htpasswd - Win32 Debug"
-
-# PROP Ignore_Default_Tool 1
-# Begin Custom Build - Creating Version Resource
-InputPath=..\build\win32\win32ver.awk
-
-".\htpasswd.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- awk -f ../build/win32/win32ver.awk htpasswd.exe "htpasswd Utility" ../include/ap_release.h > .\htpasswd.rc
-
-# End Custom Build
-
-!ENDIF
-
-# End Source File
-# End Target
-# End Project
diff --git a/rubbos/app/httpd-2.0.64/support/htpasswd.lo b/rubbos/app/httpd-2.0.64/support/htpasswd.lo
deleted file mode 100644
index 7c0845ea..00000000
--- a/rubbos/app/httpd-2.0.64/support/htpasswd.lo
+++ /dev/null
@@ -1,12 +0,0 @@
-# htpasswd.lo - a libtool object file
-# Generated by ltmain.sh - GNU libtool 1.5.26 (1.1220.2.493 2008/02/01 16:58:18)
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# Name of the PIC object.
-pic_object='.libs/htpasswd.o'
-
-# Name of the non-PIC object.
-non_pic_object='htpasswd.o'
-
diff --git a/rubbos/app/httpd-2.0.64/support/htpasswd.o b/rubbos/app/httpd-2.0.64/support/htpasswd.o
deleted file mode 100644
index da73e002..00000000
--- a/rubbos/app/httpd-2.0.64/support/htpasswd.o
+++ /dev/null
Binary files differ
diff --git a/rubbos/app/httpd-2.0.64/support/httxt2dbm b/rubbos/app/httpd-2.0.64/support/httxt2dbm
deleted file mode 100755
index 61ed535c..00000000
--- a/rubbos/app/httpd-2.0.64/support/httxt2dbm
+++ /dev/null
@@ -1,131 +0,0 @@
-#! /bin/bash
-
-# httxt2dbm - temporary wrapper script for .libs/httxt2dbm
-# Generated by ltmain.sh - GNU libtool 1.5.26 (1.1220.2.493 2008/02/01 16:58:18)
-#
-# The httxt2dbm program cannot be directly executed until all the libtool
-# libraries that it depends on are installed.
-#
-# This wrapper script should never be moved out of the build directory.
-# If it is, it will not operate correctly.
-
-# Sed substitution that helps us do robust quoting. It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='/bin/sed -e 1s/^X//'
-sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
-
-# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
-fi
-BIN_SH=xpg4; export BIN_SH # for Tru64
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-relink_command="(cd /bottlenecks/rubbos/app/httpd-2.0.64/support; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=\"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games\"; export PATH; gcc -g -O2 -pthread -D_REENTRANT -D_GNU_SOURCE -DAP_HAVE_DESIGNATED_INITIALIZER -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/include -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/include -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/lib -I. -I/bottlenecks/rubbos/app/httpd-2.0.64/os/unix -I/bottlenecks/rubbos/app/httpd-2.0.64/server/mpm/worker -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/http -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/filters -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/proxy -I/bottlenecks/rubbos/app/httpd-2.0.64/include -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/generators -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/dav/main -o \$progdir/\$file .libs/httxt2dbm.o -Wl,--export-dynamic -L/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/lib /bottlenecks/rubbos/app/httpd-2.0.64/srclib/pcre/.libs/libpcre.a /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/.libs/libaprutil-0.so /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/.libs/libexpat.so /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/.libs/libapr-0.so -lrt -lm -lcrypt -lnsl -lpthread -ldl -Wl,--rpath -Wl,/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/.libs -Wl,--rpath -Wl,/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/.libs -Wl,--rpath -Wl,/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/.libs -Wl,--rpath -Wl,/bottlenecks/rubbos/app/apache2/lib ) "
-
-# This environment variable determines our operation mode.
-if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
- # install mode needs the following variable:
- notinst_deplibs=' /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/libaprutil-0.la /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/libexpat.la /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/libapr-0.la'
-else
- # When we are sourced in execute mode, $file and $echo are already set.
- if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
- echo="echo"
- file="$0"
- # Make sure echo works.
- if test "X$1" = X--no-reexec; then
- # Discard the --no-reexec flag, and continue.
- shift
- elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
- # Yippee, $echo works!
- :
- else
- # Restart under the correct shell, and then maybe $echo will work.
- exec /bin/bash "$0" --no-reexec ${1+"$@"}
- fi
- fi
-
- # Find the directory that this script lives in.
- thisdir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
- test "x$thisdir" = "x$file" && thisdir=.
-
- # Follow symbolic links until we get to the real thisdir.
- file=`ls -ld "$file" | /bin/sed -n 's/.*-> //p'`
- while test -n "$file"; do
- destdir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
-
- # If there was a directory component, then change thisdir.
- if test "x$destdir" != "x$file"; then
- case "$destdir" in
- [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
- *) thisdir="$thisdir/$destdir" ;;
- esac
- fi
-
- file=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
- file=`ls -ld "$thisdir/$file" | /bin/sed -n 's/.*-> //p'`
- done
-
- # Try to get the absolute directory name.
- absdir=`cd "$thisdir" && pwd`
- test -n "$absdir" && thisdir="$absdir"
-
- program=lt-'httxt2dbm'
- progdir="$thisdir/.libs"
-
- if test ! -f "$progdir/$program" || \
- { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /bin/sed 1q`; \
- test "X$file" != "X$progdir/$program"; }; then
-
- file="$$-$program"
-
- if test ! -d "$progdir"; then
- mkdir "$progdir"
- else
- rm -f "$progdir/$file"
- fi
-
- # relink executable if necessary
- if test -n "$relink_command"; then
- if relink_command_output=`eval $relink_command 2>&1`; then :
- else
- echo "$relink_command_output" >&2
- rm -f "$progdir/$file"
- exit 1
- fi
- fi
-
- mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
- { rm -f "$progdir/$program";
- mv -f "$progdir/$file" "$progdir/$program"; }
- rm -f "$progdir/$file"
- fi
-
- if test -f "$progdir/$program"; then
- if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
- # Run the actual program with our arguments.
-
- exec "$progdir/$program" ${1+"$@"}
-
- $echo "$0: cannot exec $program $*"
- exit 1
- fi
- else
- # The program doesn't exist.
- $echo "$0: error: \`$progdir/$program' does not exist" 1>&2
- $echo "This script is just a wrapper for $program." 1>&2
- echo "See the libtool documentation for more information." 1>&2
- exit 1
- fi
-fi
diff --git a/rubbos/app/httpd-2.0.64/support/httxt2dbm.c b/rubbos/app/httpd-2.0.64/support/httxt2dbm.c
deleted file mode 100644
index ea61b39c..00000000
--- a/rubbos/app/httpd-2.0.64/support/httxt2dbm.c
+++ /dev/null
@@ -1,336 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * httxt2dbm.c: simple program for converting RewriteMap text files to DBM
- * Rewrite databases for the Apache HTTP server
- *
- */
-
-#include "apr.h"
-#include "apr_lib.h"
-#include "apr_strings.h"
-#include "apr_file_io.h"
-#include "apr_file_info.h"
-#include "apr_pools.h"
-#include "apr_getopt.h"
-#include "apu.h"
-#include "apr_dbm.h"
-
-#if APR_HAVE_STDLIB_H
-#include <stdlib.h> /* for atexit() */
-#endif
-
-static const char *input;
-static const char *output;
-static const char *format;
-static const char *shortname;
-static apr_file_t *errfile;
-static char errbuf[120];
-static int verbose;
-
-/* From mod_rewrite.c */
-#ifndef REWRITE_MAX_TXT_MAP_LINE
-#define REWRITE_MAX_TXT_MAP_LINE 1024
-#endif
-
-#define NL APR_EOL_STR
-
-#define AVAIL "available"
-#define UNAVAIL "unavailable"
-
-static void usage(void)
-{
- const char *have_sdbm;
- const char *have_gdbm;
- const char *have_ndbm;
- const char *have_db;
-
-#if APU_HAVE_SDBM
- have_sdbm = AVAIL;
-#else
- have_sdbm = UNAVAIL;
-#endif
-#if APU_HAVE_GDBM
- have_gdbm = AVAIL;
-#else
- have_gdbm = UNAVAIL;
-#endif
-#if APU_HAVE_NDBM
- have_ndbm = AVAIL;
-#else
- have_ndbm = UNAVAIL;
-#endif
-#if APU_HAVE_DB
- have_db = AVAIL;
-#else
- have_db = UNAVAIL;
-#endif
-
- apr_file_printf(errfile,
- "%s -- Program to Create DBM Files for use by RewriteMap" NL
- "Usage: %s [-v] [-f format] -i SOURCE_TXT -o OUTPUT_DBM" NL
- NL
- "Options: " NL
- " -v More verbose output"NL
- NL
- " -i Source Text File. If '-', use stdin."NL
- NL
- " -o Output DBM."NL
- NL
- " -f DBM Format. If not specified, will use the APR Default." NL
- " GDBM for GDBM files (%s)" NL
- " SDBM for SDBM files (%s)" NL
- " DB for berkeley DB files (%s)" NL
- " NDBM for NDBM files (%s)" NL
- " default for the default DBM type" NL
- NL,
- shortname,
- shortname,
- have_gdbm,
- have_sdbm,
- have_db,
- have_ndbm);
-}
-
-
-static apr_status_t to_dbm(apr_dbm_t *dbm, apr_file_t *fp, apr_pool_t *pool)
-{
- apr_status_t rv = APR_SUCCESS;
- char line[REWRITE_MAX_TXT_MAP_LINE + 1]; /* +1 for \0 */
- apr_datum_t dbmkey;
- apr_datum_t dbmval;
- apr_pool_t* p;
-
- apr_pool_create(&p, pool);
-
- while (apr_file_gets(line, sizeof(line), fp) == APR_SUCCESS) {
- char *c, *value;
-
- if (*line == '#' || apr_isspace(*line)) {
- continue;
- }
-
- c = line;
-
- while (*c && !apr_isspace(*c)) {
- ++c;
- }
-
- if (!*c) {
- /* no value. solid line of data. */
- continue;
- }
-
- dbmkey.dptr = apr_pstrmemdup(p, line, c - line);
- dbmkey.dsize = (c - line);
-
- while (*c && apr_isspace(*c)) {
- ++c;
- }
-
- if (!*c) {
- apr_pool_clear(p);
- continue;
- }
-
- value = c;
-
- while (*c && !apr_isspace(*c)) {
- ++c;
- }
-
- dbmval.dptr = apr_pstrmemdup(p, value, c - value);
- dbmval.dsize = (c - line);
-
- if (verbose) {
- apr_file_printf(errfile, " '%s' -> '%s'"NL,
- dbmkey.dptr, dbmval.dptr);
- }
-
- rv = apr_dbm_store(dbm, dbmkey, dbmval);
-
- apr_pool_clear(p);
-
- if (rv != APR_SUCCESS) {
- break;
- }
- }
-
- return rv;
-}
-
-int main(int argc, const char *const argv[])
-{
- apr_pool_t *pool;
- apr_status_t rv = APR_SUCCESS;
- apr_getopt_t *opt;
- const char *optarg;
- char ch;
- apr_file_t *infile;
- apr_dbm_t *outdbm;
-
- apr_initialize();
- atexit(apr_terminate);
-
- verbose = 0;
- format = NULL;
- input = NULL;
- output = NULL;
-
- apr_pool_create(&pool, NULL);
-
- if (argc) {
- shortname = apr_filepath_name_get(argv[0]);
- }
- else {
- shortname = "httxt2dbm";
- }
-
- apr_file_open_stderr(&errfile, pool);
- rv = apr_getopt_init(&opt, pool, argc, argv);
-
- if (rv != APR_SUCCESS) {
- apr_file_printf(errfile, "Error: apr_getopt_init failed."NL NL);
- return 1;
- }
-
- if (argc <= 1) {
- usage();
- return 1;
- }
-
- while ((rv = apr_getopt(opt, "vf::i::o::", &ch, &optarg)) == APR_SUCCESS) {
- switch (ch) {
- case 'v':
- if (verbose) {
- apr_file_printf(errfile, "Error: -v can only be passed once" NL NL);
- usage();
- return 1;
- }
- verbose = 1;
- break;
- case 'f':
- if (format) {
- apr_file_printf(errfile, "Error: -f can only be passed once" NL NL);
- usage();
- return 1;
- }
- format = apr_pstrdup(pool, optarg);
- break;
- case 'i':
- if (input) {
- apr_file_printf(errfile, "Error: -i can only be passed once" NL NL);
- usage();
- return 1;
- }
- input = apr_pstrdup(pool, optarg);
- break;
- case 'o':
- if (output) {
- apr_file_printf(errfile, "Error: -o can only be passed once" NL NL);
- usage();
- return 1;
- }
- output = apr_pstrdup(pool, optarg);
- break;
- }
- }
-
- if (rv != APR_EOF) {
- apr_file_printf(errfile, "Error: Parsing Arguments Failed" NL NL);
- usage();
- return 1;
- }
-
- if (!input) {
- apr_file_printf(errfile, "Error: No input file specified." NL NL);
- usage();
- return 1;
- }
-
- if (!output) {
- apr_file_printf(errfile, "Error: No output DBM specified." NL NL);
- usage();
- return 1;
- }
-
- if (!format) {
- format = "default";
- }
-
- if (verbose) {
- apr_file_printf(errfile, "DBM Format: %s"NL, format);
- }
-
- if (!strcmp(input, "-")) {
- rv = apr_file_open_stdin(&infile, pool);
- }
- else {
- rv = apr_file_open(&infile, input, APR_READ|APR_BUFFERED,
- APR_OS_DEFAULT, pool);
- }
-
- if (rv != APR_SUCCESS) {
- apr_file_printf(errfile,
- "Error: Cannot open input file '%s': (%d) %s" NL NL,
- input, rv, apr_strerror(rv, errbuf, sizeof(errbuf)));
- return 1;
- }
-
- if (verbose) {
- apr_file_printf(errfile, "Input File: %s"NL, input);
- }
-
- rv = apr_dbm_open_ex(&outdbm, format, output, APR_DBM_RWCREATE,
- APR_OS_DEFAULT, pool);
-
- if (APR_STATUS_IS_ENOTIMPL(rv)) {
- apr_file_printf(errfile,
- "Error: The requested DBM Format '%s' is not available." NL NL,
- format);
- return 1;
- }
-
- if (rv != APR_SUCCESS) {
- apr_file_printf(errfile,
- "Error: Cannot open output DBM '%s': (%d) %s" NL NL,
- output, rv, apr_strerror(rv, errbuf, sizeof(errbuf)));
- return 1;
- }
-
- if (verbose) {
- apr_file_printf(errfile, "DBM File: %s"NL, output);
- }
-
- rv = to_dbm(outdbm, infile, pool);
-
- if (rv != APR_SUCCESS) {
- apr_file_printf(errfile,
- "Error: Converting to DBM: (%d) %s" NL NL,
- rv, apr_strerror(rv, errbuf, sizeof(errbuf)));
- return 1;
- }
-
- apr_dbm_close(outdbm);
-
- if (verbose) {
- apr_file_printf(errfile, "Conversion Complete." NL);
- }
-
- return 0;
-}
-
diff --git a/rubbos/app/httpd-2.0.64/support/httxt2dbm.dsp b/rubbos/app/httpd-2.0.64/support/httxt2dbm.dsp
deleted file mode 100644
index 53b78309..00000000
--- a/rubbos/app/httpd-2.0.64/support/httxt2dbm.dsp
+++ /dev/null
@@ -1,123 +0,0 @@
-# Microsoft Developer Studio Project File - Name="httxt2dbm" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=httxt2dbm - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "httxt2dbm.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "httxt2dbm.mak" CFG="httxt2dbm - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "httxt2dbm - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "httxt2dbm - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "httxt2dbm - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /FD /c
-# ADD CPP /nologo /MD /W3 /Zi /O2 /I "../srclib/apr/include" /I "../srclib/apr-util/include" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /Fd"Release/httxt2dbm_src" /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib advapi32.lib wsock32.lib ws2_32.lib shell32.lib /nologo /subsystem:console
-# ADD LINK32 kernel32.lib advapi32.lib wsock32.lib ws2_32.lib shell32.lib /nologo /subsystem:console /debug /opt:ref
-
-!ELSEIF "$(CFG)" == "httxt2dbm - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MDd /W3 /EHsc /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /FD /c
-# ADD CPP /nologo /MDd /W3 /EHsc /Zi /Od /I "../srclib/apr/include" /I "../srclib/apr-util/include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /Fd"Debug/httxt2dbm_src" /FD /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib advapi32.lib wsock32.lib ws2_32.lib shell32.lib /nologo /subsystem:console /incremental:no /debug
-# ADD LINK32 kernel32.lib advapi32.lib wsock32.lib ws2_32.lib shell32.lib /nologo /subsystem:console /incremental:no /debug
-
-!ENDIF
-
-# Begin Target
-
-# Name "httxt2dbm - Win32 Release"
-# Name "httxt2dbm - Win32 Debug"
-# Begin Source File
-
-SOURCE=.\httxt2dbm.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\httxt2dbm.rc
-# End Source File
-# Begin Source File
-
-SOURCE=..\build\win32\win32ver.awk
-
-!IF "$(CFG)" == "httxt2dbm - Win32 Release"
-
-# PROP Ignore_Default_Tool 1
-# Begin Custom Build - Creating Version Resource
-InputPath=..\build\win32\win32ver.awk
-
-".\httxt2dbm.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- awk -f ../build/win32/win32ver.awk httxt2dbm.exe "httxt2dbm Utility" ../include/ap_release.h > .\httxt2dbm.rc
-
-# End Custom Build
-
-!ELSEIF "$(CFG)" == "httxt2dbm - Win32 Debug"
-
-# PROP Ignore_Default_Tool 1
-# Begin Custom Build - Creating Version Resource
-InputPath=..\build\win32\win32ver.awk
-
-".\httxt2dbm.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- awk -f ../build/win32/win32ver.awk httxt2dbm.exe "httxt2dbm Utility" ../include/ap_release.h > .\httxt2dbm.rc
-
-# End Custom Build
-
-!ENDIF
-
-# End Source File
-# End Target
-# End Project
diff --git a/rubbos/app/httpd-2.0.64/support/httxt2dbm.lo b/rubbos/app/httpd-2.0.64/support/httxt2dbm.lo
deleted file mode 100644
index 7b4f8e07..00000000
--- a/rubbos/app/httpd-2.0.64/support/httxt2dbm.lo
+++ /dev/null
@@ -1,12 +0,0 @@
-# httxt2dbm.lo - a libtool object file
-# Generated by ltmain.sh - GNU libtool 1.5.26 (1.1220.2.493 2008/02/01 16:58:18)
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# Name of the PIC object.
-pic_object='.libs/httxt2dbm.o'
-
-# Name of the non-PIC object.
-non_pic_object='httxt2dbm.o'
-
diff --git a/rubbos/app/httpd-2.0.64/support/httxt2dbm.o b/rubbos/app/httpd-2.0.64/support/httxt2dbm.o
deleted file mode 100644
index 1e12f6c8..00000000
--- a/rubbos/app/httpd-2.0.64/support/httxt2dbm.o
+++ /dev/null
Binary files differ
diff --git a/rubbos/app/httpd-2.0.64/support/list_hooks.pl b/rubbos/app/httpd-2.0.64/support/list_hooks.pl
deleted file mode 100755
index cb863db7..00000000
--- a/rubbos/app/httpd-2.0.64/support/list_hooks.pl
+++ /dev/null
@@ -1,101 +0,0 @@
-#!/usr/bin/perl -w
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-use strict;
-
-use Carp;
-
-my $path=shift || '.';
-
-findInDir($path);
-
-foreach my $hook (sort keys %::Hooks) {
- my $h=$::Hooks{$hook};
- for my $x (qw(declared implemented type args)) {
- print "$hook datum '$x' missing\n" if !exists $h->{$x};
- }
- print "$hook\n";
- print " declared in $h->{declared}\n" if defined $h->{declared};
- print " implemented in $h->{implemented}\n" if defined $h->{implemented};
- print " type is $h->{type}\n" if defined $h->{type};
- print " $h->{ret} $hook($h->{args})\n" if defined $h->{args};
- print "\n";
-}
-
-sub findInDir {
- my $path=shift;
-
- local(*D);
- opendir(D,$path) || croak "Can't open $path: $!";
- while(my $f=readdir D) {
- next if $f=~/^\./;
- my $file="$path/$f";
-
- if(-d $file) {
- findInDir($file);
- next;
- }
- next if $file !~ /\.[ch]$/;
-
- scanFile($file);
- }
- closedir D;
-}
-
-sub scanFile {
- my $file=shift;
-
-# print "scanning $file\n";
-
- open(F,$file) || croak "Can't open $file: $!";
- while(<F>) {
- next if /\#define/;
- next if /\@deffunc/;
- if(/AP_DECLARE_HOOK\((.*)\)/) {
- my $def=$1;
- my($ret,$name,$args)=$def=~/([^,\s]+)\s*,\s*([^,\s]+)\s*,\s*\((.*)\)/;
- croak "Don't understand $def in $file" if !defined $args;
-# print "found $ret $name($args) in $file\n";
-
- croak "$name declared twice! ($_)"
- if exists $::Hooks{$name}->{declared};
- $::Hooks{$name}->{declared}=$file;
- $::Hooks{$name}->{ret}=$ret;
- $::Hooks{$name}->{args}=$args;
- } elsif(/AP_DECLARE_HOOK\((\s*[^,\s]+)\s*,\s*([^,\s]+)/) {
-# really we should swallow subsequent lines to get the arguments...
- my $name=$2;
- my $ret=$1;
- croak "$name declared twice! ($_)"
- if exists $::Hooks{$name}->{declared};
- $::Hooks{$name}->{declared}=$file;
- $::Hooks{$name}->{ret}=$ret;
- $::Hooks{$name}->{args}='???';
- }
- if(/AP_IMPLEMENT_HOOK_()(VOID)\(([^,\s]+)/
- || /AP_IMPLEMENT(_OPTIONAL|)_HOOK_(.*?)\([^,]+?\s*,\s*([^,\s]+)/) {
- my($type,$name)=($1 ? "OPTIONAL $2" : $2,$3);
-
-# print "found $name $type in $file\n";
-
- croak "$name implemented twice ($::Hooks{$name}->{implemented} and $file) ($_)"
- if exists $::Hooks{$name}->{implemented};
- $::Hooks{$name}->{implemented}=$file;
- $::Hooks{$name}->{type}=$type;
- }
- }
-}
diff --git a/rubbos/app/httpd-2.0.64/support/log_server_status b/rubbos/app/httpd-2.0.64/support/log_server_status
deleted file mode 100644
index e8320f64..00000000
--- a/rubbos/app/httpd-2.0.64/support/log_server_status
+++ /dev/null
@@ -1,78 +0,0 @@
-#!/usr/bin/perl
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#
-# Log Server Status
-# Mark J Cox, UK Web Ltd 1996, mark@ukweb.com
-#
-# This script is designed to be run at a frequent interval by something
-# like cron. It connects to the server and downloads the status
-# information. It reformats the information to a single line and logs
-# it to a file. Make sure the directory $wherelog is writable by the
-# user who runs this script.
-#
-require 'sys/socket.ph';
-
-$wherelog = "/var/log/graph/"; # Logs will be like "/var/log/graph/19960312"
-$server = "localhost"; # Name of server, could be "www.foo.com"
-$port = "80"; # Port on server
-$request = "/status/?auto"; # Request to send
-
-sub tcp_connect
-{
- local($host,$port) =@_;
- $sockaddr='S n a4 x8';
- chop($hostname=`hostname`);
- $port=(getservbyname($port, 'tcp'))[2] unless $port =~ /^\d+$/;
- $me=pack($sockaddr,&AF_INET,0,(gethostbyname($hostname))[4]);
- $them=pack($sockaddr,&AF_INET,$port,(gethostbyname($host))[4]);
- socket(S,&PF_INET,&SOCK_STREAM,(getprotobyname('tcp'))[2]) ||
- die "socket: $!";
- bind(S,$me) || return "bind: $!";
- connect(S,$them) || return "connect: $!";
- select(S);
- $| = 1;
- select(stdout);
- return "";
-}
-
-### Main
-
-{
- $year=`date +%y`;
- chomp($year);
- $year += ($year < 70) ? 2000 : 1900;
- $date = $year . `date +%m%d:%H%M%S`;
- chomp($date);
- ($day,$time)=split(/:/,$date);
- $res=&tcp_connect($server,$port);
- open(OUT,">>$wherelog$day");
- if ($res) {
- print OUT "$time:-1:-1:-1:-1:$res\n";
- exit 1;
- }
- print S "GET $request\n";
- while (<S>) {
- $requests=$1 if ( m|^BusyServers:\ (\S+)|);
- $idle=$1 if ( m|^IdleServers:\ (\S+)|);
- $number=$1 if ( m|sses:\ (\S+)|);
- $cpu=$1 if (m|^CPULoad:\ (\S+)|);
- }
- print OUT "$time:$requests:$idle:$number:$cpu\n";
-}
-
-
diff --git a/rubbos/app/httpd-2.0.64/support/log_server_status.in b/rubbos/app/httpd-2.0.64/support/log_server_status.in
deleted file mode 100644
index 2268df29..00000000
--- a/rubbos/app/httpd-2.0.64/support/log_server_status.in
+++ /dev/null
@@ -1,78 +0,0 @@
-#!@perlbin@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#
-# Log Server Status
-# Mark J Cox, UK Web Ltd 1996, mark@ukweb.com
-#
-# This script is designed to be run at a frequent interval by something
-# like cron. It connects to the server and downloads the status
-# information. It reformats the information to a single line and logs
-# it to a file. Make sure the directory $wherelog is writable by the
-# user who runs this script.
-#
-require 'sys/socket.ph';
-
-$wherelog = "/var/log/graph/"; # Logs will be like "/var/log/graph/19960312"
-$server = "localhost"; # Name of server, could be "www.foo.com"
-$port = "80"; # Port on server
-$request = "/status/?auto"; # Request to send
-
-sub tcp_connect
-{
- local($host,$port) =@_;
- $sockaddr='S n a4 x8';
- chop($hostname=`hostname`);
- $port=(getservbyname($port, 'tcp'))[2] unless $port =~ /^\d+$/;
- $me=pack($sockaddr,&AF_INET,0,(gethostbyname($hostname))[4]);
- $them=pack($sockaddr,&AF_INET,$port,(gethostbyname($host))[4]);
- socket(S,&PF_INET,&SOCK_STREAM,(getprotobyname('tcp'))[2]) ||
- die "socket: $!";
- bind(S,$me) || return "bind: $!";
- connect(S,$them) || return "connect: $!";
- select(S);
- $| = 1;
- select(stdout);
- return "";
-}
-
-### Main
-
-{
- $year=`date +%y`;
- chomp($year);
- $year += ($year < 70) ? 2000 : 1900;
- $date = $year . `date +%m%d:%H%M%S`;
- chomp($date);
- ($day,$time)=split(/:/,$date);
- $res=&tcp_connect($server,$port);
- open(OUT,">>$wherelog$day");
- if ($res) {
- print OUT "$time:-1:-1:-1:-1:$res\n";
- exit 1;
- }
- print S "GET $request\n";
- while (<S>) {
- $requests=$1 if ( m|^BusyServers:\ (\S+)|);
- $idle=$1 if ( m|^IdleServers:\ (\S+)|);
- $number=$1 if ( m|sses:\ (\S+)|);
- $cpu=$1 if (m|^CPULoad:\ (\S+)|);
- }
- print OUT "$time:$requests:$idle:$number:$cpu\n";
-}
-
-
diff --git a/rubbos/app/httpd-2.0.64/support/logresolve b/rubbos/app/httpd-2.0.64/support/logresolve
deleted file mode 100755
index 5f4eaa20..00000000
--- a/rubbos/app/httpd-2.0.64/support/logresolve
+++ /dev/null
@@ -1,131 +0,0 @@
-#! /bin/bash
-
-# logresolve - temporary wrapper script for .libs/logresolve
-# Generated by ltmain.sh - GNU libtool 1.5.26 (1.1220.2.493 2008/02/01 16:58:18)
-#
-# The logresolve program cannot be directly executed until all the libtool
-# libraries that it depends on are installed.
-#
-# This wrapper script should never be moved out of the build directory.
-# If it is, it will not operate correctly.
-
-# Sed substitution that helps us do robust quoting. It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='/bin/sed -e 1s/^X//'
-sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
-
-# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
-fi
-BIN_SH=xpg4; export BIN_SH # for Tru64
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-relink_command="(cd /bottlenecks/rubbos/app/httpd-2.0.64/support; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=\"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games\"; export PATH; gcc -g -O2 -pthread -D_REENTRANT -D_GNU_SOURCE -DAP_HAVE_DESIGNATED_INITIALIZER -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/include -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/include -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/lib -I. -I/bottlenecks/rubbos/app/httpd-2.0.64/os/unix -I/bottlenecks/rubbos/app/httpd-2.0.64/server/mpm/worker -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/http -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/filters -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/proxy -I/bottlenecks/rubbos/app/httpd-2.0.64/include -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/generators -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/dav/main -o \$progdir/\$file .libs/logresolve.o -Wl,--export-dynamic -L/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/lib /bottlenecks/rubbos/app/httpd-2.0.64/srclib/pcre/.libs/libpcre.a /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/.libs/libaprutil-0.so /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/.libs/libexpat.so /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/.libs/libapr-0.so -lrt -lm -lcrypt -lnsl -lpthread -ldl -Wl,--rpath -Wl,/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/.libs -Wl,--rpath -Wl,/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/.libs -Wl,--rpath -Wl,/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/.libs -Wl,--rpath -Wl,/bottlenecks/rubbos/app/apache2/lib ) "
-
-# This environment variable determines our operation mode.
-if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
- # install mode needs the following variable:
- notinst_deplibs=' /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/libaprutil-0.la /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/libexpat.la /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/libapr-0.la'
-else
- # When we are sourced in execute mode, $file and $echo are already set.
- if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
- echo="echo"
- file="$0"
- # Make sure echo works.
- if test "X$1" = X--no-reexec; then
- # Discard the --no-reexec flag, and continue.
- shift
- elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
- # Yippee, $echo works!
- :
- else
- # Restart under the correct shell, and then maybe $echo will work.
- exec /bin/bash "$0" --no-reexec ${1+"$@"}
- fi
- fi
-
- # Find the directory that this script lives in.
- thisdir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
- test "x$thisdir" = "x$file" && thisdir=.
-
- # Follow symbolic links until we get to the real thisdir.
- file=`ls -ld "$file" | /bin/sed -n 's/.*-> //p'`
- while test -n "$file"; do
- destdir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
-
- # If there was a directory component, then change thisdir.
- if test "x$destdir" != "x$file"; then
- case "$destdir" in
- [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
- *) thisdir="$thisdir/$destdir" ;;
- esac
- fi
-
- file=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
- file=`ls -ld "$thisdir/$file" | /bin/sed -n 's/.*-> //p'`
- done
-
- # Try to get the absolute directory name.
- absdir=`cd "$thisdir" && pwd`
- test -n "$absdir" && thisdir="$absdir"
-
- program=lt-'logresolve'
- progdir="$thisdir/.libs"
-
- if test ! -f "$progdir/$program" || \
- { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /bin/sed 1q`; \
- test "X$file" != "X$progdir/$program"; }; then
-
- file="$$-$program"
-
- if test ! -d "$progdir"; then
- mkdir "$progdir"
- else
- rm -f "$progdir/$file"
- fi
-
- # relink executable if necessary
- if test -n "$relink_command"; then
- if relink_command_output=`eval $relink_command 2>&1`; then :
- else
- echo "$relink_command_output" >&2
- rm -f "$progdir/$file"
- exit 1
- fi
- fi
-
- mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
- { rm -f "$progdir/$program";
- mv -f "$progdir/$file" "$progdir/$program"; }
- rm -f "$progdir/$file"
- fi
-
- if test -f "$progdir/$program"; then
- if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
- # Run the actual program with our arguments.
-
- exec "$progdir/$program" ${1+"$@"}
-
- $echo "$0: cannot exec $program $*"
- exit 1
- fi
- else
- # The program doesn't exist.
- $echo "$0: error: \`$progdir/$program' does not exist" 1>&2
- $echo "This script is just a wrapper for $program." 1>&2
- echo "See the libtool documentation for more information." 1>&2
- exit 1
- fi
-fi
diff --git a/rubbos/app/httpd-2.0.64/support/logresolve.c b/rubbos/app/httpd-2.0.64/support/logresolve.c
deleted file mode 100644
index c606039b..00000000
--- a/rubbos/app/httpd-2.0.64/support/logresolve.c
+++ /dev/null
@@ -1,400 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * logresolve 1.1
- *
- * Tom Rathborne - tomr@uunet.ca - http://www.uunet.ca/~tomr/
- * UUNET Canada, April 16, 1995
- *
- * Rewritten by David Robinson. (drtr ast.cam.ac.uk)
- *
- * Usage: logresolve [-s filename] [-c] < access_log > new_log
- *
- * Arguments:
- * -s filename name of a file to record statistics
- * -c check the DNS for a matching A record for the host.
- *
- * Notes:
- *
- * To generate meaningful statistics from an HTTPD log file, it's good
- * to have the domain name of each machine that accessed your site, but
- * doing this on the fly can slow HTTPD down.
- *
- * Compiling NCSA HTTPD with the -DMINIMAL_DNS flag turns IP#->hostname
- * resolution off. Before running your stats program, just run your log
- * file through this program (logresolve) and all of your IP numbers will
- * be resolved into hostnames (where possible).
- *
- * logresolve takes an HTTPD access log (in the COMMON log file format,
- * or any other format that has the IP number/domain name as the first
- * field for that matter), and outputs the same file with all of the
- * domain names looked up. Where no domain name can be found, the IP
- * number is left in.
- *
- * To minimize impact on your nameserver, logresolve has its very own
- * internal hash-table cache. This means that each IP number will only
- * be looked up the first time it is found in the log file.
- *
- * The -c option causes logresolve to apply the same check as httpd
- * compiled with -DMAXIMUM_DNS; after finding the hostname from the IP
- * address, it looks up the IP addresses for the hostname and checks
- * that one of these matches the original address.
- */
-
-#include "apr_lib.h"
-#if APR_HAVE_STDIO_H
-#include <stdio.h>
-#endif
-#if APR_HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#if APR_HAVE_CTYPE_H
-#include <ctype.h>
-#endif
-#if APR_HAVE_NETDB_H
-#include <netdb.h>
-#endif
-#if APR_HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#if APR_HAVE_STRING_H
-#include <string.h>
-#endif
-#if APR_HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#if APR_HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-
-static void cgethost(struct in_addr ipnum, char *string, int check);
-static int get_line(char *s, int n);
-static void stats(FILE *output);
-
-#ifdef BEOS
-#define NO_ADDRESS NO_DATA
-#endif
-
-
-/* maximum line length */
-#ifndef MAXLINE
-#define MAXLINE 1024
-#endif
-
-/* maximum length of a domain name */
-#ifndef MAXDNAME
-#define MAXDNAME 256
-#endif
-
-/* number of buckets in cache hash apr_table_t */
-#define BUCKETS 256
-
-#if !APR_HAVE_STRDUP
-char *strdup (const char *str)
-{
- char *dup;
-
- if (!(dup = (char *) malloc(strlen(str) + 1)))
- return NULL;
- dup = strcpy(dup, str);
-
- return dup;
-}
-#endif
-
-/*
- * struct nsrec - record of nameservice for cache linked list
- *
- * ipnum - IP number hostname - hostname noname - nonzero if IP number has no
- * hostname, i.e. hostname=IP number
- */
-
-struct nsrec {
- struct in_addr ipnum;
- char *hostname;
- int noname;
- struct nsrec *next;
-} *nscache[BUCKETS];
-
-/*
- * statistics - obvious
- */
-
-#ifndef h_errno
-#ifdef __CYGWIN__
-extern __declspec(dllimport) int h_errno;
-#else
-extern int h_errno; /* some machines don't have this in their headers */
-#endif
-#endif
-
-/* largest value for h_errno */
-
-#define MAX_ERR (NO_ADDRESS)
-#define UNKNOWN_ERR (MAX_ERR+1)
-#define NO_REVERSE (MAX_ERR+2)
-
-static int cachehits = 0;
-static int cachesize = 0;
-static int entries = 0;
-static int resolves = 0;
-static int withname = 0;
-static int errors[MAX_ERR + 3];
-
-/*
- * cgethost - gets hostname by IP address, caching, and adding unresolvable
- * IP numbers with their IP number as hostname, setting noname flag
- */
-
-static void cgethost (struct in_addr ipnum, char *string, int check)
-{
- struct nsrec **current, *new;
- struct hostent *hostdata;
- char *name;
-
- current = &nscache[((ipnum.s_addr + (ipnum.s_addr >> 8) +
- (ipnum.s_addr >> 16) + (ipnum.s_addr >> 24)) % BUCKETS)];
-
- while (*current != NULL && ipnum.s_addr != (*current)->ipnum.s_addr)
- current = &(*current)->next;
-
- if (*current == NULL) {
- cachesize++;
- new = (struct nsrec *) malloc(sizeof(struct nsrec));
- if (new == NULL) {
- perror("malloc");
- fprintf(stderr, "Insufficient memory\n");
- exit(1);
- }
- *current = new;
- new->next = NULL;
-
- new->ipnum = ipnum;
-
- hostdata = gethostbyaddr((const char *) &ipnum, sizeof(struct in_addr),
- AF_INET);
- if (hostdata == NULL) {
- if (h_errno > MAX_ERR)
- errors[UNKNOWN_ERR]++;
- else
- errors[h_errno]++;
- new->noname = h_errno;
- name = strdup(inet_ntoa(ipnum));
- }
- else {
- new->noname = 0;
- name = strdup(hostdata->h_name);
- if (check) {
- if (name == NULL) {
- perror("strdup");
- fprintf(stderr, "Insufficient memory\n");
- exit(1);
- }
- hostdata = gethostbyname(name);
- if (hostdata != NULL) {
- char **hptr;
-
- for (hptr = hostdata->h_addr_list; *hptr != NULL; hptr++)
- if (((struct in_addr *) (*hptr))->s_addr == ipnum.s_addr)
- break;
- if (*hptr == NULL)
- hostdata = NULL;
- }
- if (hostdata == NULL) {
- fprintf(stderr, "Bad host: %s != %s\n", name,
- inet_ntoa(ipnum));
- new->noname = NO_REVERSE;
- free(name);
- name = strdup(inet_ntoa(ipnum));
- errors[NO_REVERSE]++;
- }
- }
- }
- new->hostname = name;
- if (new->hostname == NULL) {
- perror("strdup");
- fprintf(stderr, "Insufficient memory\n");
- exit(1);
- }
- }
- else
- cachehits++;
-
- /* size of string == MAXDNAME +1 */
- strncpy(string, (*current)->hostname, MAXDNAME);
- string[MAXDNAME] = '\0';
-}
-
-/*
- * prints various statistics to output
- */
-
-static void stats (FILE *output)
-{
- int i;
- char *ipstring;
- struct nsrec *current;
- char *errstring[MAX_ERR + 3];
-
- for (i = 0; i < MAX_ERR + 3; i++)
- errstring[i] = "Unknown error";
- errstring[HOST_NOT_FOUND] = "Host not found";
- errstring[TRY_AGAIN] = "Try again";
- errstring[NO_RECOVERY] = "Non recoverable error";
- errstring[NO_DATA] = "No data record";
- errstring[NO_ADDRESS] = "No address";
- errstring[NO_REVERSE] = "No reverse entry";
-
- fprintf(output, "logresolve Statistics:\n");
-
- fprintf(output, "Entries: %d\n", entries);
- fprintf(output, " With name : %d\n", withname);
- fprintf(output, " Resolves : %d\n", resolves);
- if (errors[HOST_NOT_FOUND])
- fprintf(output, " - Not found : %d\n", errors[HOST_NOT_FOUND]);
- if (errors[TRY_AGAIN])
- fprintf(output, " - Try again : %d\n", errors[TRY_AGAIN]);
- if (errors[NO_DATA])
- fprintf(output, " - No data : %d\n", errors[NO_DATA]);
- if (errors[NO_ADDRESS])
- fprintf(output, " - No address: %d\n", errors[NO_ADDRESS]);
- if (errors[NO_REVERSE])
- fprintf(output, " - No reverse: %d\n", errors[NO_REVERSE]);
- fprintf(output, "Cache hits : %d\n", cachehits);
- fprintf(output, "Cache size : %d\n", cachesize);
- fprintf(output, "Cache buckets : IP number * hostname\n");
-
- for (i = 0; i < BUCKETS; i++)
- for (current = nscache[i]; current != NULL; current = current->next) {
- ipstring = inet_ntoa(current->ipnum);
- if (current->noname == 0)
- fprintf(output, " %3d %15s - %s\n", i, ipstring,
- current->hostname);
- else {
- if (current->noname > MAX_ERR + 2)
- fprintf(output, " %3d %15s : Unknown error\n", i,
- ipstring);
- else
- fprintf(output, " %3d %15s : %s\n", i, ipstring,
- errstring[current->noname]);
- }
- }
-}
-
-
-/*
- * gets a line from stdin
- */
-
-static int get_line (char *s, int n)
-{
- char *cp;
-
- if (!fgets(s, n, stdin))
- return (0);
- cp = strchr(s, '\n');
- if (cp)
- *cp = '\0';
- return (1);
-}
-
-int main (int argc, char *argv[])
-{
- struct in_addr ipnum;
- char *bar, hoststring[MAXDNAME + 1], line[MAXLINE], *statfile;
- int i, check;
-
-#if defined(WIN32) || defined(NETWARE)
- /* If we apr'ify this code, apr_pool_create/apr_pool_destroy
- * should perform the WSAStartup/WSACleanup for us.
- */
- WSADATA wsaData;
- WSAStartup(MAKEWORD(2, 0), &wsaData);
-#endif
-
- check = 0;
- statfile = NULL;
- for (i = 1; i < argc; i++) {
- if (strcmp(argv[i], "-c") == 0)
- check = 1;
- else if (strcmp(argv[i], "-s") == 0) {
- if (i == argc - 1) {
- fprintf(stderr, "logresolve: missing filename to -s\n");
- exit(1);
- }
- i++;
- statfile = argv[i];
- }
- else {
- fprintf(stderr, "Usage: logresolve [-s statfile] [-c] < input > output\n");
- exit(0);
- }
- }
-
- for (i = 0; i < BUCKETS; i++)
- nscache[i] = NULL;
- for (i = 0; i < MAX_ERR + 2; i++)
- errors[i] = 0;
-
- while (get_line(line, MAXLINE)) {
- if (line[0] == '\0')
- continue;
- entries++;
- if (!apr_isdigit(line[0])) { /* short cut */
- puts(line);
- withname++;
- continue;
- }
- bar = strchr(line, ' ');
- if (bar != NULL)
- *bar = '\0';
- ipnum.s_addr = inet_addr(line);
- if (ipnum.s_addr == 0xffffffffu) {
- if (bar != NULL)
- *bar = ' ';
- puts(line);
- withname++;
- continue;
- }
-
- resolves++;
-
- cgethost(ipnum, hoststring, check);
- if (bar != NULL)
- printf("%s %s\n", hoststring, bar + 1);
- else
- puts(hoststring);
- }
-
-#if defined(WIN32) || defined(NETWARE)
- WSACleanup();
-#endif
-
- if (statfile != NULL) {
- FILE *fp;
- fp = fopen(statfile, "w");
- if (fp == NULL) {
- fprintf(stderr, "logresolve: could not open statistics file '%s'\n"
- ,statfile);
- exit(1);
- }
- stats(fp);
- fclose(fp);
- }
-
- return (0);
-}
diff --git a/rubbos/app/httpd-2.0.64/support/logresolve.dsp b/rubbos/app/httpd-2.0.64/support/logresolve.dsp
deleted file mode 100644
index d1fbcb6a..00000000
--- a/rubbos/app/httpd-2.0.64/support/logresolve.dsp
+++ /dev/null
@@ -1,123 +0,0 @@
-# Microsoft Developer Studio Project File - Name="logresolve" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=logresolve - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "logresolve.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "logresolve.mak" CFG="logresolve - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "logresolve - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "logresolve - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "logresolve - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /FD /c
-# ADD CPP /nologo /MD /W3 /Zi /O2 /I "../srclib/apr/include" /I "../srclib/apr-util/include" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /Fd"Release/logresolve_src" /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib advapi32.lib wsock32.lib ws2_32.lib shell32.lib /nologo /subsystem:console
-# ADD LINK32 kernel32.lib advapi32.lib wsock32.lib ws2_32.lib shell32.lib /nologo /subsystem:console /debug /opt:ref
-
-!ELSEIF "$(CFG)" == "logresolve - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MDd /W3 /EHsc /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /FD /c
-# ADD CPP /nologo /MDd /W3 /EHsc /Zi /Od /I "../srclib/apr/include" /I "../srclib/apr-util/include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /Fd"Debug/logresolve_src" /FD /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib advapi32.lib wsock32.lib ws2_32.lib shell32.lib /nologo /subsystem:console /incremental:no /debug
-# ADD LINK32 kernel32.lib advapi32.lib wsock32.lib ws2_32.lib shell32.lib /nologo /subsystem:console /incremental:no /debug
-
-!ENDIF
-
-# Begin Target
-
-# Name "logresolve - Win32 Release"
-# Name "logresolve - Win32 Debug"
-# Begin Source File
-
-SOURCE=.\logresolve.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\logresolve.rc
-# End Source File
-# Begin Source File
-
-SOURCE=..\build\win32\win32ver.awk
-
-!IF "$(CFG)" == "logresolve - Win32 Release"
-
-# PROP Ignore_Default_Tool 1
-# Begin Custom Build - Creating Version Resource
-InputPath=..\build\win32\win32ver.awk
-
-".\logresolve.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- awk -f ../build/win32/win32ver.awk logresolve.exe "logresolve Utility" ../include/ap_release.h > .\logresolve.rc
-
-# End Custom Build
-
-!ELSEIF "$(CFG)" == "logresolve - Win32 Debug"
-
-# PROP Ignore_Default_Tool 1
-# Begin Custom Build - Creating Version Resource
-InputPath=..\build\win32\win32ver.awk
-
-".\logresolve.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- awk -f ../build/win32/win32ver.awk logresolve.exe "logresolve Utility" ../include/ap_release.h > .\logresolve.rc
-
-# End Custom Build
-
-!ENDIF
-
-# End Source File
-# End Target
-# End Project
diff --git a/rubbos/app/httpd-2.0.64/support/logresolve.lo b/rubbos/app/httpd-2.0.64/support/logresolve.lo
deleted file mode 100644
index 20028ace..00000000
--- a/rubbos/app/httpd-2.0.64/support/logresolve.lo
+++ /dev/null
@@ -1,12 +0,0 @@
-# logresolve.lo - a libtool object file
-# Generated by ltmain.sh - GNU libtool 1.5.26 (1.1220.2.493 2008/02/01 16:58:18)
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# Name of the PIC object.
-pic_object='.libs/logresolve.o'
-
-# Name of the non-PIC object.
-non_pic_object='logresolve.o'
-
diff --git a/rubbos/app/httpd-2.0.64/support/logresolve.o b/rubbos/app/httpd-2.0.64/support/logresolve.o
deleted file mode 100644
index a948c1d0..00000000
--- a/rubbos/app/httpd-2.0.64/support/logresolve.o
+++ /dev/null
Binary files differ
diff --git a/rubbos/app/httpd-2.0.64/support/logresolve.pl b/rubbos/app/httpd-2.0.64/support/logresolve.pl
deleted file mode 100644
index bd517b20..00000000
--- a/rubbos/app/httpd-2.0.64/support/logresolve.pl
+++ /dev/null
@@ -1,225 +0,0 @@
-#!/usr/bin/perl
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#
-# logresolve.pl
-#
-# v 1.2 by robh @ imdb.com
-#
-# usage: logresolve.pl <infile >outfile
-#
-# input = Apache/NCSA/.. logfile with IP numbers at start of lines
-# output = same logfile with IP addresses resolved to hostnames where
-# name lookups succeeded.
-#
-# this differs from the C based 'logresolve' in that this script
-# spawns a number ($CHILDREN) of subprocesses to resolve addresses
-# concurrently and sets a short timeout ($TIMEOUT) for each lookup in
-# order to keep things moving quickly.
-#
-# the parent process handles caching of IP->hostnames using a Perl hash
-# it also avoids sending the same IP to multiple child processes to be
-# resolved multiple times concurrently.
-#
-# Depending on the settings of $CHILDREN and $TIMEOUT you should see
-# significant reductions in the overall time taken to resolve your
-# logfiles. With $CHILDREN=40 and $TIMEOUT=5 I've seen 200,000 - 300,000
-# logfile lines processed per hour compared to ~45,000 per hour
-# with 'logresolve'.
-#
-# I haven't yet seen any noticable reduction in the percentage of IPs
-# that fail to get resolved. Your mileage will no doubt vary. 5s is long
-# enough to wait IMO.
-#
-# Known to work with FreeBSD 2.2
-# Known to have problems with Solaris
-#
-# 980417 - use 'sockaddr_un' for bind/connect to make the script work
-# with linux. Fix from Luuk de Boer <luuk_de_boer@pi.net>
-
-require 5.004;
-
-$|=1;
-
-use FileHandle;
-use Socket;
-
-use strict;
-no strict 'refs';
-
-use vars qw($PROTOCOL);
-$PROTOCOL = 0;
-
-my $CHILDREN = 40;
-my $TIMEOUT = 5;
-
-my $filename;
-my %hash = ();
-my $parent = $$;
-
-my @children = ();
-for (my $child = 1; $child <=$CHILDREN; $child++) {
- my $f = fork();
- if (!$f) {
- $filename = "./.socket.$parent.$child";
- if (-e $filename) { unlink($filename) || warn "$filename .. $!\n";}
- &child($child);
- exit(0);
- }
- push(@children, $f);
-}
-
-&parent;
-&cleanup;
-
-## remove all temporary files before shutting down
-sub cleanup {
- # die kiddies, die
- kill(15, @children);
- for (my $child = 1; $child <=$CHILDREN; $child++) {
- if (-e "./.socket.$parent.$child") {
- unlink("./.socket.$parent.$child")
- || warn ".socket.$parent.$child $!";
- }
- }
-}
-
-sub parent {
- # Trap some possible signals to trigger temp file cleanup
- $SIG{'KILL'} = $SIG{'INT'} = $SIG{'PIPE'} = \&cleanup;
-
- my %CHILDSOCK;
- my $filename;
-
- ## fork child processes. Each child will create a socket connection
- ## to this parent and use an unique temp filename to do so.
- for (my $child = 1; $child <=$CHILDREN; $child++) {
- $CHILDSOCK{$child}= FileHandle->new;
-
- if (!socket($CHILDSOCK{$child}, AF_UNIX, SOCK_STREAM, $PROTOCOL)) {
- warn "parent socket to child failed $!";
- }
- $filename = "./.socket.$parent.$child";
- my $response;
- do {
- $response = connect($CHILDSOCK{$child}, sockaddr_un($filename));
- if ($response != 1) {
- sleep(1);
- }
- } while ($response != 1);
- $CHILDSOCK{$child}->autoflush;
- }
- ## All child processes should now be ready or at worst warming up
-
- my (@buffer, $child, $ip, $rest, $hostname, $response);
- ## read the logfile lines from STDIN
- while(<STDIN>) {
- @buffer = (); # empty the logfile line buffer array.
- $child = 1; # children are numbered 1..N, start with #1
-
- # while we have a child to talk to and data to give it..
- do {
- push(@buffer, $_); # buffer the line
- ($ip, $rest) = split(/ /, $_, 2); # separate IP form rest
-
- unless ($hash{$ip}) { # resolve if unseen IP
- $CHILDSOCK{$child}->print("$ip\n"); # pass IP to next child
- $hash{$ip} = $ip; # don't look it up again.
- $child++;
- }
- } while (($child < ($CHILDREN-1)) and ($_ = <STDIN>));
-
- ## now poll each child for a response
- while (--$child > 0) {
- $response = $CHILDSOCK{$child}->getline;
- chomp($response);
- # child sends us back both the IP and HOSTNAME, no need for us
- # to remember what child received any given IP, and no worries
- # what order we talk to the children
- ($ip, $hostname) = split(/\|/, $response, 2);
- $hash{$ip} = $hostname;
- }
-
- # resolve all the logfiles lines held in the log buffer array..
- for (my $line = 0; $line <=$#buffer; $line++) {
- # get next buffered line
- ($ip, $rest) = split(/ /, $buffer[$line], 2);
- # separate IP from rest and replace with cached hostname
- printf STDOUT ("%s %s", $hash{$ip}, $rest);
- }
- }
-}
-
-########################################
-
-sub child {
- # arg = numeric ID - how the parent refers to me
- my $me = shift;
-
- # add trap for alarm signals.
- $SIG{'ALRM'} = sub { die "alarmed"; };
-
- # create a socket to communicate with parent
- socket(INBOUND, AF_UNIX, SOCK_STREAM, $PROTOCOL)
- || die "Error with Socket: !$\n";
- $filename = "./.socket.$parent.$me";
- bind(INBOUND, sockaddr_un($filename))
- || die "Error Binding $filename: $!\n";
- listen(INBOUND, 5) || die "Error Listening: $!\n";
-
- my ($ip, $send_back);
- my $talk = FileHandle->new;
-
- # accept a connection from the parent process. We only ever have
- # have one connection where we exchange 1 line of info with the
- # parent.. 1 line in (IP address), 1 line out (IP + hostname).
- accept($talk, INBOUND) || die "Error Accepting: $!\n";
- # disable I/O buffering just in case
- $talk->autoflush;
- # while the parent keeps sending data, we keep responding..
- while(($ip = $talk->getline)) {
- chomp($ip);
- # resolve the IP if time permits and send back what we found..
- $send_back = sprintf("%s|%s", $ip, &nslookup($ip));
- $talk->print($send_back."\n");
- }
-}
-
-# perform a time restricted hostname lookup.
-sub nslookup {
- # get the IP as an arg
- my $ip = shift;
- my $hostname = undef;
-
- # do the hostname lookup inside an eval. The eval will use the
- # already configured SIGnal handler and drop out of the {} block
- # regardless of whether the alarm occured or not.
- eval {
- alarm($TIMEOUT);
- $hostname = gethostbyaddr(gethostbyname($ip), AF_INET);
- alarm(0);
- };
- if ($@ =~ /alarm/) {
- # useful for debugging perhaps..
- # print "alarming, isn't it? ($ip)";
- }
-
- # return the hostname or the IP address itself if there is no hostname
- $hostname ne "" ? $hostname : $ip;
-}
-
-
diff --git a/rubbos/app/httpd-2.0.64/support/logresolve.pl.in b/rubbos/app/httpd-2.0.64/support/logresolve.pl.in
deleted file mode 100644
index 879d2972..00000000
--- a/rubbos/app/httpd-2.0.64/support/logresolve.pl.in
+++ /dev/null
@@ -1,225 +0,0 @@
-#!@perlbin@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#
-# logresolve.pl
-#
-# v 1.2 by robh @ imdb.com
-#
-# usage: logresolve.pl <infile >outfile
-#
-# input = Apache/NCSA/.. logfile with IP numbers at start of lines
-# output = same logfile with IP addresses resolved to hostnames where
-# name lookups succeeded.
-#
-# this differs from the C based 'logresolve' in that this script
-# spawns a number ($CHILDREN) of subprocesses to resolve addresses
-# concurrently and sets a short timeout ($TIMEOUT) for each lookup in
-# order to keep things moving quickly.
-#
-# the parent process handles caching of IP->hostnames using a Perl hash
-# it also avoids sending the same IP to multiple child processes to be
-# resolved multiple times concurrently.
-#
-# Depending on the settings of $CHILDREN and $TIMEOUT you should see
-# significant reductions in the overall time taken to resolve your
-# logfiles. With $CHILDREN=40 and $TIMEOUT=5 I've seen 200,000 - 300,000
-# logfile lines processed per hour compared to ~45,000 per hour
-# with 'logresolve'.
-#
-# I haven't yet seen any noticable reduction in the percentage of IPs
-# that fail to get resolved. Your mileage will no doubt vary. 5s is long
-# enough to wait IMO.
-#
-# Known to work with FreeBSD 2.2
-# Known to have problems with Solaris
-#
-# 980417 - use 'sockaddr_un' for bind/connect to make the script work
-# with linux. Fix from Luuk de Boer <luuk_de_boer@pi.net>
-
-require 5.004;
-
-$|=1;
-
-use FileHandle;
-use Socket;
-
-use strict;
-no strict 'refs';
-
-use vars qw($PROTOCOL);
-$PROTOCOL = 0;
-
-my $CHILDREN = 40;
-my $TIMEOUT = 5;
-
-my $filename;
-my %hash = ();
-my $parent = $$;
-
-my @children = ();
-for (my $child = 1; $child <=$CHILDREN; $child++) {
- my $f = fork();
- if (!$f) {
- $filename = "./.socket.$parent.$child";
- if (-e $filename) { unlink($filename) || warn "$filename .. $!\n";}
- &child($child);
- exit(0);
- }
- push(@children, $f);
-}
-
-&parent;
-&cleanup;
-
-## remove all temporary files before shutting down
-sub cleanup {
- # die kiddies, die
- kill(15, @children);
- for (my $child = 1; $child <=$CHILDREN; $child++) {
- if (-e "./.socket.$parent.$child") {
- unlink("./.socket.$parent.$child")
- || warn ".socket.$parent.$child $!";
- }
- }
-}
-
-sub parent {
- # Trap some possible signals to trigger temp file cleanup
- $SIG{'KILL'} = $SIG{'INT'} = $SIG{'PIPE'} = \&cleanup;
-
- my %CHILDSOCK;
- my $filename;
-
- ## fork child processes. Each child will create a socket connection
- ## to this parent and use an unique temp filename to do so.
- for (my $child = 1; $child <=$CHILDREN; $child++) {
- $CHILDSOCK{$child}= FileHandle->new;
-
- if (!socket($CHILDSOCK{$child}, AF_UNIX, SOCK_STREAM, $PROTOCOL)) {
- warn "parent socket to child failed $!";
- }
- $filename = "./.socket.$parent.$child";
- my $response;
- do {
- $response = connect($CHILDSOCK{$child}, sockaddr_un($filename));
- if ($response != 1) {
- sleep(1);
- }
- } while ($response != 1);
- $CHILDSOCK{$child}->autoflush;
- }
- ## All child processes should now be ready or at worst warming up
-
- my (@buffer, $child, $ip, $rest, $hostname, $response);
- ## read the logfile lines from STDIN
- while(<STDIN>) {
- @buffer = (); # empty the logfile line buffer array.
- $child = 1; # children are numbered 1..N, start with #1
-
- # while we have a child to talk to and data to give it..
- do {
- push(@buffer, $_); # buffer the line
- ($ip, $rest) = split(/ /, $_, 2); # separate IP form rest
-
- unless ($hash{$ip}) { # resolve if unseen IP
- $CHILDSOCK{$child}->print("$ip\n"); # pass IP to next child
- $hash{$ip} = $ip; # don't look it up again.
- $child++;
- }
- } while (($child < ($CHILDREN-1)) and ($_ = <STDIN>));
-
- ## now poll each child for a response
- while (--$child > 0) {
- $response = $CHILDSOCK{$child}->getline;
- chomp($response);
- # child sends us back both the IP and HOSTNAME, no need for us
- # to remember what child received any given IP, and no worries
- # what order we talk to the children
- ($ip, $hostname) = split(/\|/, $response, 2);
- $hash{$ip} = $hostname;
- }
-
- # resolve all the logfiles lines held in the log buffer array..
- for (my $line = 0; $line <=$#buffer; $line++) {
- # get next buffered line
- ($ip, $rest) = split(/ /, $buffer[$line], 2);
- # separate IP from rest and replace with cached hostname
- printf STDOUT ("%s %s", $hash{$ip}, $rest);
- }
- }
-}
-
-########################################
-
-sub child {
- # arg = numeric ID - how the parent refers to me
- my $me = shift;
-
- # add trap for alarm signals.
- $SIG{'ALRM'} = sub { die "alarmed"; };
-
- # create a socket to communicate with parent
- socket(INBOUND, AF_UNIX, SOCK_STREAM, $PROTOCOL)
- || die "Error with Socket: !$\n";
- $filename = "./.socket.$parent.$me";
- bind(INBOUND, sockaddr_un($filename))
- || die "Error Binding $filename: $!\n";
- listen(INBOUND, 5) || die "Error Listening: $!\n";
-
- my ($ip, $send_back);
- my $talk = FileHandle->new;
-
- # accept a connection from the parent process. We only ever have
- # have one connection where we exchange 1 line of info with the
- # parent.. 1 line in (IP address), 1 line out (IP + hostname).
- accept($talk, INBOUND) || die "Error Accepting: $!\n";
- # disable I/O buffering just in case
- $talk->autoflush;
- # while the parent keeps sending data, we keep responding..
- while(($ip = $talk->getline)) {
- chomp($ip);
- # resolve the IP if time permits and send back what we found..
- $send_back = sprintf("%s|%s", $ip, &nslookup($ip));
- $talk->print($send_back."\n");
- }
-}
-
-# perform a time restricted hostname lookup.
-sub nslookup {
- # get the IP as an arg
- my $ip = shift;
- my $hostname = undef;
-
- # do the hostname lookup inside an eval. The eval will use the
- # already configured SIGnal handler and drop out of the {} block
- # regardless of whether the alarm occured or not.
- eval {
- alarm($TIMEOUT);
- $hostname = gethostbyaddr(gethostbyname($ip), AF_INET);
- alarm(0);
- };
- if ($@ =~ /alarm/) {
- # useful for debugging perhaps..
- # print "alarming, isn't it? ($ip)";
- }
-
- # return the hostname or the IP address itself if there is no hostname
- $hostname ne "" ? $hostname : $ip;
-}
-
-
diff --git a/rubbos/app/httpd-2.0.64/support/phf_abuse_log.cgi b/rubbos/app/httpd-2.0.64/support/phf_abuse_log.cgi
deleted file mode 100644
index 57e03332..00000000
--- a/rubbos/app/httpd-2.0.64/support/phf_abuse_log.cgi
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/perl
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#
-# This script is used to detect people trying to abuse the security hole which
-# existed in A CGI script direstributed with Apache 1.0.3 and earlier versions.
-# You can redirect them to here using the "<Location /cgi-bin/phf*>" suggestion
-# in httpd.conf.
-#
-# The format logged to is
-# "[date] remote_addr remote_host [date] referrer user_agent".
-
-$LOG = "/var/log/phf_log";
-
-require "ctime.pl";
-$when = &ctime(time);
-$when =~ s/\n//go;
-$ENV{HTTP_USER_AGENT} .= " via $ENV{HTTP_VIA}" if($ENV{HTTP_VIA});
-
-open(LOG, ">>$LOG") || die "boo hoo, phf_log $!";
-print LOG "[$when] $ENV{REMOTE_ADDR} $ENV{REMOTE_HOST} $ENV{$HTTP_REFERER} $ENV{HTTP_USER_AGENT}\n";
-close(LOG);
-
-print "Content-type: text/html\r\n\r\n<BLINK>Smile, you're on Candid Camera.</BLINK>\n";
diff --git a/rubbos/app/httpd-2.0.64/support/phf_abuse_log.cgi.in b/rubbos/app/httpd-2.0.64/support/phf_abuse_log.cgi.in
deleted file mode 100644
index 39900bf5..00000000
--- a/rubbos/app/httpd-2.0.64/support/phf_abuse_log.cgi.in
+++ /dev/null
@@ -1,38 +0,0 @@
-#!@perlbin@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#
-# This script is used to detect people trying to abuse the security hole which
-# existed in A CGI script direstributed with Apache 1.0.3 and earlier versions.
-# You can redirect them to here using the "<Location /cgi-bin/phf*>" suggestion
-# in httpd.conf.
-#
-# The format logged to is
-# "[date] remote_addr remote_host [date] referrer user_agent".
-
-$LOG = "/var/log/phf_log";
-
-require "ctime.pl";
-$when = &ctime(time);
-$when =~ s/\n//go;
-$ENV{HTTP_USER_AGENT} .= " via $ENV{HTTP_VIA}" if($ENV{HTTP_VIA});
-
-open(LOG, ">>$LOG") || die "boo hoo, phf_log $!";
-print LOG "[$when] $ENV{REMOTE_ADDR} $ENV{REMOTE_HOST} $ENV{$HTTP_REFERER} $ENV{HTTP_USER_AGENT}\n";
-close(LOG);
-
-print "Content-type: text/html\r\n\r\n<BLINK>Smile, you're on Candid Camera.</BLINK>\n";
diff --git a/rubbos/app/httpd-2.0.64/support/rotatelogs b/rubbos/app/httpd-2.0.64/support/rotatelogs
deleted file mode 100755
index f2d38d2b..00000000
--- a/rubbos/app/httpd-2.0.64/support/rotatelogs
+++ /dev/null
@@ -1,131 +0,0 @@
-#! /bin/bash
-
-# rotatelogs - temporary wrapper script for .libs/rotatelogs
-# Generated by ltmain.sh - GNU libtool 1.5.26 (1.1220.2.493 2008/02/01 16:58:18)
-#
-# The rotatelogs program cannot be directly executed until all the libtool
-# libraries that it depends on are installed.
-#
-# This wrapper script should never be moved out of the build directory.
-# If it is, it will not operate correctly.
-
-# Sed substitution that helps us do robust quoting. It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='/bin/sed -e 1s/^X//'
-sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
-
-# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
-fi
-BIN_SH=xpg4; export BIN_SH # for Tru64
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-relink_command="(cd /bottlenecks/rubbos/app/httpd-2.0.64/support; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; { test -z \"\${LD_LIBRARY_PATH+set}\" || unset LD_LIBRARY_PATH || { LD_LIBRARY_PATH=; export LD_LIBRARY_PATH; }; }; PATH=\"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games\"; export PATH; gcc -g -O2 -pthread -D_REENTRANT -D_GNU_SOURCE -DAP_HAVE_DESIGNATED_INITIALIZER -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/include -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/include -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/lib -I. -I/bottlenecks/rubbos/app/httpd-2.0.64/os/unix -I/bottlenecks/rubbos/app/httpd-2.0.64/server/mpm/worker -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/http -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/filters -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/proxy -I/bottlenecks/rubbos/app/httpd-2.0.64/include -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/generators -I/bottlenecks/rubbos/app/httpd-2.0.64/modules/dav/main -o \$progdir/\$file .libs/rotatelogs.o -Wl,--export-dynamic -L/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/lib /bottlenecks/rubbos/app/httpd-2.0.64/srclib/pcre/.libs/libpcre.a /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/.libs/libaprutil-0.so /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/.libs/libexpat.so /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/.libs/libapr-0.so -lrt -lm -lcrypt -lnsl -lpthread -ldl -Wl,--rpath -Wl,/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/.libs -Wl,--rpath -Wl,/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/.libs -Wl,--rpath -Wl,/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/.libs -Wl,--rpath -Wl,/bottlenecks/rubbos/app/apache2/lib ) "
-
-# This environment variable determines our operation mode.
-if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
- # install mode needs the following variable:
- notinst_deplibs=' /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/libaprutil-0.la /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/xml/expat/libexpat.la /bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/libapr-0.la'
-else
- # When we are sourced in execute mode, $file and $echo are already set.
- if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
- echo="echo"
- file="$0"
- # Make sure echo works.
- if test "X$1" = X--no-reexec; then
- # Discard the --no-reexec flag, and continue.
- shift
- elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
- # Yippee, $echo works!
- :
- else
- # Restart under the correct shell, and then maybe $echo will work.
- exec /bin/bash "$0" --no-reexec ${1+"$@"}
- fi
- fi
-
- # Find the directory that this script lives in.
- thisdir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
- test "x$thisdir" = "x$file" && thisdir=.
-
- # Follow symbolic links until we get to the real thisdir.
- file=`ls -ld "$file" | /bin/sed -n 's/.*-> //p'`
- while test -n "$file"; do
- destdir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
-
- # If there was a directory component, then change thisdir.
- if test "x$destdir" != "x$file"; then
- case "$destdir" in
- [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
- *) thisdir="$thisdir/$destdir" ;;
- esac
- fi
-
- file=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
- file=`ls -ld "$thisdir/$file" | /bin/sed -n 's/.*-> //p'`
- done
-
- # Try to get the absolute directory name.
- absdir=`cd "$thisdir" && pwd`
- test -n "$absdir" && thisdir="$absdir"
-
- program=lt-'rotatelogs'
- progdir="$thisdir/.libs"
-
- if test ! -f "$progdir/$program" || \
- { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /bin/sed 1q`; \
- test "X$file" != "X$progdir/$program"; }; then
-
- file="$$-$program"
-
- if test ! -d "$progdir"; then
- mkdir "$progdir"
- else
- rm -f "$progdir/$file"
- fi
-
- # relink executable if necessary
- if test -n "$relink_command"; then
- if relink_command_output=`eval $relink_command 2>&1`; then :
- else
- echo "$relink_command_output" >&2
- rm -f "$progdir/$file"
- exit 1
- fi
- fi
-
- mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
- { rm -f "$progdir/$program";
- mv -f "$progdir/$file" "$progdir/$program"; }
- rm -f "$progdir/$file"
- fi
-
- if test -f "$progdir/$program"; then
- if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
- # Run the actual program with our arguments.
-
- exec "$progdir/$program" ${1+"$@"}
-
- $echo "$0: cannot exec $program $*"
- exit 1
- fi
- else
- # The program doesn't exist.
- $echo "$0: error: \`$progdir/$program' does not exist" 1>&2
- $echo "This script is just a wrapper for $program." 1>&2
- echo "See the libtool documentation for more information." 1>&2
- exit 1
- fi
-fi
diff --git a/rubbos/app/httpd-2.0.64/support/rotatelogs.c b/rubbos/app/httpd-2.0.64/support/rotatelogs.c
deleted file mode 100644
index e7b3a0c5..00000000
--- a/rubbos/app/httpd-2.0.64/support/rotatelogs.c
+++ /dev/null
@@ -1,262 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * Simple program to rotate Apache logs without having to kill the server.
- *
- * Contributed by Ben Laurie <ben@algroup.co.uk>
- *
- * 12 Mar 1996
- *
- * Ported to APR by Mladen Turk <mturk@mappingsoft.com>
- *
- * 23 Sep 2001
- *
- * -l option added 2004-06-11
- *
- * -l causes the use of local time rather than GMT as the base for the
- * interval. NB: Using -l in an environment which changes the GMT offset
- * (such as for BST or DST) can lead to unpredictable results!
- *
- */
-
-
-#include "apr.h"
-#include "apr_lib.h"
-#include "apr_strings.h"
-#include "apr_errno.h"
-#include "apr_file_io.h"
-#include "apr_file_info.h"
-#include "apr_general.h"
-#include "apr_time.h"
-
-#if APR_HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#if APR_HAVE_STRING_H
-#include <string.h>
-#endif
-#if APR_HAVE_STRINGS_H
-#include <strings.h>
-#endif
-
-#define BUFSIZE 65536
-#define ERRMSGSZ 82
-
-#ifndef MAX_PATH
-#define MAX_PATH 1024
-#endif
-
-int main (int argc, const char * const argv[])
-{
- char buf[BUFSIZE], buf2[MAX_PATH], errbuf[ERRMSGSZ];
- int tLogEnd = 0, tRotation = 0, utc_offset = 0;
- unsigned int sRotation = 0;
- int nMessCount = 0;
- apr_size_t nRead, nWrite;
- int use_strftime = 0;
- int use_localtime = 0;
- int now = 0;
- const char *szLogRoot;
- apr_file_t *f_stdin, *nLogFD = NULL, *nLogFDprev = NULL;
- apr_pool_t *pool;
- char *ptr = NULL;
- int argBase = 0;
- int argFile = 1;
- int argIntv = 2;
- int argOffset = 3;
-
- apr_app_initialize(&argc, &argv, NULL);
- atexit(apr_terminate);
-
- apr_pool_create(&pool, NULL);
- if ((argc > 2) && (strcmp(argv[1], "-l") == 0)) {
- argBase++;
- argFile += argBase;
- argIntv += argBase;
- argOffset += argBase;
- use_localtime = 1;
- }
- if (argc < (argBase + 3) || argc > (argBase + 4)) {
- fprintf(stderr,
- "Usage: %s [-l] <logfile> <rotation time in seconds> "
- "[offset minutes from UTC] or <rotation size in megabytes>\n\n",
- argv[0]);
-#ifdef OS2
- fprintf(stderr,
- "Add this:\n\nTransferLog \"|%s.exe /some/where 86400\"\n\n",
- argv[0]);
-#else
- fprintf(stderr,
- "Add this:\n\nTransferLog \"|%s /some/where 86400\"\n\n",
- argv[0]);
- fprintf(stderr,
- "or \n\nTransferLog \"|%s /some/where 5M\"\n\n", argv[0]);
-#endif
- fprintf(stderr,
- "to httpd.conf. The generated name will be /some/where.nnnn "
- "where nnnn is the\nsystem time at which the log nominally "
- "starts (N.B. if using a rotation time,\nthe time will always "
- "be a multiple of the rotation time, so you can synchronize\n"
- "cron scripts with it). At the end of each rotation time or "
- "when the file size\nis reached a new log is started.\n");
- exit(1);
- }
-
- szLogRoot = argv[argFile];
-
- ptr = strchr(argv[argIntv], 'M');
- if (ptr) {
- if (*(ptr+1) == '\0') {
- sRotation = atoi(argv[argIntv]) * 1048576;
- }
- if (sRotation == 0) {
- fprintf(stderr, "Invalid rotation size parameter\n");
- exit(1);
- }
- }
- else {
- if (argc >= (argBase + 4)) {
- utc_offset = atoi(argv[argOffset]) * 60;
- }
- tRotation = atoi(argv[argIntv]);
- if (tRotation <= 0) {
- fprintf(stderr, "Rotation time must be > 0\n");
- exit(6);
- }
- }
-
- use_strftime = (strchr(szLogRoot, '%') != NULL);
- if (apr_file_open_stdin(&f_stdin, pool) != APR_SUCCESS) {
- fprintf(stderr, "Unable to open stdin\n");
- exit(1);
- }
-
- for (;;) {
- nRead = sizeof(buf);
- if (apr_file_read(f_stdin, buf, &nRead) != APR_SUCCESS) {
- exit(3);
- }
- if (tRotation) {
- /*
- * Check for our UTC offset every time through the loop, since
- * it might change if there's a switch between standard and
- * daylight savings time.
- */
- if (use_localtime) {
- apr_time_exp_t lt;
- apr_time_exp_lt(&lt, apr_time_now());
- utc_offset = lt.tm_gmtoff;
- }
- now = (int)(apr_time_now() / APR_USEC_PER_SEC) + utc_offset;
- if (nLogFD != NULL && now >= tLogEnd) {
- nLogFDprev = nLogFD;
- nLogFD = NULL;
- }
- }
- else if (sRotation) {
- apr_finfo_t finfo;
- apr_off_t current_size = -1;
-
- if ((nLogFD != NULL) &&
- (apr_file_info_get(&finfo, APR_FINFO_SIZE, nLogFD) == APR_SUCCESS)) {
- current_size = finfo.size;
- }
-
- if (current_size > sRotation) {
- nLogFDprev = nLogFD;
- nLogFD = NULL;
- }
- }
- else {
- fprintf(stderr, "No rotation time or size specified\n");
- exit(2);
- }
-
- if (nLogFD == NULL) {
- int tLogStart;
-
- if (tRotation) {
- tLogStart = (now / tRotation) * tRotation;
- }
- else {
- tLogStart = (int)apr_time_sec(apr_time_now());
- }
-
- if (use_strftime) {
- apr_time_t tNow = apr_time_from_sec(tLogStart);
- apr_time_exp_t e;
- apr_size_t rs;
-
- apr_time_exp_gmt(&e, tNow);
- apr_strftime(buf2, &rs, sizeof(buf2), szLogRoot, &e);
- }
- else {
- sprintf(buf2, "%s.%010d", szLogRoot, tLogStart);
- }
- tLogEnd = tLogStart + tRotation;
- apr_file_open(&nLogFD, buf2,
- APR_APPEND | APR_WRITE | APR_CREATE | APR_LARGEFILE,
- APR_OS_DEFAULT, pool);
- if (nLogFD == NULL) {
- /* Uh-oh. Failed to open the new log file. Try to clear
- * the previous log file, note the lost log entries,
- * and keep on truckin'. */
- if (nLogFDprev == NULL) {
- fprintf(stderr, "1 Previous file handle doesn't exists %s\n", buf2);
- exit(2);
- }
- else {
- nLogFD = nLogFDprev;
- sprintf(errbuf,
- "Resetting log file due to error opening "
- "new log file. %10d messages lost.\n",
- nMessCount);
- nWrite = strlen(errbuf);
- apr_file_trunc(nLogFD, 0);
- if (apr_file_write(nLogFD, errbuf, &nWrite) != APR_SUCCESS) {
- fprintf(stderr, "Error writing to the file %s\n", buf2);
- exit(2);
- }
- }
- }
- else if (nLogFDprev) {
- apr_file_close(nLogFDprev);
- }
- nMessCount = 0;
- }
- nWrite = nRead;
- apr_file_write(nLogFD, buf, &nWrite);
- if (nWrite != nRead) {
- nMessCount++;
- sprintf(errbuf,
- "Error writing to log file. "
- "%10d messages lost.\n",
- nMessCount);
- nWrite = strlen(errbuf);
- apr_file_trunc(nLogFD, 0);
- if (apr_file_write(nLogFD, errbuf, &nWrite) != APR_SUCCESS) {
- fprintf(stderr, "Error writing to the file %s\n", buf2);
- exit(2);
- }
- }
- else {
- nMessCount++;
- }
- }
- /* Of course we never, but prevent compiler warnings */
- return 0;
-}
diff --git a/rubbos/app/httpd-2.0.64/support/rotatelogs.dsp b/rubbos/app/httpd-2.0.64/support/rotatelogs.dsp
deleted file mode 100644
index 7b351121..00000000
--- a/rubbos/app/httpd-2.0.64/support/rotatelogs.dsp
+++ /dev/null
@@ -1,123 +0,0 @@
-# Microsoft Developer Studio Project File - Name="rotatelogs" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=rotatelogs - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "rotatelogs.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "rotatelogs.mak" CFG="rotatelogs - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "rotatelogs - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "rotatelogs - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "rotatelogs - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /FD /c
-# ADD CPP /nologo /MD /W3 /Zi /O2 /I "../srclib/apr/include" /I "../srclib/apr-util/include" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /Fd"Release/rotatelogs_src" /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib advapi32.lib wsock32.lib ws2_32.lib shell32.lib /nologo /subsystem:console
-# ADD LINK32 kernel32.lib advapi32.lib wsock32.lib ws2_32.lib shell32.lib /nologo /subsystem:console /debug /opt:ref
-
-!ELSEIF "$(CFG)" == "rotatelogs - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MDd /W3 /EHsc /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /FD /c
-# ADD CPP /nologo /MDd /W3 /EHsc /Zi /Od /I "../srclib/apr/include" /I "../srclib/apr-util/include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /Fd"Debug/rotatelogs_src" /FD /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib advapi32.lib wsock32.lib ws2_32.lib shell32.lib /nologo /subsystem:console /incremental:no /debug
-# ADD LINK32 kernel32.lib advapi32.lib wsock32.lib ws2_32.lib shell32.lib /nologo /subsystem:console /incremental:no /debug
-
-!ENDIF
-
-# Begin Target
-
-# Name "rotatelogs - Win32 Release"
-# Name "rotatelogs - Win32 Debug"
-# Begin Source File
-
-SOURCE=.\rotatelogs.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\rotatelogs.rc
-# End Source File
-# Begin Source File
-
-SOURCE=..\build\win32\win32ver.awk
-
-!IF "$(CFG)" == "rotatelogs - Win32 Release"
-
-# PROP Ignore_Default_Tool 1
-# Begin Custom Build - Creating Version Resource
-InputPath=..\build\win32\win32ver.awk
-
-".\rotatelogs.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- awk -f ../build/win32/win32ver.awk rotatelogs.exe "rotatelogs Utility" ../include/ap_release.h > .\rotatelogs.rc
-
-# End Custom Build
-
-!ELSEIF "$(CFG)" == "rotatelogs - Win32 Debug"
-
-# PROP Ignore_Default_Tool 1
-# Begin Custom Build - Creating Version Resource
-InputPath=..\build\win32\win32ver.awk
-
-".\rotatelogs.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- awk -f ../build/win32/win32ver.awk rotatelogs.exe "rotatelogs Utility" ../include/ap_release.h > .\rotatelogs.rc
-
-# End Custom Build
-
-!ENDIF
-
-# End Source File
-# End Target
-# End Project
diff --git a/rubbos/app/httpd-2.0.64/support/rotatelogs.lo b/rubbos/app/httpd-2.0.64/support/rotatelogs.lo
deleted file mode 100644
index de1f5ca6..00000000
--- a/rubbos/app/httpd-2.0.64/support/rotatelogs.lo
+++ /dev/null
@@ -1,12 +0,0 @@
-# rotatelogs.lo - a libtool object file
-# Generated by ltmain.sh - GNU libtool 1.5.26 (1.1220.2.493 2008/02/01 16:58:18)
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# Name of the PIC object.
-pic_object='.libs/rotatelogs.o'
-
-# Name of the non-PIC object.
-non_pic_object='rotatelogs.o'
-
diff --git a/rubbos/app/httpd-2.0.64/support/rotatelogs.o b/rubbos/app/httpd-2.0.64/support/rotatelogs.o
deleted file mode 100644
index 7ae2ef96..00000000
--- a/rubbos/app/httpd-2.0.64/support/rotatelogs.o
+++ /dev/null
Binary files differ
diff --git a/rubbos/app/httpd-2.0.64/support/split-logfile b/rubbos/app/httpd-2.0.64/support/split-logfile
deleted file mode 100644
index e67f1df4..00000000
--- a/rubbos/app/httpd-2.0.64/support/split-logfile
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/usr/bin/perl
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#
-# This script will take a combined Web server access
-# log file and break its contents into separate files.
-# It assumes that the first field of each line is the
-# virtual host identity (put there by "%v"), and that
-# the logfiles should be named that+".log" in the current
-# directory.
-#
-# The combined log file is read from stdin. Records read
-# will be appended to any existing log files.
-#
-%is_open = ();
-
-while ($log_line = <STDIN>) {
- #
- # Get the first token from the log record; it's the
- # identity of the virtual host to which the record
- # applies.
- #
- ($vhost) = split (/\s/, $log_line);
- #
- # Normalize the virtual host name to all lowercase.
- # If it's blank, the request was handled by the default
- # server, so supply a default name. This shouldn't
- # happen, but caution rocks.
- #
- $vhost = lc ($vhost) or "access";
- #
- # if the vhost contains a "/" or "\", it is illegal so just use
- # the default log to avoid any security issues due if it is interprted
- # as a directory separator.
- if ($vhost =~ m#[/\\]#) { $vhost = "access" }
- #
- # If the log file for this virtual host isn't opened
- # yet, do it now.
- #
- if (! $is_open{$vhost}) {
- open $vhost, ">>${vhost}.log"
- or die ("Can't open ${vhost}.log");
- $is_open{$vhost} = 1;
- }
- #
- # Strip off the first token (which may be null in the
- # case of the default server), and write the edited
- # record to the current log file.
- #
- $log_line =~ s/^\S*\s+//;
- printf $vhost "%s", $log_line;
-}
-exit 0;
diff --git a/rubbos/app/httpd-2.0.64/support/split-logfile.in b/rubbos/app/httpd-2.0.64/support/split-logfile.in
deleted file mode 100644
index 061162e8..00000000
--- a/rubbos/app/httpd-2.0.64/support/split-logfile.in
+++ /dev/null
@@ -1,67 +0,0 @@
-#!@perlbin@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#
-# This script will take a combined Web server access
-# log file and break its contents into separate files.
-# It assumes that the first field of each line is the
-# virtual host identity (put there by "%v"), and that
-# the logfiles should be named that+".log" in the current
-# directory.
-#
-# The combined log file is read from stdin. Records read
-# will be appended to any existing log files.
-#
-%is_open = ();
-
-while ($log_line = <STDIN>) {
- #
- # Get the first token from the log record; it's the
- # identity of the virtual host to which the record
- # applies.
- #
- ($vhost) = split (/\s/, $log_line);
- #
- # Normalize the virtual host name to all lowercase.
- # If it's blank, the request was handled by the default
- # server, so supply a default name. This shouldn't
- # happen, but caution rocks.
- #
- $vhost = lc ($vhost) or "access";
- #
- # if the vhost contains a "/" or "\", it is illegal so just use
- # the default log to avoid any security issues due if it is interprted
- # as a directory separator.
- if ($vhost =~ m#[/\\]#) { $vhost = "access" }
- #
- # If the log file for this virtual host isn't opened
- # yet, do it now.
- #
- if (! $is_open{$vhost}) {
- open $vhost, ">>${vhost}.log"
- or die ("Can't open ${vhost}.log");
- $is_open{$vhost} = 1;
- }
- #
- # Strip off the first token (which may be null in the
- # case of the default server), and write the edited
- # record to the current log file.
- #
- $log_line =~ s/^\S*\s+//;
- printf $vhost "%s", $log_line;
-}
-exit 0;
diff --git a/rubbos/app/httpd-2.0.64/support/suexec.c b/rubbos/app/httpd-2.0.64/support/suexec.c
deleted file mode 100644
index 06e55c4d..00000000
--- a/rubbos/app/httpd-2.0.64/support/suexec.c
+++ /dev/null
@@ -1,619 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * suexec.c -- "Wrapper" support program for suEXEC behaviour for Apache
- *
- ***********************************************************************
- *
- * NOTE! : DO NOT edit this code!!! Unless you know what you are doing,
- * editing this code might open up your system in unexpected
- * ways to would-be crackers. Every precaution has been taken
- * to make this code as safe as possible; alter it at your own
- * risk.
- *
- ***********************************************************************
- *
- *
- */
-
-#include "apr.h"
-#include "ap_config.h"
-#include "suexec.h"
-
-#include <sys/param.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <string.h>
-#include <time.h>
-#if APR_HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#include <stdio.h>
-#include <stdarg.h>
-#include <stdlib.h>
-
-#ifdef HAVE_PWD_H
-#include <pwd.h>
-#endif
-
-#ifdef HAVE_GRP_H
-#include <grp.h>
-#endif
-
-/*
- ***********************************************************************
- * There is no initgroups() in QNX, so I believe this is safe :-)
- * Use cc -osuexec -3 -O -mf -DQNX suexec.c to compile.
- *
- * May 17, 1997.
- * Igor N. Kovalenko -- infoh@mail.wplus.net
- ***********************************************************************
- */
-
-#if defined(NEED_INITGROUPS)
-int initgroups(const char *name, gid_t basegid)
-{
- /* QNX and MPE do not appear to support supplementary groups. */
- return 0;
-}
-#endif
-
-#if defined(SUNOS4)
-extern char *sys_errlist[];
-#define strerror(x) sys_errlist[(x)]
-#endif
-
-#if defined(PATH_MAX)
-#define AP_MAXPATH PATH_MAX
-#elif defined(MAXPATHLEN)
-#define AP_MAXPATH MAXPATHLEN
-#else
-#define AP_MAXPATH 8192
-#endif
-
-#define AP_ENVBUF 256
-
-extern char **environ;
-static FILE *log = NULL;
-
-char *safe_env_lst[] =
-{
- /* variable name starts with */
- "HTTP_",
- "SSL_",
-
- /* variable name is */
- "AUTH_TYPE=",
- "CONTENT_LENGTH=",
- "CONTENT_TYPE=",
- "DATE_GMT=",
- "DATE_LOCAL=",
- "DOCUMENT_NAME=",
- "DOCUMENT_PATH_INFO=",
- "DOCUMENT_ROOT=",
- "DOCUMENT_URI=",
- "FILEPATH_INFO=",
- "GATEWAY_INTERFACE=",
- "HTTPS=",
- "LAST_MODIFIED=",
- "PATH_INFO=",
- "PATH_TRANSLATED=",
- "QUERY_STRING=",
- "QUERY_STRING_UNESCAPED=",
- "REMOTE_ADDR=",
- "REMOTE_HOST=",
- "REMOTE_IDENT=",
- "REMOTE_PORT=",
- "REMOTE_USER=",
- "REDIRECT_QUERY_STRING=",
- "REDIRECT_REMOTE_USER=",
- "REDIRECT_STATUS=",
- "REDIRECT_URL=",
- "REQUEST_METHOD=",
- "REQUEST_URI=",
- "SCRIPT_FILENAME=",
- "SCRIPT_NAME=",
- "SCRIPT_URI=",
- "SCRIPT_URL=",
- "SERVER_ADMIN=",
- "SERVER_NAME=",
- "SERVER_ADDR=",
- "SERVER_PORT=",
- "SERVER_PROTOCOL=",
- "SERVER_SIGNATURE=",
- "SERVER_SOFTWARE=",
- "UNIQUE_ID=",
- "USER_NAME=",
- "TZ=",
- NULL
-};
-
-
-static void err_output(const char *fmt, va_list ap)
-{
-#ifdef AP_LOG_EXEC
- time_t timevar;
- struct tm *lt;
-
- if (!log) {
- if ((log = fopen(AP_LOG_EXEC, "a")) == NULL) {
- fprintf(stderr, "failed to open log file\n");
- perror("fopen");
- exit(1);
- }
- }
-
- time(&timevar);
- lt = localtime(&timevar);
-
- fprintf(log, "[%d-%.2d-%.2d %.2d:%.2d:%.2d]: ",
- lt->tm_year + 1900, lt->tm_mon + 1, lt->tm_mday,
- lt->tm_hour, lt->tm_min, lt->tm_sec);
-
- vfprintf(log, fmt, ap);
-
- fflush(log);
-#endif /* AP_LOG_EXEC */
- return;
-}
-
-static void log_err(const char *fmt,...)
-{
-#ifdef AP_LOG_EXEC
- va_list ap;
-
- va_start(ap, fmt);
- err_output(fmt, ap);
- va_end(ap);
-#endif /* AP_LOG_EXEC */
- return;
-}
-
-static void clean_env(void)
-{
- char pathbuf[512];
- char **cleanenv;
- char **ep;
- int cidx = 0;
- int idx;
-
- /* While cleaning the environment, the environment should be clean.
- * (e.g. malloc() may get the name of a file for writing debugging info.
- * Bad news if MALLOC_DEBUG_FILE is set to /etc/passwd. Sprintf() may be
- * susceptible to bad locale settings....)
- * (from PR 2790)
- */
- char **envp = environ;
- char *empty_ptr = NULL;
-
- environ = &empty_ptr; /* VERY safe environment */
-
- if ((cleanenv = (char **) calloc(AP_ENVBUF, sizeof(char *))) == NULL) {
- log_err("failed to malloc memory for environment\n");
- exit(120);
- }
-
- sprintf(pathbuf, "PATH=%s", AP_SAFE_PATH);
- cleanenv[cidx] = strdup(pathbuf);
- cidx++;
-
- for (ep = envp; *ep && cidx < AP_ENVBUF-1; ep++) {
- for (idx = 0; safe_env_lst[idx]; idx++) {
- if (!strncmp(*ep, safe_env_lst[idx],
- strlen(safe_env_lst[idx]))) {
- cleanenv[cidx] = *ep;
- cidx++;
- break;
- }
- }
- }
-
- cleanenv[cidx] = NULL;
-
- environ = cleanenv;
-}
-
-int main(int argc, char *argv[])
-{
- int userdir = 0; /* ~userdir flag */
- uid_t uid; /* user information */
- gid_t gid; /* target group placeholder */
- char *target_uname; /* target user name */
- char *target_gname; /* target group name */
- char *target_homedir; /* target home directory */
- char *actual_uname; /* actual user name */
- char *actual_gname; /* actual group name */
- char *prog; /* name of this program */
- char *cmd; /* command to be executed */
- char cwd[AP_MAXPATH]; /* current working directory */
- char dwd[AP_MAXPATH]; /* docroot working directory */
- struct passwd *pw; /* password entry holder */
- struct group *gr; /* group entry holder */
- struct stat dir_info; /* directory info holder */
- struct stat prg_info; /* program info holder */
-
- /*
- * Start with a "clean" environment
- */
- clean_env();
-
- prog = argv[0];
- /*
- * Check existence/validity of the UID of the user
- * running this program. Error out if invalid.
- */
- uid = getuid();
- if ((pw = getpwuid(uid)) == NULL) {
- log_err("crit: invalid uid: (%ld)\n", uid);
- exit(102);
- }
- /*
- * See if this is a 'how were you compiled' request, and
- * comply if so.
- */
- if ((argc > 1)
- && (! strcmp(argv[1], "-V"))
- && ((uid == 0)
-#ifdef _OSD_POSIX
- /* User name comparisons are case insensitive on BS2000/OSD */
- || (! strcasecmp(AP_HTTPD_USER, pw->pw_name)))
-#else /* _OSD_POSIX */
- || (! strcmp(AP_HTTPD_USER, pw->pw_name)))
-#endif /* _OSD_POSIX */
- ) {
-#ifdef AP_DOC_ROOT
- fprintf(stderr, " -D AP_DOC_ROOT=\"%s\"\n", AP_DOC_ROOT);
-#endif
-#ifdef AP_GID_MIN
- fprintf(stderr, " -D AP_GID_MIN=%d\n", AP_GID_MIN);
-#endif
-#ifdef AP_HTTPD_USER
- fprintf(stderr, " -D AP_HTTPD_USER=\"%s\"\n", AP_HTTPD_USER);
-#endif
-#ifdef AP_LOG_EXEC
- fprintf(stderr, " -D AP_LOG_EXEC=\"%s\"\n", AP_LOG_EXEC);
-#endif
-#ifdef AP_SAFE_PATH
- fprintf(stderr, " -D AP_SAFE_PATH=\"%s\"\n", AP_SAFE_PATH);
-#endif
-#ifdef AP_SUEXEC_UMASK
- fprintf(stderr, " -D AP_SUEXEC_UMASK=%03o\n", AP_SUEXEC_UMASK);
-#endif
-#ifdef AP_UID_MIN
- fprintf(stderr, " -D AP_UID_MIN=%d\n", AP_UID_MIN);
-#endif
-#ifdef AP_USERDIR_SUFFIX
- fprintf(stderr, " -D AP_USERDIR_SUFFIX=\"%s\"\n", AP_USERDIR_SUFFIX);
-#endif
- exit(0);
- }
- /*
- * If there are a proper number of arguments, set
- * all of them to variables. Otherwise, error out.
- */
- if (argc < 4) {
- log_err("too few arguments\n");
- exit(101);
- }
- target_uname = argv[1];
- target_gname = argv[2];
- cmd = argv[3];
-
- /*
- * Check to see if the user running this program
- * is the user allowed to do so as defined in
- * suexec.h. If not the allowed user, error out.
- */
-#ifdef _OSD_POSIX
- /* User name comparisons are case insensitive on BS2000/OSD */
- if (strcasecmp(AP_HTTPD_USER, pw->pw_name)) {
- log_err("user mismatch (%s instead of %s)\n", pw->pw_name, AP_HTTPD_USER);
- exit(103);
- }
-#else /*_OSD_POSIX*/
- if (strcmp(AP_HTTPD_USER, pw->pw_name)) {
- log_err("user mismatch (%s instead of %s)\n", pw->pw_name, AP_HTTPD_USER);
- exit(103);
- }
-#endif /*_OSD_POSIX*/
-
- /*
- * Check for a leading '/' (absolute path) in the command to be executed,
- * or attempts to back up out of the current directory,
- * to protect against attacks. If any are
- * found, error out. Naughty naughty crackers.
- */
- if ((cmd[0] == '/') || (!strncmp(cmd, "../", 3))
- || (strstr(cmd, "/../") != NULL)) {
- log_err("invalid command (%s)\n", cmd);
- exit(104);
- }
-
- /*
- * Check to see if this is a ~userdir request. If
- * so, set the flag, and remove the '~' from the
- * target username.
- */
- if (!strncmp("~", target_uname, 1)) {
- target_uname++;
- userdir = 1;
- }
-
- /*
- * Error out if the target username is invalid.
- */
- if (strspn(target_uname, "1234567890") != strlen(target_uname)) {
- if ((pw = getpwnam(target_uname)) == NULL) {
- log_err("invalid target user name: (%s)\n", target_uname);
- exit(105);
- }
- }
- else {
- if ((pw = getpwuid(atoi(target_uname))) == NULL) {
- log_err("invalid target user id: (%s)\n", target_uname);
- exit(121);
- }
- }
-
- /*
- * Error out if the target group name is invalid.
- */
- if (strspn(target_gname, "1234567890") != strlen(target_gname)) {
- if ((gr = getgrnam(target_gname)) == NULL) {
- log_err("invalid target group name: (%s)\n", target_gname);
- exit(106);
- }
- gid = gr->gr_gid;
- actual_gname = strdup(gr->gr_name);
- }
- else {
- gid = atoi(target_gname);
- actual_gname = strdup(target_gname);
- }
-
-#ifdef _OSD_POSIX
- /*
- * Initialize BS2000 user environment
- */
- {
- pid_t pid;
- int status;
-
- switch (pid = ufork(target_uname)) {
- case -1: /* Error */
- log_err("failed to setup bs2000 environment for user %s: %s\n",
- target_uname, strerror(errno));
- exit(150);
- case 0: /* Child */
- break;
- default: /* Father */
- while (pid != waitpid(pid, &status, 0))
- ;
- /* @@@ FIXME: should we deal with STOP signals as well? */
- if (WIFSIGNALED(status)) {
- kill (getpid(), WTERMSIG(status));
- }
- exit(WEXITSTATUS(status));
- }
- }
-#endif /*_OSD_POSIX*/
-
- /*
- * Save these for later since initgroups will hose the struct
- */
- uid = pw->pw_uid;
- actual_uname = strdup(pw->pw_name);
- target_homedir = strdup(pw->pw_dir);
-
- /*
- * Log the transaction here to be sure we have an open log
- * before we setuid().
- */
- log_err("uid: (%s/%s) gid: (%s/%s) cmd: %s\n",
- target_uname, actual_uname,
- target_gname, actual_gname,
- cmd);
-
- /*
- * Error out if attempt is made to execute as root or as
- * a UID less than AP_UID_MIN. Tsk tsk.
- */
- if ((uid == 0) || (uid < AP_UID_MIN)) {
- log_err("cannot run as forbidden uid (%d/%s)\n", uid, cmd);
- exit(107);
- }
-
- /*
- * Error out if attempt is made to execute as root group
- * or as a GID less than AP_GID_MIN. Tsk tsk.
- */
- if ((gid == 0) || (gid < AP_GID_MIN)) {
- log_err("cannot run as forbidden gid (%d/%s)\n", gid, cmd);
- exit(108);
- }
-
- /*
- * Change UID/GID here so that the following tests work over NFS.
- *
- * Initialize the group access list for the target user,
- * and setgid() to the target group. If unsuccessful, error out.
- */
- if (((setgid(gid)) != 0) || (initgroups(actual_uname, gid) != 0)) {
- log_err("failed to setgid (%ld: %s)\n", gid, cmd);
- exit(109);
- }
-
- /*
- * setuid() to the target user. Error out on fail.
- */
- if ((setuid(uid)) != 0) {
- log_err("failed to setuid (%ld: %s)\n", uid, cmd);
- exit(110);
- }
-
- /*
- * Get the current working directory, as well as the proper
- * document root (dependant upon whether or not it is a
- * ~userdir request). Error out if we cannot get either one,
- * or if the current working directory is not in the docroot.
- * Use chdir()s and getcwd()s to avoid problems with symlinked
- * directories. Yuck.
- */
- if (getcwd(cwd, AP_MAXPATH) == NULL) {
- log_err("cannot get current working directory\n");
- exit(111);
- }
-
- if (userdir) {
- if (((chdir(target_homedir)) != 0) ||
- ((chdir(AP_USERDIR_SUFFIX)) != 0) ||
- ((getcwd(dwd, AP_MAXPATH)) == NULL) ||
- ((chdir(cwd)) != 0)) {
- log_err("cannot get docroot information (%s)\n", target_homedir);
- exit(112);
- }
- }
- else {
- if (((chdir(AP_DOC_ROOT)) != 0) ||
- ((getcwd(dwd, AP_MAXPATH)) == NULL) ||
- ((chdir(cwd)) != 0)) {
- log_err("cannot get docroot information (%s)\n", AP_DOC_ROOT);
- exit(113);
- }
- }
-
- if ((strncmp(cwd, dwd, strlen(dwd))) != 0) {
- log_err("command not in docroot (%s/%s)\n", cwd, cmd);
- exit(114);
- }
-
- /*
- * Stat the cwd and verify it is a directory, or error out.
- */
- if (((lstat(cwd, &dir_info)) != 0) || !(S_ISDIR(dir_info.st_mode))) {
- log_err("cannot stat directory: (%s)\n", cwd);
- exit(115);
- }
-
- /*
- * Error out if cwd is writable by others.
- */
- if ((dir_info.st_mode & S_IWOTH) || (dir_info.st_mode & S_IWGRP)) {
- log_err("directory is writable by others: (%s)\n", cwd);
- exit(116);
- }
-
- /*
- * Error out if we cannot stat the program.
- */
- if (((lstat(cmd, &prg_info)) != 0) || (S_ISLNK(prg_info.st_mode))) {
- log_err("cannot stat program: (%s)\n", cmd);
- exit(117);
- }
-
- /*
- * Error out if the program is writable by others.
- */
- if ((prg_info.st_mode & S_IWOTH) || (prg_info.st_mode & S_IWGRP)) {
- log_err("file is writable by others: (%s/%s)\n", cwd, cmd);
- exit(118);
- }
-
- /*
- * Error out if the file is setuid or setgid.
- */
- if ((prg_info.st_mode & S_ISUID) || (prg_info.st_mode & S_ISGID)) {
- log_err("file is either setuid or setgid: (%s/%s)\n", cwd, cmd);
- exit(119);
- }
-
- /*
- * Error out if the target name/group is different from
- * the name/group of the cwd or the program.
- */
- if ((uid != dir_info.st_uid) ||
- (gid != dir_info.st_gid) ||
- (uid != prg_info.st_uid) ||
- (gid != prg_info.st_gid)) {
- log_err("target uid/gid (%ld/%ld) mismatch "
- "with directory (%ld/%ld) or program (%ld/%ld)\n",
- uid, gid,
- dir_info.st_uid, dir_info.st_gid,
- prg_info.st_uid, prg_info.st_gid);
- exit(120);
- }
- /*
- * Error out if the program is not executable for the user.
- * Otherwise, she won't find any error in the logs except for
- * "[error] Premature end of script headers: ..."
- */
- if (!(prg_info.st_mode & S_IXUSR)) {
- log_err("file has no execute permission: (%s/%s)\n", cwd, cmd);
- exit(121);
- }
-
-#ifdef AP_SUEXEC_UMASK
- /*
- * umask() uses inverse logic; bits are CLEAR for allowed access.
- */
- if ((~AP_SUEXEC_UMASK) & 0022) {
- log_err("notice: AP_SUEXEC_UMASK of %03o allows "
- "write permission to group and/or other\n", AP_SUEXEC_UMASK);
- }
- umask(AP_SUEXEC_UMASK);
-#endif /* AP_SUEXEC_UMASK */
-
- /*
- * Be sure to close the log file so the CGI can't
- * mess with it. If the exec fails, it will be reopened
- * automatically when log_err is called. Note that the log
- * might not actually be open if AP_LOG_EXEC isn't defined.
- * However, the "log" cell isn't ifdef'd so let's be defensive
- * and assume someone might have done something with it
- * outside an ifdef'd AP_LOG_EXEC block.
- */
- if (log != NULL) {
- fclose(log);
- log = NULL;
- }
-
- /*
- * Execute the command, replacing our image with its own.
- */
-#ifdef NEED_HASHBANG_EMUL
- /* We need the #! emulation when we want to execute scripts */
- {
- extern char **environ;
-
- ap_execve(cmd, &argv[3], environ);
- }
-#else /*NEED_HASHBANG_EMUL*/
- execv(cmd, &argv[3]);
-#endif /*NEED_HASHBANG_EMUL*/
-
- /*
- * (I can't help myself...sorry.)
- *
- * Uh oh. Still here. Where's the kaboom? There was supposed to be an
- * EARTH-shattering kaboom!
- *
- * Oh well, log the failure and error out.
- */
- log_err("(%d)%s: exec failed (%s)\n", errno, strerror(errno), cmd);
- exit(255);
-}
diff --git a/rubbos/app/httpd-2.0.64/support/suexec.h b/rubbos/app/httpd-2.0.64/support/suexec.h
deleted file mode 100644
index 8c350b8e..00000000
--- a/rubbos/app/httpd-2.0.64/support/suexec.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * suexec.h -- user-definable variables for the suexec wrapper code.
- * (See README.configure on how to customize these variables.)
- */
-
-
-#ifndef _SUEXEC_H
-#define _SUEXEC_H
-
-/*
- * Include ap_config_layout so we can work out where the default htdocsdir
- * and logsdir are.
- */
-#include "ap_config_layout.h"
-
-/*
- * HTTPD_USER -- Define as the username under which Apache normally
- * runs. This is the only user allowed to execute
- * this program.
- */
-#ifndef AP_HTTPD_USER
-#define AP_HTTPD_USER "www"
-#endif
-
-/*
- * UID_MIN -- Define this as the lowest UID allowed to be a target user
- * for suEXEC. For most systems, 500 or 100 is common.
- */
-#ifndef AP_UID_MIN
-#define AP_UID_MIN 100
-#endif
-
-/*
- * GID_MIN -- Define this as the lowest GID allowed to be a target group
- * for suEXEC. For most systems, 100 is common.
- */
-#ifndef AP_GID_MIN
-#define AP_GID_MIN 100
-#endif
-
-/*
- * USERDIR_SUFFIX -- Define to be the subdirectory under users'
- * home directories where suEXEC access should
- * be allowed. All executables under this directory
- * will be executable by suEXEC as the user so
- * they should be "safe" programs. If you are
- * using a "simple" UserDir directive (ie. one
- * without a "*" in it) this should be set to
- * the same value. suEXEC will not work properly
- * in cases where the UserDir directive points to
- * a location that is not the same as the user's
- * home directory as referenced in the passwd file.
- *
- * If you have VirtualHosts with a different
- * UserDir for each, you will need to define them to
- * all reside in one parent directory; then name that
- * parent directory here. IF THIS IS NOT DEFINED
- * PROPERLY, ~USERDIR CGI REQUESTS WILL NOT WORK!
- * See the suEXEC documentation for more detailed
- * information.
- */
-#ifndef AP_USERDIR_SUFFIX
-#define AP_USERDIR_SUFFIX "public_html"
-#endif
-
-/*
- * LOG_EXEC -- Define this as a filename if you want all suEXEC
- * transactions and errors logged for auditing and
- * debugging purposes.
- */
-#ifndef AP_LOG_EXEC
-#define AP_LOG_EXEC DEFAULT_EXP_LOGFILEDIR "/suexec_log" /* Need me? */
-#endif
-
-/*
- * DOC_ROOT -- Define as the DocumentRoot set for Apache. This
- * will be the only hierarchy (aside from UserDirs)
- * that can be used for suEXEC behavior.
- */
-#ifndef AP_DOC_ROOT
-#define AP_DOC_ROOT DEFAULT_EXP_HTDOCSDIR
-#endif
-
-/*
- * SAFE_PATH -- Define a safe PATH environment to pass to CGI executables.
- *
- */
-#ifndef AP_SAFE_PATH
-#define AP_SAFE_PATH "/usr/local/bin:/usr/bin:/bin"
-#endif
-
-#endif /* _SUEXEC_H */
diff --git a/rubbos/app/httpd-2.0.64/support/utilitiesnw.def b/rubbos/app/httpd-2.0.64/support/utilitiesnw.def
deleted file mode 100644
index 426b8c96..00000000
--- a/rubbos/app/httpd-2.0.64/support/utilitiesnw.def
+++ /dev/null
@@ -1,3 +0,0 @@
-MODULE APRLIB.NLM
-MODULE LIBC.NLM
-
diff --git a/rubbos/app/httpd-2.0.64/support/win32/ApacheMonitor.c b/rubbos/app/httpd-2.0.64/support/win32/ApacheMonitor.c
deleted file mode 100644
index 6d97fb7b..00000000
--- a/rubbos/app/httpd-2.0.64/support/win32/ApacheMonitor.c
+++ /dev/null
@@ -1,1945 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/* ====================================================================
- * ApacheMonitor.c Simple program to manage and monitor Apache services.
- *
- * Contributed by Mladen Turk <mturk mappingsoft.com>
- *
- * 05 Aug 2001
- * ====================================================================
- */
-
-#define _WIN32_WINNT 0x0500
-#ifndef STRICT
-#define STRICT
-#endif
-#ifndef OEMRESOURCE
-#define OEMRESOURCE
-#endif
-
-#if defined(_MSC_VER) && _MSC_VER >= 1400
-#define _CRT_SECURE_NO_DEPRECATE
-#endif
-
-#include <windows.h>
-#include <windowsx.h>
-#include <commctrl.h>
-#include <objbase.h>
-#include <shlobj.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <WtsApi32.h>
-#include <tchar.h>
-#include "ApacheMonitor.h"
-
-#ifndef AM_STRINGIFY
-/** Properly quote a value as a string in the C preprocessor */
-#define AM_STRINGIFY(n) AM_STRINGIFY_HELPER(n)
-/** Helper macro for AM_STRINGIFY */
-#define AM_STRINGIFY_HELPER(n) #n
-#endif
-
-#define OS_VERSION_WIN9X 1
-#define OS_VERSION_WINNT 2
-#define OS_VERSION_WIN2K 3
-
-/* Should be enough */
-#define MAX_APACHE_SERVICES 128
-#define MAX_APACHE_COMPUTERS 32
-
-#define WM_TRAYMESSAGE (WM_APP+1)
-#define WM_UPDATEMESSAGE (WM_USER+1)
-#define WM_MANAGEMESSAGE (WM_USER+2)
-#define WM_TIMER_REFRESH 10
-#define WM_TIMER_RESCAN 11
-#define SERVICE_APACHE_RESTART 128
-#define XBITMAP 16
-#define YBITMAP 16
-#define MAX_LOADSTRING 100
-#define REFRESH_TIME 2000 /* service refresh time (ms) */
-#define RESCAN_TIME 20000 /* registry rescan time (ms) */
-
-typedef struct _st_APACHE_SERVICE
-{
- LPTSTR szServiceName;
- LPTSTR szDisplayName;
- LPTSTR szDescription;
- LPTSTR szImagePath;
- LPTSTR szComputerName;
- DWORD dwPid;
-} ST_APACHE_SERVICE;
-
-typedef struct _st_MONITORED_COMPUTERS
-{
- LPTSTR szComputerName;
- HKEY hRegistry;
-} ST_MONITORED_COMP;
-
-/* Global variables */
-HINSTANCE g_hInstance = NULL;
-TCHAR *g_szTitle; /* The title bar text */
-TCHAR *g_szWindowClass; /* Window Class Name */
-HICON g_icoStop;
-HICON g_icoRun;
-UINT g_bUiTaskbarCreated;
-DWORD g_dwOSVersion;
-BOOL g_bDlgServiceOn = FALSE;
-BOOL g_bConsoleRun = FALSE;
-ST_APACHE_SERVICE g_stServices[MAX_APACHE_SERVICES];
-ST_MONITORED_COMP g_stComputers[MAX_APACHE_COMPUTERS];
-
-HBITMAP g_hBmpStart, g_hBmpStop;
-HBITMAP g_hBmpPicture, g_hBmpOld;
-BOOL g_bRescanServices;
-HWND g_hwndServiceDlg;
-HWND g_hwndMain;
-HWND g_hwndStdoutList;
-HWND g_hwndConnectDlg;
-HCURSOR g_hCursorHourglass;
-HCURSOR g_hCursorArrow;
-
-HANDLE g_hpipeOutRead;
-HANDLE g_hpipeOutWrite;
-HANDLE g_hpipeInRead;
-HANDLE g_hpipeInWrite;
-HANDLE g_hpipeStdError;
-LANGID g_LangID;
-PROCESS_INFORMATION g_lpRedirectProc;
-CRITICAL_SECTION g_stcSection;
-LPTSTR g_szLocalHost;
-
-/* locale language support */
-static TCHAR *g_lpMsg[IDS_MSG_LAST - IDS_MSG_FIRST + 1];
-
-
-void am_ClearServicesSt()
-{
- int i;
- for (i = 0; i < MAX_APACHE_SERVICES; i++)
- {
- if (g_stServices[i].szServiceName) {
- free(g_stServices[i].szServiceName);
- }
- if (g_stServices[i].szDisplayName) {
- free(g_stServices[i].szDisplayName);
- }
- if (g_stServices[i].szDescription) {
- free(g_stServices[i].szDescription);
- }
- if (g_stServices[i].szImagePath) {
- free(g_stServices[i].szImagePath);
- }
- if (g_stServices[i].szComputerName) {
- free(g_stServices[i].szComputerName);
- }
-
- }
- memset(g_stServices, 0, sizeof(ST_APACHE_SERVICE) * MAX_APACHE_SERVICES);
-
-}
-
-
-void am_ClearComputersSt()
-{
- int i;
- for (i = 0; i < MAX_APACHE_COMPUTERS; i++) {
- if (g_stComputers[i].szComputerName) {
- free(g_stComputers[i].szComputerName);
- RegCloseKey(g_stComputers[i].hRegistry);
- }
- }
- memset(g_stComputers, 0, sizeof(ST_MONITORED_COMP) * MAX_APACHE_COMPUTERS);
-
-}
-
-
-BOOL am_IsComputerConnected(LPTSTR szComputerName)
-{
- int i = 0;
- while (g_stComputers[i].szComputerName != NULL) {
- if (_tcscmp(g_stComputers[i].szComputerName, szComputerName) == 0) {
- return TRUE;
- }
- ++i;
- }
- return FALSE;
-}
-
-
-void am_DisconnectComputer(LPTSTR szComputerName)
-{
- int i = 0, j;
- while (g_stComputers[i].szComputerName != NULL) {
- if (_tcscmp(g_stComputers[i].szComputerName, szComputerName) == 0) {
- break;
- }
- ++i;
- }
- if (g_stComputers[i].szComputerName != NULL) {
- free(g_stComputers[i].szComputerName);
- RegCloseKey(g_stComputers[i].hRegistry);
- for (j = i; j < MAX_APACHE_COMPUTERS - 1; j++) {
- g_stComputers[j].szComputerName= g_stComputers[j+1].szComputerName;
- g_stComputers[j].hRegistry = g_stComputers[j+1].hRegistry;
- }
- g_stComputers[j].szComputerName = NULL;
- g_stComputers[j].hRegistry = NULL;
- }
-}
-
-
-void ErrorMessage(LPCTSTR szError, BOOL bFatal)
-{
- LPVOID lpMsgBuf = NULL;
- if (szError) {
- MessageBox(NULL, szError, g_lpMsg[IDS_MSG_ERROR - IDS_MSG_FIRST],
- MB_OK | (bFatal ? MB_ICONERROR : MB_ICONEXCLAMATION));
- }
- else {
- FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
- FORMAT_MESSAGE_FROM_SYSTEM |
- FORMAT_MESSAGE_IGNORE_INSERTS,
- NULL, GetLastError(), g_LangID,
- (LPTSTR) &lpMsgBuf, 0, NULL);
- MessageBox(NULL, (LPCTSTR)lpMsgBuf,
- g_lpMsg[IDS_MSG_ERROR - IDS_MSG_FIRST],
- MB_OK | (bFatal ? MB_ICONERROR : MB_ICONEXCLAMATION));
- LocalFree(lpMsgBuf);
- }
- if (bFatal) {
- PostQuitMessage(0);
- }
-}
-
-
-int am_RespawnAsUserAdmin(HWND hwnd, DWORD op, LPCTSTR szService,
- LPCTSTR szComputerName)
-{
- TCHAR args[MAX_PATH + MAX_COMPUTERNAME_LENGTH + 12];
-
- if (g_dwOSVersion < OS_VERSION_WIN2K) {
- ErrorMessage(g_lpMsg[IDS_MSG_SRVFAILED - IDS_MSG_FIRST], FALSE);
- return 0;
- }
-
- _sntprintf(args, sizeof(args) / sizeof(TCHAR),
- _T("%d \"%s\" \"%s\""), op, szService,
- szComputerName ? szComputerName : _T(""));
- if (!ShellExecute(hwnd, _T("runas"), __targv[0], args, NULL, SW_NORMAL)) {
- ErrorMessage(g_lpMsg[IDS_MSG_SRVFAILED - IDS_MSG_FIRST],
- FALSE);
- return 0;
- }
-
- return 1;
-}
-
-
-BOOL am_ConnectComputer(LPTSTR szComputerName)
-{
- int i = 0;
- HKEY hKeyRemote;
- TCHAR szTmp[MAX_PATH];
-
- while (g_stComputers[i].szComputerName != NULL) {
- if (_tcscmp(g_stComputers[i].szComputerName, szComputerName) == 0) {
- return FALSE;
- }
- ++i;
- }
- if (i > MAX_APACHE_COMPUTERS - 1) {
- return FALSE;
- }
- if (RegConnectRegistry(szComputerName, HKEY_LOCAL_MACHINE, &hKeyRemote)
- != ERROR_SUCCESS) {
- _sntprintf(szTmp, sizeof(szTmp) / sizeof(TCHAR),
- g_lpMsg[IDS_MSG_ECONNECT - IDS_MSG_FIRST],
- szComputerName);
- ErrorMessage(szTmp, FALSE);
- return FALSE;
- }
- else {
- g_stComputers[i].szComputerName = _tcsdup(szComputerName);
- g_stComputers[i].hRegistry = hKeyRemote;
- return TRUE;
- }
-}
-
-
-LPTSTR GetStringRes(int id)
-{
- static TCHAR buffer[MAX_PATH];
-
- buffer[0] = 0;
- LoadString(GetModuleHandle(NULL), id, buffer, MAX_PATH);
- return buffer;
-}
-
-
-BOOL GetSystemOSVersion(LPDWORD dwVersion)
-{
- OSVERSIONINFO osvi;
- /*
- Try calling GetVersionEx using the OSVERSIONINFOEX structure.
- If that fails, try using the OSVERSIONINFO structure.
- */
- memset(&osvi, 0, sizeof(OSVERSIONINFO));
- osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
-
- if (!GetVersionEx(&osvi)) {
- return FALSE;
- }
-
- switch (osvi.dwPlatformId)
- {
- case VER_PLATFORM_WIN32_NT:
- if (osvi.dwMajorVersion >= 5)
- *dwVersion = OS_VERSION_WIN2K;
- else
- *dwVersion = OS_VERSION_WINNT;
- break;
-
- case VER_PLATFORM_WIN32_WINDOWS:
- *dwVersion = OS_VERSION_WIN9X;
- break;
-
- case VER_PLATFORM_WIN32s:
- default:
- *dwVersion = 0;
- return FALSE;
- }
- return TRUE;
-}
-
-
-static VOID ShowNotifyIcon(HWND hWnd, DWORD dwMessage)
-{
- NOTIFYICONDATA nid;
- int i = 0, n = 0;
-
- memset(&nid, 0, sizeof(nid));
- nid.cbSize = sizeof(NOTIFYICONDATA);
- nid.hWnd = hWnd;
- nid.uID = 0xFF;
- nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
- nid.uCallbackMessage = WM_TRAYMESSAGE;
-
- while (g_stServices[i].szServiceName != NULL)
- {
- if (g_stServices[i].dwPid != 0) {
- ++n;
- }
- ++i;
- }
- if (dwMessage != NIM_DELETE)
- {
- if (n) {
- nid.hIcon = g_icoRun;
- }
- else {
- nid.hIcon = g_icoStop;
- }
- }
- else {
- nid.hIcon = NULL;
- }
- if (n == i && n > 0) {
- _tcscpy(nid.szTip, g_lpMsg[IDS_MSG_RUNNINGALL - IDS_MSG_FIRST]);
- }
- else if (n) {
- _sntprintf(nid.szTip, sizeof(nid.szTip) / sizeof(TCHAR),
- g_lpMsg[IDS_MSG_RUNNING - IDS_MSG_FIRST], n, i);
- }
- else if (i) {
- _sntprintf(nid.szTip, sizeof(nid.szTip) / sizeof(TCHAR),
- g_lpMsg[IDS_MSG_RUNNINGNONE - IDS_MSG_FIRST], i);
- }
- else {
- _tcscpy(nid.szTip, g_lpMsg[IDS_MSG_NOSERVICES - IDS_MSG_FIRST]);
- }
- Shell_NotifyIcon(dwMessage, &nid);
-}
-
-
-void appendMenuItem(HMENU hMenu, UINT uMenuId, LPTSTR szName,
- BOOL fDefault, BOOL fEnabled)
-{
- MENUITEMINFO mii;
-
- memset(&mii, 0, sizeof(MENUITEMINFO));
- mii.cbSize = sizeof(MENUITEMINFO);
- mii.fMask = MIIM_ID | MIIM_TYPE | MIIM_STATE;
- if (_tcslen(szName))
- {
- mii.fType = MFT_STRING;
- mii.wID = uMenuId;
- if (fDefault) {
- mii.fState = MFS_DEFAULT;
- }
- if (!fEnabled) {
- mii.fState |= MFS_DISABLED;
- }
- mii.dwTypeData = szName;
- }
- else {
- mii.fType = MFT_SEPARATOR;
- }
- InsertMenuItem(hMenu, uMenuId, FALSE, &mii);
-}
-
-
-void appendServiceMenu(HMENU hMenu, UINT uMenuId,
- LPTSTR szServiceName, BOOL fRunning)
-{
- MENUITEMINFO mii;
- HMENU smh;
-
- smh = CreatePopupMenu();
-
- appendMenuItem(smh, IDM_SM_START + uMenuId,
- g_lpMsg[IDS_MSG_SSTART - IDS_MSG_FIRST], FALSE, !fRunning);
- appendMenuItem(smh, IDM_SM_STOP + uMenuId,
- g_lpMsg[IDS_MSG_SSTOP - IDS_MSG_FIRST], FALSE, fRunning);
- appendMenuItem(smh, IDM_SM_RESTART + uMenuId,
- g_lpMsg[IDS_MSG_SRESTART - IDS_MSG_FIRST], FALSE, fRunning);
-
- memset(&mii, 0, sizeof(MENUITEMINFO));
- mii.cbSize = sizeof(MENUITEMINFO);
- mii.fMask = MIIM_ID | MIIM_TYPE | MIIM_STATE | MIIM_SUBMENU
- | MIIM_CHECKMARKS;
- mii.fType = MFT_STRING;
- mii.wID = uMenuId;
- mii.hbmpChecked = g_hBmpStart;
- mii.hbmpUnchecked = g_hBmpStop;
- mii.dwTypeData = szServiceName;
- mii.hSubMenu = smh;
- mii.fState = fRunning ? MFS_CHECKED : MFS_UNCHECKED;
- InsertMenuItem(hMenu, IDM_SM_SERVICE + uMenuId, FALSE, &mii);
-}
-
-
-void ShowTryPopupMenu(HWND hWnd)
-{
- /* create popup menu */
- HMENU hMenu = CreatePopupMenu();
- POINT pt;
-
- if (hMenu)
- {
- appendMenuItem(hMenu, IDM_RESTORE,
- g_lpMsg[IDS_MSG_MNUSHOW - IDS_MSG_FIRST],
- TRUE, TRUE);
- if (g_dwOSVersion >= OS_VERSION_WINNT) {
- appendMenuItem(hMenu, IDC_SMANAGER,
- g_lpMsg[IDS_MSG_MNUSERVICES - IDS_MSG_FIRST],
- FALSE, TRUE);
- }
- appendMenuItem(hMenu, 0, _T(""), FALSE, TRUE);
- appendMenuItem(hMenu, IDM_EXIT,
- g_lpMsg[IDS_MSG_MNUEXIT - IDS_MSG_FIRST],
- FALSE, TRUE);
-
- if (!SetForegroundWindow(hWnd)) {
- SetForegroundWindow(NULL);
- }
- GetCursorPos(&pt);
- TrackPopupMenu(hMenu, TPM_LEFTALIGN|TPM_RIGHTBUTTON,
- pt.x, pt.y, 0, hWnd, NULL);
- DestroyMenu(hMenu);
- }
-}
-
-
-void ShowTryServicesMenu(HWND hWnd)
-{
- /* create services list popup menu and submenus */
- HMENU hMenu = CreatePopupMenu();
- POINT pt;
- int i = 0;
-
- if (hMenu)
- {
- while (g_stServices[i].szServiceName != NULL)
- {
- appendServiceMenu(hMenu, i, g_stServices[i].szDisplayName,
- g_stServices[i].dwPid != 0);
- ++i;
- }
- if (i)
- {
- if (!SetForegroundWindow(hWnd)) {
- SetForegroundWindow(NULL);
- }
- GetCursorPos(&pt);
- TrackPopupMenu(hMenu, TPM_LEFTALIGN|TPM_RIGHTBUTTON,
- pt.x, pt.y, 0, hWnd, NULL);
- DestroyMenu(hMenu);
- }
- }
-}
-
-
-BOOL CenterWindow(HWND hwndChild)
-{
- RECT rChild, rWorkArea;
- int wChild, hChild;
- int xNew, yNew;
- BOOL bResult;
-
- /* Get the Height and Width of the child window */
- GetWindowRect(hwndChild, &rChild);
- wChild = rChild.right - rChild.left;
- hChild = rChild.bottom - rChild.top;
-
- /* Get the limits of the 'workarea' */
- bResult = SystemParametersInfo(SPI_GETWORKAREA, sizeof(RECT),
- &rWorkArea, 0);
- if (!bResult) {
- rWorkArea.left = rWorkArea.top = 0;
- rWorkArea.right = GetSystemMetrics(SM_CXSCREEN);
- rWorkArea.bottom = GetSystemMetrics(SM_CYSCREEN);
- }
-
- /* Calculate new X and Y position*/
- xNew = (rWorkArea.right - wChild) / 2;
- yNew = (rWorkArea.bottom - hChild) / 2;
- return SetWindowPos(hwndChild, HWND_TOP, xNew, yNew, 0, 0,
- SWP_NOSIZE | SWP_SHOWWINDOW);
-}
-
-
-static void addListBoxItem(HWND hDlg, LPTSTR lpStr, HBITMAP hBmp)
-{
- LRESULT nItem;
-
- nItem = SendMessage(hDlg, LB_ADDSTRING, 0, (LPARAM)lpStr);
- SendMessage(hDlg, LB_SETITEMDATA, nItem, (LPARAM)hBmp);
-}
-
-
-static void addListBoxString(HWND hListBox, LPTSTR lpStr)
-{
- static int nItems = 0;
- if (!g_bDlgServiceOn) {
- return;
- }
- ++nItems;
- if (nItems > MAX_LOADSTRING)
- {
- SendMessage(hListBox, LB_RESETCONTENT, 0, 0);
- nItems = 1;
- }
- ListBox_SetCurSel(hListBox,
- ListBox_AddString(hListBox, lpStr));
-
-}
-
-
-#ifndef UNICODE
-#define addListBoxStringA addListBoxString
-#else
-static void addListBoxStringA(HWND hListBox, LPSTR lpStr)
-{
- static int nItems = 0;
- TCHAR WStr[16384];
-
- if (!g_bDlgServiceOn) {
- return;
- }
- if (!MultiByteToWideChar(CP_ACP, 0, lpStr, (int)strlen(lpStr) + 1,
- WStr, (int) (sizeof(WStr) / sizeof(TCHAR))))
- return;
- ++nItems;
- if (nItems > MAX_LOADSTRING)
- {
- SendMessage(hListBox, LB_RESETCONTENT, 0, 0);
- nItems = 1;
- }
- ListBox_SetCurSel(hListBox,
- ListBox_AddString(hListBox, WStr));
-}
-#endif
-
-
-static DWORD WINAPI ConsoleOutputThread(LPVOID lpThreadParameter)
-{
- static BYTE lpBuffer[MAX_PATH+1];
- int nPtr = 0;
- BYTE ch;
- DWORD dwReaded;
-
- while (ReadFile(g_hpipeOutRead, &ch, 1, &dwReaded, NULL) == TRUE)
- {
- if (dwReaded > 0)
- {
- if (ch == '\n' || nPtr >= MAX_PATH)
- {
- lpBuffer[nPtr] = '\0';
- addListBoxStringA(g_hwndStdoutList, lpBuffer);
- nPtr = 0;
- }
- else if (ch == '\t' && nPtr < (MAX_PATH - 4))
- {
- int i;
- for (i = 0; i < 4; ++i) {
- lpBuffer[nPtr++] = ' ';
- }
- }
- else if (ch != '\r') {
- lpBuffer[nPtr++] = ch;
- }
- }
- }
- CloseHandle(g_hpipeInWrite);
- CloseHandle(g_hpipeOutRead);
- CloseHandle(g_hpipeStdError);
- return 0;
-}
-
-
-DWORD WINAPI ConsoleWaitingThread(LPVOID lpThreadParameter)
-{
- WaitForSingleObject(g_lpRedirectProc.hThread, INFINITE);
- CloseHandle(g_lpRedirectProc.hThread);
- MessageBeep(100);
- g_bConsoleRun = FALSE;
- SetCursor(g_hCursorArrow);
- return 0;
-}
-
-
-BOOL RunRedirectedConsole(LPTSTR szCmdLine)
-{
- DWORD dwThreadId;
- HANDLE hProc;
- STARTUPINFO stInfo;
- BOOL bResult;
-
- memset(&stInfo, 0, sizeof(stInfo));
- stInfo.cb = sizeof(stInfo);
- stInfo.dwFlags = STARTF_USESTDHANDLES|STARTF_USESHOWWINDOW;
- stInfo.wShowWindow = SW_HIDE;
-
- hProc = GetCurrentProcess();
-
- if (!CreatePipe(&g_hpipeInRead, &g_hpipeInWrite, NULL, MAX_PATH)) {
- ErrorMessage(NULL, TRUE);
- }
- if (!CreatePipe(&g_hpipeOutRead, &g_hpipeOutWrite, NULL, MAX_PATH*8)) {
- ErrorMessage(NULL, TRUE);
- }
- DuplicateHandle(hProc, g_hpipeInRead, hProc, &g_hpipeInRead, 0, TRUE,
- DUPLICATE_CLOSE_SOURCE|DUPLICATE_SAME_ACCESS);
- DuplicateHandle(hProc, g_hpipeOutWrite, hProc, &g_hpipeOutWrite, 0, TRUE,
- DUPLICATE_CLOSE_SOURCE|DUPLICATE_SAME_ACCESS);
- DuplicateHandle(hProc, g_hpipeOutWrite, hProc, &g_hpipeStdError, 0, TRUE,
- DUPLICATE_SAME_ACCESS);
- if (!g_hpipeInRead && !g_hpipeOutWrite && !g_hpipeStdError) {
- ErrorMessage(NULL, TRUE);
- }
- stInfo.hStdInput = g_hpipeInRead;
- stInfo.hStdOutput = g_hpipeOutWrite;
- stInfo.hStdError = g_hpipeStdError;
-
- bResult = CreateProcess(NULL,
- szCmdLine,
- NULL,
- NULL,
- TRUE,
- CREATE_SUSPENDED,
- NULL,
- NULL,
- &stInfo,
- &g_lpRedirectProc);
-
-
- CloseHandle(g_hpipeInRead);
- CloseHandle(g_hpipeOutWrite);
- CloseHandle(g_hpipeStdError);
-
- if (!bResult)
- {
- CloseHandle(g_hpipeInWrite);
- CloseHandle(g_hpipeOutRead);
- CloseHandle(g_hpipeStdError);
- return FALSE;
- }
-
- CloseHandle(CreateThread(NULL, 0, ConsoleOutputThread,
- 0, 0, &dwThreadId));
- ResumeThread(g_lpRedirectProc.hThread);
- CloseHandle(CreateThread(NULL, 0, ConsoleWaitingThread,
- 0, 0, &dwThreadId));
-
- return TRUE;
-}
-
-
-BOOL RunAndForgetConsole(LPTSTR szCmdLine, BOOL bRedirectConsole)
-{
- STARTUPINFO stInfo;
- PROCESS_INFORMATION prInfo;
- BOOL bResult;
-
- if (bRedirectConsole) {
- return RunRedirectedConsole(szCmdLine);
- }
-
- memset(&stInfo, 0, sizeof(stInfo));
- stInfo.cb = sizeof(stInfo);
- stInfo.dwFlags = STARTF_USESHOWWINDOW;
- stInfo.wShowWindow = SW_HIDE;
-
- bResult = CreateProcess(NULL,
- szCmdLine,
- NULL,
- NULL,
- TRUE,
- CREATE_NEW_CONSOLE,
- NULL,
- NULL,
- &stInfo,
- &prInfo);
-
- if (!bResult) {
- return FALSE;
- }
- if (g_dwOSVersion == OS_VERSION_WIN9X) {
- /* give some time to rescan the status */
- Sleep(2000);
- }
- CloseHandle(prInfo.hThread);
- CloseHandle(prInfo.hProcess);
- return TRUE;
-}
-
-
-BOOL ApacheManageService(LPCTSTR szServiceName, LPCTSTR szImagePath,
- LPTSTR szComputerName, DWORD dwCommand)
-{
- TCHAR szBuf[MAX_PATH];
- TCHAR szMsg[MAX_PATH];
- LPTSTR sPos;
- BOOL retValue;
- BOOL serviceFlag = TRUE;
- SC_HANDLE schService;
- SC_HANDLE schSCManager;
- SERVICE_STATUS schSStatus;
- int ticks;
-
- if (g_dwOSVersion == OS_VERSION_WIN9X)
- {
- sPos = _tcsstr(szImagePath, _T("-k start"));
- if (sPos)
- {
- _tcsncpy(szBuf, szImagePath, (int)(sPos - szImagePath));
- switch (dwCommand)
- {
- case SERVICE_CONTROL_STOP:
- _tcscat(szBuf, _T(" -k shutdown -n "));
- break;
-
- case SERVICE_CONTROL_CONTINUE:
- _sntprintf(szMsg, sizeof(szMsg) / sizeof(TCHAR),
- g_lpMsg[IDS_MSG_SRVSTART - IDS_MSG_FIRST],
- szServiceName);
- addListBoxString(g_hwndStdoutList, szMsg);
- _tcscat(szBuf, _T(" -k start -n "));
- serviceFlag = FALSE;
- break;
-
- case SERVICE_APACHE_RESTART:
- _tcscat(szBuf, _T(" -k restart -n "));
- break;
-
- default:
- return FALSE;
- }
- _tcscat(szBuf, szServiceName);
- }
- else {
- return FALSE;
- }
- g_bConsoleRun = TRUE;
- SetCursor(g_hCursorHourglass);
- if (!RunAndForgetConsole(szBuf, serviceFlag))
- {
- ErrorMessage(NULL, FALSE);
- g_bConsoleRun = FALSE;
- SetCursor(g_hCursorArrow);
- return FALSE;
- }
- else if (!serviceFlag)
- {
- _sntprintf(szMsg, sizeof(szMsg) / sizeof(TCHAR),
- g_lpMsg[IDS_MSG_SRVSTARTED - IDS_MSG_FIRST],
- szServiceName);
- addListBoxString(g_hwndStdoutList, szMsg);
- g_bConsoleRun = FALSE;
- SetCursor(g_hCursorArrow);
- return TRUE;
- }
- }
- else
- {
- schSCManager = OpenSCManager(szComputerName, NULL,
- SC_MANAGER_CONNECT);
- if (!schSCManager) {
- ErrorMessage(g_lpMsg[IDS_MSG_SRVFAILED - IDS_MSG_FIRST],
- FALSE);
- return FALSE;
- }
-
- schService = OpenService(schSCManager, szServiceName,
- SERVICE_QUERY_STATUS | SERVICE_START |
- SERVICE_STOP | SERVICE_USER_DEFINED_CONTROL);
- if (schService == NULL)
- {
- /* Avoid recursion of ImagePath NULL (from this Respawn) */
- if (szImagePath) {
- am_RespawnAsUserAdmin(g_hwndMain, dwCommand,
- szServiceName, szComputerName);
- }
- else {
- ErrorMessage(g_lpMsg[IDS_MSG_SRVFAILED - IDS_MSG_FIRST],
- FALSE);
- }
- CloseServiceHandle(schSCManager);
- return FALSE;
- }
- else
- {
- retValue = FALSE;
- g_bConsoleRun = TRUE;
- SetCursor(g_hCursorHourglass);
- switch (dwCommand)
- {
- case SERVICE_CONTROL_STOP:
- _sntprintf(szMsg, sizeof(szMsg) / sizeof(TCHAR),
- g_lpMsg[IDS_MSG_SRVSTOP - IDS_MSG_FIRST],
- szServiceName);
- addListBoxString(g_hwndStdoutList, szMsg);
- if (ControlService(schService, SERVICE_CONTROL_STOP,
- &schSStatus)) {
- Sleep(1000);
- while (QueryServiceStatus(schService, &schSStatus))
- {
- if (schSStatus.dwCurrentState == SERVICE_STOP_PENDING)
- {
- Sleep(1000);
- }
- else {
- break;
- }
- }
- }
- if (QueryServiceStatus(schService, &schSStatus))
- {
- if (schSStatus.dwCurrentState == SERVICE_STOPPED)
- {
- retValue = TRUE;
- _sntprintf(szMsg, sizeof(szMsg) / sizeof(TCHAR),
- g_lpMsg[IDS_MSG_SRVSTOPPED - IDS_MSG_FIRST],
- szServiceName);
- addListBoxString(g_hwndStdoutList, szMsg);
- }
- }
- break;
-
- case SERVICE_CONTROL_CONTINUE:
- _sntprintf(szMsg, sizeof(szMsg) / sizeof(TCHAR),
- g_lpMsg[IDS_MSG_SRVSTART - IDS_MSG_FIRST],
- szServiceName);
- addListBoxString(g_hwndStdoutList, szMsg);
-
- if (StartService(schService, 0, NULL))
- {
- Sleep(1000);
- while (QueryServiceStatus(schService, &schSStatus))
- {
- if (schSStatus.dwCurrentState == SERVICE_START_PENDING)
- {
- Sleep(1000);
- }
- else {
- break;
- }
- }
- }
- if (QueryServiceStatus(schService, &schSStatus))
- {
- if (schSStatus.dwCurrentState == SERVICE_RUNNING)
- {
- retValue = TRUE;
- _sntprintf(szMsg, sizeof(szMsg) / sizeof(TCHAR),
- g_lpMsg[IDS_MSG_SRVSTARTED - IDS_MSG_FIRST],
- szServiceName);
- addListBoxString(g_hwndStdoutList, szMsg);
- }
- }
- break;
-
- case SERVICE_APACHE_RESTART:
- _sntprintf(szMsg, sizeof(szMsg) / sizeof(TCHAR),
- g_lpMsg[IDS_MSG_SRVRESTART - IDS_MSG_FIRST],
- szServiceName);
- addListBoxString(g_hwndStdoutList, szMsg);
- if (ControlService(schService, SERVICE_APACHE_RESTART,
- &schSStatus))
- {
- ticks = 60;
- while (schSStatus.dwCurrentState == SERVICE_START_PENDING)
- {
- Sleep(1000);
- if (!QueryServiceStatus(schService, &schSStatus))
- {
- CloseServiceHandle(schService);
- CloseServiceHandle(schSCManager);
- g_bConsoleRun = FALSE;
- SetCursor(g_hCursorArrow);
- return FALSE;
- }
- if (!--ticks) {
- break;
- }
- }
- }
- if (schSStatus.dwCurrentState == SERVICE_RUNNING)
- {
- retValue = TRUE;
- _sntprintf(szMsg, sizeof(szMsg) / sizeof(TCHAR),
- g_lpMsg[IDS_MSG_SRVRESTARTED - IDS_MSG_FIRST],
- szServiceName);
- addListBoxString(g_hwndStdoutList, szMsg);
- }
- break;
- }
- CloseServiceHandle(schService);
- CloseServiceHandle(schSCManager);
- if (!retValue) {
- ErrorMessage(g_lpMsg[IDS_MSG_SRVFAILED - IDS_MSG_FIRST],
- FALSE);
- }
- g_bConsoleRun = FALSE;
- SetCursor(g_hCursorArrow);
- return retValue;
- }
- return FALSE;
- }
-
- return FALSE;
-}
-
-
-BOOL IsServiceRunning(LPCTSTR szServiceName, LPCTSTR szComputerName,
- LPDWORD lpdwPid)
-{
- DWORD dwPid;
- HWND hWnd;
- SC_HANDLE schService;
- SC_HANDLE schSCManager;
- SERVICE_STATUS schSStatus;
-
- if (g_dwOSVersion == OS_VERSION_WIN9X)
- {
- hWnd = FindWindow(_T("ApacheWin95ServiceMonitor"), szServiceName);
- if (hWnd && GetWindowThreadProcessId(hWnd, &dwPid))
- {
- *lpdwPid = 1;
- return TRUE;
- }
- else {
- return FALSE;
- }
- }
- else
- {
- dwPid = 0;
- schSCManager = OpenSCManager(szComputerName, NULL,
- SC_MANAGER_CONNECT);
- if (!schSCManager) {
- return FALSE;
- }
-
- schService = OpenService(schSCManager, szServiceName,
- SERVICE_QUERY_STATUS);
- if (schService != NULL)
- {
- if (QueryServiceStatus(schService, &schSStatus))
- {
- dwPid = schSStatus.dwCurrentState;
- if (lpdwPid) {
- *lpdwPid = 1;
- }
- }
- CloseServiceHandle(schService);
- CloseServiceHandle(schSCManager);
- return dwPid == SERVICE_RUNNING ? TRUE : FALSE;
- }
- else {
- g_bRescanServices = TRUE;
- }
- CloseServiceHandle(schSCManager);
- return FALSE;
-
- }
-
- return FALSE;
-}
-
-
-BOOL FindRunningServices(void)
-{
- int i = 0;
- DWORD dwPid;
- BOOL rv = FALSE;
- while (g_stServices[i].szServiceName != NULL)
- {
- if (!IsServiceRunning(g_stServices[i].szServiceName,
- g_stServices[i].szComputerName, &dwPid)) {
- dwPid = 0;
- }
- if (g_stServices[i].dwPid != dwPid) {
- rv = TRUE;
- }
- g_stServices[i].dwPid = dwPid;
- ++i;
- }
- return rv;
-}
-
-
-BOOL GetApacheServicesStatus()
-{
- TCHAR szKey[MAX_PATH];
- TCHAR achKey[MAX_PATH];
- TCHAR szImagePath[MAX_PATH];
- TCHAR szBuf[MAX_PATH];
- TCHAR szTmp[MAX_PATH];
- HKEY hKey, hSubKey, hKeyRemote;
- DWORD retCode, rv, dwKeyType;
- DWORD dwBufLen = MAX_PATH;
- int i, stPos = 0;
- int computers = 0;
-
- g_bRescanServices = FALSE;
-
- am_ClearServicesSt();
- while (g_stComputers[computers].szComputerName != NULL) {
- hKeyRemote = g_stComputers[computers].hRegistry;
- retCode = RegOpenKeyEx(hKeyRemote,
- _T("System\\CurrentControlSet\\Services\\"),
- 0, KEY_READ, &hKey);
- if (retCode != ERROR_SUCCESS)
- {
- ErrorMessage(NULL, FALSE);
- return FALSE;
- }
- for (i = 0, retCode = ERROR_SUCCESS; retCode == ERROR_SUCCESS; i++)
- {
- retCode = RegEnumKey(hKey, i, achKey, MAX_PATH);
- if (retCode == ERROR_SUCCESS)
- {
- _tcscpy(szKey, _T("System\\CurrentControlSet\\Services\\"));
- _tcscat(szKey, achKey);
-
- if (RegOpenKeyEx(hKeyRemote, szKey, 0,
- KEY_QUERY_VALUE, &hSubKey) == ERROR_SUCCESS)
- {
- dwBufLen = MAX_PATH;
- rv = RegQueryValueEx(hSubKey, _T("ImagePath"), NULL,
- &dwKeyType, (LPBYTE)szImagePath, &dwBufLen);
-
- if (rv == ERROR_SUCCESS
- && (dwKeyType == REG_SZ
- || dwKeyType == REG_EXPAND_SZ)
- && dwBufLen)
- {
- _tcscpy(szBuf, szImagePath);
- CharLower(szBuf);
- /* the service name could be httpd*.exe or Apache*.exe */
- if (((_tcsstr(szBuf, _T("\\apache")) != NULL)
- || (_tcsstr(szBuf, _T("\\httpd")) != NULL))
- && _tcsstr(szBuf, _T(".exe"))
- && (_tcsstr(szBuf, _T("--ntservice")) != NULL
- || _tcsstr(szBuf, _T("-k ")) != NULL))
- {
- g_stServices[stPos].szServiceName = _tcsdup(achKey);
- g_stServices[stPos].szImagePath = _tcsdup(szImagePath);
- g_stServices[stPos].szComputerName =
- _tcsdup(g_stComputers[computers].szComputerName);
- dwBufLen = MAX_PATH;
- if (RegQueryValueEx(hSubKey, _T("Description"), NULL,
- &dwKeyType, (LPBYTE)szBuf, &dwBufLen)
- == ERROR_SUCCESS) {
- g_stServices[stPos].szDescription = _tcsdup(szBuf);
- }
- dwBufLen = MAX_PATH;
- if (RegQueryValueEx(hSubKey, _T("DisplayName"), NULL,
- &dwKeyType, (LPBYTE)szBuf, &dwBufLen)
- == ERROR_SUCCESS)
- {
- if (_tcscmp(g_stComputers[computers]
- .szComputerName, g_szLocalHost) != 0)
- {
- _tcscpy(szTmp, g_stComputers[computers]
- .szComputerName + 2);
- _tcscat(szTmp, _T("@"));
- _tcscat(szTmp, szBuf);
- }
- else {
- _tcscpy(szTmp, szBuf);
- }
- g_stServices[stPos].szDisplayName = _tcsdup(szTmp);
-
- }
- ++stPos;
- if (stPos >= MAX_APACHE_SERVICES) {
- retCode = !ERROR_SUCCESS;
- }
- }
- }
- RegCloseKey(hSubKey);
- }
- }
- }
- ++computers;
- RegCloseKey(hKey);
- }
- FindRunningServices();
- return TRUE;
-}
-
-
-LRESULT CALLBACK ConnectDlgProc(HWND hDlg, UINT message,
- WPARAM wParam, LPARAM lParam)
-{
- TCHAR szCmp[MAX_COMPUTERNAME_LENGTH+4];
- switch (message)
- {
- case WM_INITDIALOG:
- ShowWindow(hDlg, SW_HIDE);
- g_hwndConnectDlg = hDlg;
- CenterWindow(hDlg);
- ShowWindow(hDlg, SW_SHOW);
- SetFocus(GetDlgItem(hDlg, IDC_COMPUTER));
- return TRUE;
-
- case WM_COMMAND:
- switch (LOWORD(wParam))
- {
- case IDOK:
- memset(szCmp, 0, sizeof(szCmp));
- _tcscpy(szCmp, _T("\\\\"));
- SendMessage(GetDlgItem(hDlg, IDC_COMPUTER), WM_GETTEXT,
- (WPARAM) MAX_COMPUTERNAME_LENGTH,
- (LPARAM) szCmp+2);
-
- _tcsupr(szCmp);
- if (_tcslen(szCmp) < 3) {
- EndDialog(hDlg, TRUE);
- return TRUE;
- }
- am_ConnectComputer(szCmp);
- SendMessage(g_hwndMain, WM_TIMER, WM_TIMER_RESCAN, 0);
-
- case IDCANCEL:
- EndDialog(hDlg, TRUE);
- return TRUE;
-
- case IDC_LBROWSE:
- {
- BROWSEINFO bi;
- ITEMIDLIST *il;
- LPMALLOC pMalloc;
- memset(&bi, 0, sizeof(BROWSEINFO));
- SHGetSpecialFolderLocation(hDlg, CSIDL_NETWORK, &il);
-
- bi.lpszTitle = _T("ApacheMonitor :\nSelect Network Computer!");
- bi.pszDisplayName = szCmp;
- bi.hwndOwner = hDlg;
- bi.ulFlags = BIF_BROWSEFORCOMPUTER;
- bi.lpfn = NULL;
- bi.lParam = 0;
- bi.iImage = 0;
- bi.pidlRoot = il;
-
- if (SHBrowseForFolder(&bi) != NULL) {
- SendMessage(GetDlgItem(hDlg, IDC_COMPUTER),
- WM_SETTEXT,
- (WPARAM) NULL, (LPARAM) szCmp);
- }
- if (SHGetMalloc(&pMalloc)) {
- pMalloc->lpVtbl->Free(pMalloc, il);
- pMalloc->lpVtbl->Release(pMalloc);
- }
- return TRUE;
- }
- }
- break;
-
- case WM_QUIT:
- case WM_CLOSE:
- EndDialog(hDlg, TRUE);
- return TRUE;
-
- default:
- return FALSE;
- }
- return FALSE;
-
-}
-
-
-LRESULT CALLBACK ServiceDlgProc(HWND hDlg, UINT message,
- WPARAM wParam, LPARAM lParam)
-{
- TCHAR szBuf[MAX_PATH];
- HWND hListBox;
- static HWND hStatusBar;
- TEXTMETRIC tm;
- int i, y;
- HDC hdcMem;
- RECT rcBitmap;
- LRESULT nItem;
- LPMEASUREITEMSTRUCT lpmis;
- LPDRAWITEMSTRUCT lpdis;
-
- memset(szBuf, 0, sizeof(szBuf));
- switch (message)
- {
- case WM_INITDIALOG:
- ShowWindow(hDlg, SW_HIDE);
- g_hwndServiceDlg = hDlg;
- SetWindowText(hDlg, g_szTitle);
- Button_Enable(GetDlgItem(hDlg, IDC_SSTART), FALSE);
- Button_Enable(GetDlgItem(hDlg, IDC_SSTOP), FALSE);
- Button_Enable(GetDlgItem(hDlg, IDC_SRESTART), FALSE);
- Button_Enable(GetDlgItem(hDlg, IDC_SDISCONN), FALSE);
- SetWindowText(GetDlgItem(hDlg, IDC_SSTART),
- g_lpMsg[IDS_MSG_SSTART - IDS_MSG_FIRST]);
- SetWindowText(GetDlgItem(hDlg, IDC_SSTOP),
- g_lpMsg[IDS_MSG_SSTOP - IDS_MSG_FIRST]);
- SetWindowText(GetDlgItem(hDlg, IDC_SRESTART),
- g_lpMsg[IDS_MSG_SRESTART - IDS_MSG_FIRST]);
- SetWindowText(GetDlgItem(hDlg, IDC_SMANAGER),
- g_lpMsg[IDS_MSG_SERVICES - IDS_MSG_FIRST]);
- SetWindowText(GetDlgItem(hDlg, IDC_SCONNECT),
- g_lpMsg[IDS_MSG_CONNECT - IDS_MSG_FIRST]);
- SetWindowText(GetDlgItem(hDlg, IDC_SEXIT),
- g_lpMsg[IDS_MSG_MNUEXIT - IDS_MSG_FIRST]);
- if (g_dwOSVersion < OS_VERSION_WINNT)
- {
- ShowWindow(GetDlgItem(hDlg, IDC_SMANAGER), SW_HIDE);
- ShowWindow(GetDlgItem(hDlg, IDC_SCONNECT), SW_HIDE);
- ShowWindow(GetDlgItem(hDlg, IDC_SDISCONN), SW_HIDE);
- }
- hListBox = GetDlgItem(hDlg, IDL_SERVICES);
- g_hwndStdoutList = GetDlgItem(hDlg, IDL_STDOUT);
- hStatusBar = CreateStatusWindow(0x0800 /* SBT_TOOLTIPS */
- | WS_CHILD | WS_VISIBLE,
- _T(""), hDlg, IDC_STATBAR);
- if (GetApacheServicesStatus())
- {
- i = 0;
- while (g_stServices[i].szServiceName != NULL)
- {
- addListBoxItem(hListBox, g_stServices[i].szDisplayName,
- g_stServices[i].dwPid == 0 ? g_hBmpStop
- : g_hBmpStart);
- ++i;
- }
- }
- CenterWindow(hDlg);
- ShowWindow(hDlg, SW_SHOW);
- SetFocus(hListBox);
- SendMessage(hListBox, LB_SETCURSEL, 0, 0);
- return TRUE;
- break;
-
- case WM_MANAGEMESSAGE:
- ApacheManageService(g_stServices[LOWORD(wParam)].szServiceName,
- g_stServices[LOWORD(wParam)].szImagePath,
- g_stServices[LOWORD(wParam)].szComputerName,
- LOWORD(lParam));
-
- return TRUE;
- break;
-
- case WM_UPDATEMESSAGE:
- hListBox = GetDlgItem(hDlg, IDL_SERVICES);
- SendMessage(hListBox, LB_RESETCONTENT, 0, 0);
- SendMessage(hStatusBar, SB_SETTEXT, 0, (LPARAM)_T(""));
- Button_Enable(GetDlgItem(hDlg, IDC_SSTART), FALSE);
- Button_Enable(GetDlgItem(hDlg, IDC_SSTOP), FALSE);
- Button_Enable(GetDlgItem(hDlg, IDC_SRESTART), FALSE);
- Button_Enable(GetDlgItem(hDlg, IDC_SDISCONN), FALSE);
- i = 0;
- while (g_stServices[i].szServiceName != NULL)
- {
- addListBoxItem(hListBox, g_stServices[i].szDisplayName,
- g_stServices[i].dwPid == 0 ? g_hBmpStop : g_hBmpStart);
- ++i;
- }
- SendMessage(hListBox, LB_SETCURSEL, 0, 0);
- /* Dirty hack to bring the window to the foreground */
- SetWindowPos(hDlg, HWND_TOPMOST, 0, 0, 0, 0,
- SWP_NOSIZE | SWP_NOMOVE | SWP_SHOWWINDOW);
- SetWindowPos(hDlg, HWND_NOTOPMOST, 0, 0, 0, 0,
- SWP_NOSIZE | SWP_NOMOVE | SWP_SHOWWINDOW);
- SetFocus(hListBox);
- return TRUE;
- break;
-
- case WM_MEASUREITEM:
- lpmis = (LPMEASUREITEMSTRUCT) lParam;
- lpmis->itemHeight = YBITMAP;
- return TRUE;
-
- case WM_SETCURSOR:
- if (g_bConsoleRun) {
- SetCursor(g_hCursorHourglass);
- }
- else {
- SetCursor(g_hCursorArrow);
- }
- return TRUE;
-
- case WM_DRAWITEM:
- lpdis = (LPDRAWITEMSTRUCT) lParam;
- if (lpdis->itemID == -1) {
- break;
- }
- switch (lpdis->itemAction)
- {
- case ODA_SELECT:
- case ODA_DRAWENTIRE:
- g_hBmpPicture = (HBITMAP)SendMessage(lpdis->hwndItem,
- LB_GETITEMDATA,
- lpdis->itemID, (LPARAM) 0);
-
- hdcMem = CreateCompatibleDC(lpdis->hDC);
- g_hBmpOld = SelectObject(hdcMem, g_hBmpPicture);
-
- BitBlt(lpdis->hDC, lpdis->rcItem.left, lpdis->rcItem.top,
- lpdis->rcItem.right - lpdis->rcItem.left,
- lpdis->rcItem.bottom - lpdis->rcItem.top,
- hdcMem, 0, 0, SRCCOPY);
- SendMessage(lpdis->hwndItem, LB_GETTEXT,
- lpdis->itemID, (LPARAM) szBuf);
-
- GetTextMetrics(lpdis->hDC, &tm);
- y = (lpdis->rcItem.bottom + lpdis->rcItem.top - tm.tmHeight) / 2;
-
- SelectObject(hdcMem, g_hBmpOld);
- DeleteDC(hdcMem);
-
- rcBitmap.left = lpdis->rcItem.left + XBITMAP + 2;
- rcBitmap.top = lpdis->rcItem.top;
- rcBitmap.right = lpdis->rcItem.right;
- rcBitmap.bottom = lpdis->rcItem.top + YBITMAP;
-
- if (lpdis->itemState & ODS_SELECTED)
- {
- if (g_hBmpPicture == g_hBmpStop)
- {
- Button_Enable(GetDlgItem(hDlg, IDC_SSTART), TRUE);
- Button_Enable(GetDlgItem(hDlg, IDC_SSTOP), FALSE);
- Button_Enable(GetDlgItem(hDlg, IDC_SRESTART), FALSE);
- }
- else if (g_hBmpPicture == g_hBmpStart)
- {
- Button_Enable(GetDlgItem(hDlg, IDC_SSTART), FALSE);
- Button_Enable(GetDlgItem(hDlg, IDC_SSTOP), TRUE);
- Button_Enable(GetDlgItem(hDlg, IDC_SRESTART), TRUE);
- }
- else {
- Button_Enable(GetDlgItem(hDlg, IDC_SSTART), FALSE);
- Button_Enable(GetDlgItem(hDlg, IDC_SSTOP), FALSE);
- Button_Enable(GetDlgItem(hDlg, IDC_SRESTART), FALSE);
- }
- if (_tcscmp(g_stServices[lpdis->itemID].szComputerName,
- g_szLocalHost) == 0) {
- Button_Enable(GetDlgItem(hDlg, IDC_SDISCONN), FALSE);
- }
- else {
- Button_Enable(GetDlgItem(hDlg, IDC_SDISCONN), TRUE);
- }
-
- if (g_stServices[lpdis->itemID].szDescription) {
- SendMessage(hStatusBar, SB_SETTEXT, 0,
- (LPARAM)g_stServices[lpdis->itemID].szDescription);
- }
- else {
- SendMessage(hStatusBar, SB_SETTEXT, 0, (LPARAM)_T(""));
- }
- SetTextColor(lpdis->hDC, GetSysColor(COLOR_HIGHLIGHTTEXT));
- SetBkColor(lpdis->hDC, GetSysColor(COLOR_HIGHLIGHT));
- FillRect(lpdis->hDC, &rcBitmap, (HBRUSH)(COLOR_HIGHLIGHTTEXT));
- }
- else
- {
- SetTextColor(lpdis->hDC, GetSysColor(COLOR_MENUTEXT));
- SetBkColor(lpdis->hDC, GetSysColor(COLOR_WINDOW));
- FillRect(lpdis->hDC, &rcBitmap, (HBRUSH)(COLOR_WINDOW+1));
- }
- TextOut(lpdis->hDC, XBITMAP + 6, y, szBuf, (int)_tcslen(szBuf));
- break;
-
- case ODA_FOCUS:
- break;
- }
- return TRUE;
- case WM_COMMAND:
- switch (LOWORD(wParam))
- {
- case IDL_SERVICES:
- switch (HIWORD(wParam))
- {
- case LBN_DBLCLK:
- /* if started then stop, if stopped then start */
- hListBox = GetDlgItem(hDlg, IDL_SERVICES);
- nItem = SendMessage(hListBox, LB_GETCURSEL, 0, 0);
- if (nItem != LB_ERR)
- {
- g_hBmpPicture = (HBITMAP)SendMessage(hListBox,
- LB_GETITEMDATA,
- nItem, (LPARAM) 0);
- if (g_hBmpPicture == g_hBmpStop) {
- SendMessage(hDlg, WM_MANAGEMESSAGE, nItem,
- SERVICE_CONTROL_CONTINUE);
- }
- else {
- SendMessage(hDlg, WM_MANAGEMESSAGE, nItem,
- SERVICE_CONTROL_STOP);
- }
-
- }
- return TRUE;
- }
- break;
-
- case IDOK:
- EndDialog(hDlg, TRUE);
- return TRUE;
-
- case IDC_SSTART:
- Button_Enable(GetDlgItem(hDlg, IDC_SSTART), FALSE);
- hListBox = GetDlgItem(hDlg, IDL_SERVICES);
- nItem = SendMessage(hListBox, LB_GETCURSEL, 0, 0);
- if (nItem != LB_ERR) {
- SendMessage(hDlg, WM_MANAGEMESSAGE, nItem,
- SERVICE_CONTROL_CONTINUE);
- }
- Button_Enable(GetDlgItem(hDlg, IDC_SSTART), TRUE);
- return TRUE;
-
- case IDC_SSTOP:
- Button_Enable(GetDlgItem(hDlg, IDC_SSTOP), FALSE);
- hListBox = GetDlgItem(hDlg, IDL_SERVICES);
- nItem = SendMessage(hListBox, LB_GETCURSEL, 0, 0);
- if (nItem != LB_ERR) {
- SendMessage(hDlg, WM_MANAGEMESSAGE, nItem,
- SERVICE_CONTROL_STOP);
- }
- Button_Enable(GetDlgItem(hDlg, IDC_SSTOP), TRUE);
- return TRUE;
-
- case IDC_SRESTART:
- Button_Enable(GetDlgItem(hDlg, IDC_SRESTART), FALSE);
- hListBox = GetDlgItem(hDlg, IDL_SERVICES);
- nItem = SendMessage(hListBox, LB_GETCURSEL, 0, 0);
- if (nItem != LB_ERR) {
- SendMessage(hDlg, WM_MANAGEMESSAGE, nItem,
- SERVICE_APACHE_RESTART);
- }
- Button_Enable(GetDlgItem(hDlg, IDC_SRESTART), TRUE);
- return TRUE;
-
- case IDC_SMANAGER:
- if (g_dwOSVersion >= OS_VERSION_WIN2K) {
- ShellExecute(hDlg, _T("open"), _T("services.msc"), _T("/s"),
- NULL, SW_NORMAL);
- }
- else {
- WinExec("Control.exe SrvMgr.cpl Services", SW_NORMAL);
- }
- return TRUE;
-
- case IDC_SEXIT:
- EndDialog(hDlg, TRUE);
- SendMessage(g_hwndMain, WM_COMMAND, (WPARAM)IDM_EXIT, 0);
- return TRUE;
-
- case IDC_SCONNECT:
- DialogBox(g_hInstance, MAKEINTRESOURCE(IDD_DLGCONNECT),
- hDlg, (DLGPROC)ConnectDlgProc);
- return TRUE;
-
- case IDC_SDISCONN:
- hListBox = GetDlgItem(hDlg, IDL_SERVICES);
- nItem = SendMessage(hListBox, LB_GETCURSEL, 0, 0);
- if (nItem != LB_ERR) {
- am_DisconnectComputer(g_stServices[nItem].szComputerName);
- SendMessage(g_hwndMain, WM_TIMER, WM_TIMER_RESCAN, 0);
- }
- return TRUE;
- }
- break;
-
- case WM_SIZE:
- switch (LOWORD(wParam))
- {
- case SIZE_MINIMIZED:
- EndDialog(hDlg, TRUE);
- return TRUE;
- break;
- }
- break;
-
- case WM_QUIT:
- case WM_CLOSE:
- EndDialog(hDlg, TRUE);
- return TRUE;
-
- default:
- return FALSE;
- }
- return FALSE;
-}
-
-
-LRESULT CALLBACK WndProc(HWND hWnd, UINT message,
- WPARAM wParam, LPARAM lParam)
-{
- if (message == g_bUiTaskbarCreated)
- {
- /* restore the tray icon on shell restart */
- ShowNotifyIcon(hWnd, NIM_ADD);
- return DefWindowProc(hWnd, message, wParam, lParam);
- }
- switch (message)
- {
- case WM_CREATE:
- GetApacheServicesStatus();
- ShowNotifyIcon(hWnd, NIM_ADD);
- SetTimer(hWnd, WM_TIMER_REFRESH, REFRESH_TIME, NULL);
- SetTimer(hWnd, WM_TIMER_RESCAN, RESCAN_TIME, NULL);
- break;
-
- case WM_TIMER:
- switch (wParam)
- {
- case WM_TIMER_RESCAN:
- {
- int nPrev = 0, nNew = 0;
- EnterCriticalSection(&g_stcSection);
- if (FindRunningServices() || g_bRescanServices)
- {
- ShowNotifyIcon(hWnd, NIM_MODIFY);
- if (g_hwndServiceDlg)
- PostMessage(g_hwndServiceDlg, WM_UPDATEMESSAGE, 0, 0);
- }
- /* check if services list changed */
- while (g_stServices[nPrev].szServiceName != NULL)
- ++nPrev;
- GetApacheServicesStatus();
- while (g_stServices[nNew].szServiceName != NULL)
- ++nNew;
- if (nPrev != nNew)
- {
- ShowNotifyIcon(hWnd, NIM_MODIFY);
- if (g_hwndServiceDlg) {
- PostMessage(g_hwndServiceDlg, WM_UPDATEMESSAGE, 0, 0);
- }
- }
- LeaveCriticalSection(&g_stcSection);
- break;
- }
-
- case WM_TIMER_REFRESH:
- {
- int nPrev = 0, nNew = 0;
- EnterCriticalSection(&g_stcSection);
- if (g_bRescanServices)
- {
- GetApacheServicesStatus();
- ShowNotifyIcon(hWnd, NIM_MODIFY);
- if (g_hwndServiceDlg) {
- PostMessage(g_hwndServiceDlg, WM_UPDATEMESSAGE, 0, 0);
- }
- }
- else if (FindRunningServices())
- {
- ShowNotifyIcon(hWnd, NIM_MODIFY);
- if (g_hwndServiceDlg) {
- PostMessage(g_hwndServiceDlg, WM_UPDATEMESSAGE, 0, 0);
- }
- }
- LeaveCriticalSection(&g_stcSection);
- break;
- }
- }
- break;
-
- case WM_QUIT:
- ShowNotifyIcon(hWnd, NIM_DELETE);
- break;
-
- case WM_TRAYMESSAGE:
- switch (lParam)
- {
- case WM_LBUTTONDBLCLK:
- if (!g_bDlgServiceOn)
- {
- g_bDlgServiceOn = TRUE;
- DialogBox(g_hInstance, MAKEINTRESOURCE(IDD_DLGSERVICES),
- hWnd, (DLGPROC)ServiceDlgProc);
- g_bDlgServiceOn = FALSE;
- g_hwndServiceDlg = NULL;
- }
- else if (IsWindow(g_hwndServiceDlg))
- {
- /* Dirty hack to bring the window to the foreground */
- SetWindowPos(g_hwndServiceDlg, HWND_TOPMOST, 0, 0, 0, 0,
- SWP_NOSIZE | SWP_NOMOVE | SWP_SHOWWINDOW);
- SetWindowPos(g_hwndServiceDlg, HWND_NOTOPMOST, 0, 0, 0, 0,
- SWP_NOSIZE | SWP_NOMOVE | SWP_SHOWWINDOW);
- SetFocus(g_hwndServiceDlg);
- }
- break;
-
- case WM_LBUTTONUP:
- ShowTryServicesMenu(hWnd);
- break;
-
- case WM_RBUTTONUP:
- ShowTryPopupMenu(hWnd);
- break;
- }
- break;
-
- case WM_COMMAND:
- if ((LOWORD(wParam) & IDM_SM_START) == IDM_SM_START)
- {
- ApacheManageService(g_stServices[LOWORD(wParam)
- - IDM_SM_START].szServiceName,
- g_stServices[LOWORD(wParam)
- - IDM_SM_START].szImagePath,
- g_stServices[LOWORD(wParam)
- - IDM_SM_START].szComputerName,
- SERVICE_CONTROL_CONTINUE);
- return TRUE;
- }
- else if ((LOWORD(wParam) & IDM_SM_STOP) == IDM_SM_STOP)
- {
- ApacheManageService(g_stServices[LOWORD(wParam)
- - IDM_SM_STOP].szServiceName,
- g_stServices[LOWORD(wParam)
- - IDM_SM_STOP].szImagePath,
- g_stServices[LOWORD(wParam)
- - IDM_SM_STOP].szComputerName,
- SERVICE_CONTROL_STOP);
- return TRUE;
- }
- else if ((LOWORD(wParam) & IDM_SM_RESTART) == IDM_SM_RESTART)
- {
- ApacheManageService(g_stServices[LOWORD(wParam)
- - IDM_SM_RESTART].szServiceName,
- g_stServices[LOWORD(wParam)
- - IDM_SM_RESTART].szImagePath,
- g_stServices[LOWORD(wParam)
- - IDM_SM_RESTART].szComputerName,
- SERVICE_APACHE_RESTART);
- return TRUE;
- }
- switch (LOWORD(wParam))
- {
- case IDM_RESTORE:
- if (!g_bDlgServiceOn)
- {
- g_bDlgServiceOn = TRUE;
- DialogBox(g_hInstance, MAKEINTRESOURCE(IDD_DLGSERVICES),
- hWnd, (DLGPROC)ServiceDlgProc);
- g_bDlgServiceOn = FALSE;
- g_hwndServiceDlg = NULL;
- }
- else if (IsWindow(g_hwndServiceDlg)) {
- SetFocus(g_hwndServiceDlg);
- }
- break;
-
- case IDC_SMANAGER:
- if (g_dwOSVersion >= OS_VERSION_WIN2K) {
- ShellExecute(NULL, _T("open"), _T("services.msc"), _T("/s"),
- NULL, SW_NORMAL);
- }
- else {
- WinExec("Control.exe SrvMgr.cpl Services", SW_NORMAL);
- }
- return TRUE;
-
- case IDM_EXIT:
- ShowNotifyIcon(hWnd, NIM_DELETE);
- PostQuitMessage(0);
- return TRUE;
- }
-
- default:
- return DefWindowProc(hWnd, message, wParam, lParam);
- }
-
- return FALSE;
-}
-
-
-static int KillAWindow(HWND appwindow)
-{
- HANDLE appproc;
- DWORD procid;
- BOOL postres;
-
- SetLastError(0);
- GetWindowThreadProcessId(appwindow, &procid);
- if (GetLastError())
- return(2);
-
- appproc = OpenProcess(SYNCHRONIZE, 0, procid);
- postres = PostMessage(appwindow, WM_COMMAND, IDM_EXIT, 0);
- if (appproc && postres) {
- if (WaitForSingleObject(appproc, 10 /* seconds */ * 1000)
- == WAIT_OBJECT_0) {
- CloseHandle(appproc);
- return (0);
- }
- }
- if (appproc)
- CloseHandle(appproc);
-
- if ((appproc = OpenProcess(PROCESS_TERMINATE, 0, procid)) != NULL) {
- if (TerminateProcess(appproc, 0)) {
- CloseHandle(appproc);
- return (0);
- }
- CloseHandle(appproc);
- }
-
- /* Perhaps we were short of permissions? */
- return (2);
-}
-
-
-static int KillAllMonitors(void)
-{
- HWND appwindow;
- int exitcode = 0;
- PWTS_PROCESS_INFO tsProcs;
- DWORD tsProcCount, i;
- DWORD thisProcId;
-
- /* This is graceful, close our own Window, clearing the icon */
- if ((appwindow = FindWindow(g_szWindowClass, g_szTitle)) != NULL)
- exitcode = KillAWindow(appwindow);
-
- if (g_dwOSVersion < OS_VERSION_WIN2K)
- return exitcode;
-
- thisProcId = GetCurrentProcessId();
-
- if (!WTSEnumerateProcesses(WTS_CURRENT_SERVER_HANDLE, 0, 1,
- &tsProcs, &tsProcCount))
- return exitcode;
-
- /* This is ungraceful; close other Windows, with a lingering icon.
- * Since on terminal server it's not possible to post the message
- * to exit across sessions, we have to suffer this side effect
- * of a taskbar 'icon' which will evaporate the next time that
- * the user hovers over it or when the taskbar area is updated.
- */
- for (i = 0; i < tsProcCount; ++i) {
- if (_tcscmp(tsProcs[i].pProcessName, _T(AM_STRINGIFY(BIN_NAME))) == 0
- && tsProcs[i].ProcessId != thisProcId)
- WTSTerminateProcess(WTS_CURRENT_SERVER_HANDLE,
- tsProcs[i].ProcessId, 1);
- }
- WTSFreeMemory(tsProcs);
- return exitcode;
-}
-
-
-/* Create main invisible window */
-HWND CreateMainWindow(HINSTANCE hInstance)
-{
- HWND hWnd = NULL;
- WNDCLASSEX wcex;
-
- wcex.cbSize = sizeof(WNDCLASSEX);
-
- wcex.style = CS_HREDRAW | CS_VREDRAW;
- wcex.lpfnWndProc = (WNDPROC)WndProc;
- wcex.cbClsExtra = 0;
- wcex.cbWndExtra = 0;
- wcex.hInstance = hInstance;
- wcex.hIcon = (HICON)LoadImage(hInstance, MAKEINTRESOURCE(IDI_APSRVMON),
- IMAGE_ICON, 32, 32, LR_DEFAULTCOLOR);
- wcex.hCursor = g_hCursorArrow;
- wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
- wcex.lpszMenuName = 0;
- wcex.lpszClassName = g_szWindowClass;
- wcex.hIconSm = (HICON)LoadImage(hInstance, MAKEINTRESOURCE(IDI_APSRVMON),
- IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR);
-
- if (RegisterClassEx(&wcex)) {
- hWnd = CreateWindow(g_szWindowClass, g_szTitle,
- 0, 0, 0, 0, 0,
- NULL, NULL, hInstance, NULL);
- }
- return hWnd;
-}
-
-
-#ifndef UNICODE
-/* Borrowed from CRT internal.h for _MBCS argc/argv parsing in this GUI app */
-int __cdecl _setargv(void);
-#endif
-
-int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
- LPSTR lpCmdLine, int nCmdShow)
-{
- TCHAR szTmp[MAX_LOADSTRING];
- TCHAR szCmp[MAX_COMPUTERNAME_LENGTH+4];
- MSG msg;
- /* existing window */
- HWND appwindow;
- DWORD dwControl;
- int i;
- DWORD d;
-
- if (!GetSystemOSVersion(&g_dwOSVersion))
- {
- ErrorMessage(NULL, TRUE);
- return 1;
- }
-
- g_LangID = GetUserDefaultLangID();
- if ((g_LangID & 0xFF) != LANG_ENGLISH) {
- g_LangID = MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL);
- }
- for (i = IDS_MSG_FIRST; i <= IDS_MSG_LAST; ++i) {
- LoadString(hInstance, i, szTmp, MAX_LOADSTRING);
- g_lpMsg[i - IDS_MSG_FIRST] = _tcsdup(szTmp);
- }
- LoadString(hInstance, IDS_APMONITORTITLE, szTmp, MAX_LOADSTRING);
- d = MAX_COMPUTERNAME_LENGTH+1;
- _tcscpy(szCmp, _T("\\\\"));
- GetComputerName(szCmp + 2, &d);
- _tcsupr(szCmp);
- g_szLocalHost = _tcsdup(szCmp);
-
- memset(g_stComputers, 0, sizeof(ST_MONITORED_COMP) * MAX_APACHE_COMPUTERS);
- g_stComputers[0].szComputerName = _tcsdup(szCmp);
- g_stComputers[0].hRegistry = HKEY_LOCAL_MACHINE;
- g_szTitle = _tcsdup(szTmp);
- LoadString(hInstance, IDS_APMONITORCLASS, szTmp, MAX_LOADSTRING);
- g_szWindowClass = _tcsdup(szTmp);
-
- appwindow = FindWindow(g_szWindowClass, g_szTitle);
-
-#ifdef UNICODE
- __wargv = CommandLineToArgvW(GetCommandLineW(), &__argc);
-#else
- _setargv();
-#endif
-
- if ((__argc == 2) && (_tcscmp(__targv[1], _T("--kill")) == 0))
- {
- /* Off to chase and close up every ApacheMonitor taskbar window */
- return KillAllMonitors();
- }
- else if ((__argc == 4) && (g_dwOSVersion >= OS_VERSION_WIN2K))
- {
- dwControl = _ttoi(__targv[1]);
- if ((dwControl != SERVICE_CONTROL_CONTINUE) &&
- (dwControl != SERVICE_APACHE_RESTART) &&
- (dwControl != SERVICE_CONTROL_STOP))
- {
- return 1;
- }
-
- /* Chase down and close up our session's previous window */
- if ((appwindow) != NULL)
- KillAWindow(appwindow);
- }
- else if (__argc != 1) {
- return 1;
- }
- else if (appwindow)
- {
- ErrorMessage(g_lpMsg[IDS_MSG_APPRUNNING - IDS_MSG_FIRST], FALSE);
- return 0;
- }
-
- g_icoStop = LoadImage(hInstance, MAKEINTRESOURCE(IDI_ICOSTOP),
- IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR);
- g_icoRun = LoadImage(hInstance, MAKEINTRESOURCE(IDI_ICORUN),
- IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR);
- g_hCursorHourglass = LoadImage(NULL, MAKEINTRESOURCE(OCR_WAIT),
- IMAGE_CURSOR, LR_DEFAULTSIZE,
- LR_DEFAULTSIZE, LR_SHARED);
- g_hCursorArrow = LoadImage(NULL, MAKEINTRESOURCE(OCR_NORMAL),
- IMAGE_CURSOR, LR_DEFAULTSIZE,
- LR_DEFAULTSIZE, LR_SHARED);
- g_hBmpStart = LoadImage(hInstance, MAKEINTRESOURCE(IDB_BMPRUN),
- IMAGE_BITMAP, XBITMAP, YBITMAP,
- LR_DEFAULTCOLOR);
- g_hBmpStop = LoadImage(hInstance, MAKEINTRESOURCE(IDB_BMPSTOP),
- IMAGE_BITMAP, XBITMAP, YBITMAP,
- LR_DEFAULTCOLOR);
-
- memset(g_stServices, 0, sizeof(ST_APACHE_SERVICE) * MAX_APACHE_SERVICES);
- CoInitialize(NULL);
- InitCommonControls();
- g_hInstance = hInstance;
- g_hwndMain = CreateMainWindow(hInstance);
- g_bUiTaskbarCreated = RegisterWindowMessage(_T("TaskbarCreated"));
- InitializeCriticalSection(&g_stcSection);
- g_hwndServiceDlg = NULL;
- if (g_hwndMain != NULL)
- {
- /* To avoid recursion, pass ImagePath NULL (a noop on NT and later) */
- if ((__argc == 4) && (g_dwOSVersion >= OS_VERSION_WIN2K))
- ApacheManageService(__targv[2], NULL, __targv[3], dwControl);
-
- while (GetMessage(&msg, NULL, 0, 0) == TRUE)
- {
- TranslateMessage(&msg);
- DispatchMessage(&msg);
- }
- am_ClearServicesSt();
- }
- am_ClearComputersSt();
- DeleteCriticalSection(&g_stcSection);
- DestroyIcon(g_icoStop);
- DestroyIcon(g_icoRun);
- DestroyCursor(g_hCursorHourglass);
- DestroyCursor(g_hCursorArrow);
- DeleteObject(g_hBmpStart);
- DeleteObject(g_hBmpStop);
- CoUninitialize();
- return 0;
-}
-
diff --git a/rubbos/app/httpd-2.0.64/support/win32/ApacheMonitor.dsp b/rubbos/app/httpd-2.0.64/support/win32/ApacheMonitor.dsp
deleted file mode 100644
index 84369aaa..00000000
--- a/rubbos/app/httpd-2.0.64/support/win32/ApacheMonitor.dsp
+++ /dev/null
@@ -1,143 +0,0 @@
-# Microsoft Developer Studio Project File - Name="ApacheMonitor" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Application" 0x0101
-
-CFG=ApacheMonitor - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "ApacheMonitor.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "ApacheMonitor.mak" CFG="ApacheMonitor - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "ApacheMonitor - Win32 Release" (based on "Win32 (x86) Application")
-!MESSAGE "ApacheMonitor - Win32 Debug" (based on "Win32 (x86) Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "ApacheMonitor - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MD /W3 /EHsc /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /FD /c
-# ADD CPP /nologo /MD /W3 /EHsc /O2 /Oy- /Zi /I "../../include" /I "../../srclib/apr/include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "STRICT" /Fd"Release/ApacheMonitor_src" /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /i "../../include" /I "../../srclib/apr/include" /d "NDEBUG" /d "APP_FILE"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib comctl32.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib wtsapi32.lib /nologo /subsystem:windows
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib comctl32.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib wtsapi32.lib /nologo /subsystem:windows /debug /opt:ref
-# Begin Special Build Tool
-TargetPath=.\Release\ApacheMonitor.exe
-SOURCE="$(InputPath)"
-PostBuild_Desc=Embed .manifest
-PostBuild_Cmds=if exist $(TargetPath).manifest mt.exe -manifest $(TargetPath).manifest -outputresource:$(TargetPath);2
-# End Special Build Tool
-
-!ELSEIF "$(CFG)" == "ApacheMonitor - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /EHsc /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /EHsc /Zi /Od /I "../../include" /I "../../srclib/apr/include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "STRICT" /Fd"Debug/ApacheMonitor_src" /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /i "../../include" /I "../../srclib/apr/include" /d "_DEBUG" /d "APP_FILE"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib comctl32.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib wtsapi32.lib /nologo /subsystem:windows /debug
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib comctl32.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib wtsapi32.lib /nologo /subsystem:windows /incremental:no /debug
-# Begin Special Build Tool
-TargetPath=.\Debug\ApacheMonitor.exe
-SOURCE="$(InputPath)"
-PostBuild_Desc=Embed .manifest
-PostBuild_Cmds=if exist $(TargetPath).manifest mt.exe -manifest $(TargetPath).manifest -outputresource:$(TargetPath);2
-# End Special Build Tool
-
-!ENDIF
-
-# Begin Target
-
-# Name "ApacheMonitor - Win32 Release"
-# Name "ApacheMonitor - Win32 Debug"
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# Begin Source File
-
-SOURCE=.\apache_header.bmp
-# End Source File
-# Begin Source File
-
-SOURCE=.\ApacheMonitor.ico
-# End Source File
-# Begin Source File
-
-SOURCE=.\aprun.ico
-# End Source File
-# Begin Source File
-
-SOURCE=.\apstop.ico
-# End Source File
-# Begin Source File
-
-SOURCE=.\srun.bmp
-# End Source File
-# Begin Source File
-
-SOURCE=.\sstop.bmp
-# End Source File
-# End Group
-# Begin Source File
-
-SOURCE=.\ApacheMonitor.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\ApacheMonitor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\ApacheMonitor.rc
-# End Source File
-# End Target
-# End Project
diff --git a/rubbos/app/httpd-2.0.64/support/win32/ApacheMonitor.h b/rubbos/app/httpd-2.0.64/support/win32/ApacheMonitor.h
deleted file mode 100644
index 085c45f8..00000000
--- a/rubbos/app/httpd-2.0.64/support/win32/ApacheMonitor.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * @file ApacheMonitor.h
- * @brief Resource definitions for ApacheMonitor.rc and ApacheMonitor.c
- */
-#define BIN_NAME ApacheMonitor.exe
-
-#define IDD_DLGSERVICES 101
-#define IDS_APMONITORTITLE 102
-#define IDS_APMONITORCLASS 103
-#define IDM_RESTORE 104
-#define IDM_EXIT 105
-#define IDI_APSRVMON 106
-#define IDI_ICOSTOP 107
-#define IDI_ICORUN 108
-#define IDC_STATBAR 109
-#define IDC_SSTATUS 110
-#define IDB_BMPSTOP 111
-#define IDB_BMPRUN 112
-#define IDB_BMPHEADER 114
-#define IDL_SERVICES 115
-#define IDL_STDOUT 116
-#define IDC_SSTART 117
-#define IDC_SSTOP 118
-#define IDC_SRESTART 119
-#define IDC_SEXIT 120
-#define IDC_SMANAGER 121
-#define IDD_DLGCONNECT 122
-#define IDC_LREMOTE 123
-#define IDC_LBROWSE 124
-#define IDC_COMPUTER 125
-#define IDC_SCONNECT 126
-#define IDC_SDISCONN 127
-#define IDS_MSG_FIRST 256
-#define IDS_MSG_APPRUNNING 256
-#define IDS_MSG_ERROR 257
-#define IDS_MSG_RUNNINGALL 258
-#define IDS_MSG_RUNNING 259
-#define IDS_MSG_RUNNINGNONE 260
-#define IDS_MSG_NOSERVICES 261
-#define IDS_MSG_MNUSERVICES 262
-#define IDS_MSG_MNUSHOW 263
-#define IDS_MSG_MNUEXIT 264
-#define IDS_MSG_SRVSTART 265
-#define IDS_MSG_SRVSTARTED 266
-#define IDS_MSG_SRVSTOP 267
-#define IDS_MSG_SRVSTOPPED 268
-#define IDS_MSG_SRVRESTART 269
-#define IDS_MSG_SRVRESTARTED 270
-#define IDS_MSG_SRVFAILED 271
-#define IDS_MSG_SSTART 272
-#define IDS_MSG_SSTOP 273
-#define IDS_MSG_SRESTART 274
-#define IDS_MSG_SERVICES 275
-#define IDS_MSG_CONNECT 276
-#define IDS_MSG_ECONNECT 277
-#define IDS_MSG_LAST 277
-#define IDM_SM_SERVICE 0x1100
-#define IDM_SM_START 0x1200
-#define IDM_SM_STOP 0x1400
-#define IDM_SM_RESTART 0x1800
-#define IDC_STATIC -1
-
diff --git a/rubbos/app/httpd-2.0.64/support/win32/ApacheMonitor.ico b/rubbos/app/httpd-2.0.64/support/win32/ApacheMonitor.ico
deleted file mode 100644
index cd28dc52..00000000
--- a/rubbos/app/httpd-2.0.64/support/win32/ApacheMonitor.ico
+++ /dev/null
Binary files differ
diff --git a/rubbos/app/httpd-2.0.64/support/win32/ApacheMonitor.rc b/rubbos/app/httpd-2.0.64/support/win32/ApacheMonitor.rc
deleted file mode 100644
index 099934e6..00000000
--- a/rubbos/app/httpd-2.0.64/support/win32/ApacheMonitor.rc
+++ /dev/null
@@ -1,97 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <windows.h>
-
-#include "ApacheMonitor.h"
-
-IDI_APSRVMON ICON DISCARDABLE "ApacheMonitor.ico"
-IDI_ICOSTOP ICON DISCARDABLE "apstop.ico"
-IDI_ICORUN ICON DISCARDABLE "aprun.ico"
-
-IDD_DLGSERVICES DIALOGEX 0, 0, 350, 188
-STYLE DS_MODALFRAME | DS_SETFOREGROUND | WS_MINIMIZEBOX | WS_VISIBLE |
- WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU
-EXSTYLE WS_EX_CONTROLPARENT
-CAPTION "Apache Service Monitor"
-FONT 8, "MS Sans Serif"
-BEGIN
- DEFPUSHBUTTON "&OK",IDOK,298,49,50,14
- LTEXT "Service St&atus :",IDC_SSTATUS,3,40,272,8
- LISTBOX IDL_SERVICES,2,49,285,73,LBS_OWNERDRAWFIXED |
- LBS_HASSTRINGS | LBS_USETABSTOPS | LBS_NOINTEGRALHEIGHT |
- LBS_DISABLENOSCROLL | WS_VSCROLL | WS_TABSTOP
- LISTBOX IDL_STDOUT,2,124,285,51,LBS_NOINTEGRALHEIGHT |
- LBS_DISABLENOSCROLL | LBS_NOSEL | WS_VSCROLL
- PUSHBUTTON "&Start",IDC_SSTART,298,65,50,14
- PUSHBUTTON "S&top",IDC_SSTOP,298,81,50,14
- PUSHBUTTON "&Restart",IDC_SRESTART,298,97,50,14
- PUSHBUTTON "Ser&vices",IDC_SMANAGER,298,113,50,14
- CONTROL IDB_BMPHEADER,IDC_STATIC,"Static",SS_BITMAP,0,0,349,38
- PUSHBUTTON "&Connect",IDC_SCONNECT,298,129,50,14
- PUSHBUTTON "&Disconnect",IDC_SDISCONN,298,145,50,14
- PUSHBUTTON "E&xit",IDC_SEXIT,298,161,50,14
-END
-
-IDD_DLGCONNECT DIALOGEX 0, 0, 240, 54
-STYLE DS_MODALFRAME | DS_SETFOREGROUND | WS_VISIBLE | WS_CLIPCHILDREN |
- WS_CAPTION | WS_SYSMENU
-EXSTYLE WS_EX_CONTROLPARENT
-CAPTION "Connect To A Remote Computer"
-FONT 8, "MS Sans Serif"
-BEGIN
- LTEXT "Computer &Name:",IDC_LREMOTE,7,4,155,8
- EDITTEXT IDC_COMPUTER,7,14,169,14,ES_AUTOHSCROLL
- DEFPUSHBUTTON "&OK",IDOK,183,14,50,14
- PUSHBUTTON "&Cancel",IDCANCEL,183,34,50,14
- PUSHBUTTON "&Browse",IDC_LBROWSE,7,34,50,14
-END
-
-IDB_BMPSTOP BITMAP DISCARDABLE "sstop.bmp"
-IDB_BMPRUN BITMAP DISCARDABLE "srun.bmp"
-IDB_BMPHEADER BITMAP DISCARDABLE "apache_header.bmp"
-
-STRINGTABLE DISCARDABLE
-BEGIN
- IDS_APMONITORTITLE "Apache Service Monitor"
- IDS_APMONITORCLASS "ApacheServiceMonitorClass"
-END
-
-STRINGTABLE DISCARDABLE
-BEGIN
- IDS_MSG_APPRUNNING "Apache monitor is already started"
- IDS_MSG_ERROR "Error"
- IDS_MSG_RUNNINGALL "Running all Apache services"
- IDS_MSG_RUNNING "Running %d of %d Apache services"
- IDS_MSG_RUNNINGNONE "Running none of %d Apache services"
- IDS_MSG_NOSERVICES "No services installed"
- IDS_MSG_MNUSERVICES "Open &Services"
- IDS_MSG_MNUSHOW "&Open Apache Monitor"
- IDS_MSG_MNUEXIT "E&xit"
- IDS_MSG_SRVSTART "The %s service is starting."
- IDS_MSG_SRVSTARTED "The %s service has started."
- IDS_MSG_SRVSTOP "The %s service is stopping."
- IDS_MSG_SRVSTOPPED "The %s service has stopped."
- IDS_MSG_SRVRESTART "The %s service is restarting."
- IDS_MSG_SRVRESTARTED "The %s service has restarted."
- IDS_MSG_SRVFAILED "The requested operation has failed!"
- IDS_MSG_SSTART "&Start"
- IDS_MSG_SSTOP "S&top"
- IDS_MSG_SRESTART "&Restart"
- IDS_MSG_SERVICES "Ser&vices"
- IDS_MSG_CONNECT "&Connect"
- IDS_MSG_ECONNECT "Unable to connect to the remote registry on %s"
-END
diff --git a/rubbos/app/httpd-2.0.64/support/win32/apache_header.bmp b/rubbos/app/httpd-2.0.64/support/win32/apache_header.bmp
deleted file mode 100644
index 7340fac2..00000000
--- a/rubbos/app/httpd-2.0.64/support/win32/apache_header.bmp
+++ /dev/null
Binary files differ
diff --git a/rubbos/app/httpd-2.0.64/support/win32/aprun.ico b/rubbos/app/httpd-2.0.64/support/win32/aprun.ico
deleted file mode 100644
index dbd58326..00000000
--- a/rubbos/app/httpd-2.0.64/support/win32/aprun.ico
+++ /dev/null
Binary files differ
diff --git a/rubbos/app/httpd-2.0.64/support/win32/apstop.ico b/rubbos/app/httpd-2.0.64/support/win32/apstop.ico
deleted file mode 100644
index fba49ad2..00000000
--- a/rubbos/app/httpd-2.0.64/support/win32/apstop.ico
+++ /dev/null
Binary files differ
diff --git a/rubbos/app/httpd-2.0.64/support/win32/srun.bmp b/rubbos/app/httpd-2.0.64/support/win32/srun.bmp
deleted file mode 100644
index 90ecd46f..00000000
--- a/rubbos/app/httpd-2.0.64/support/win32/srun.bmp
+++ /dev/null
Binary files differ
diff --git a/rubbos/app/httpd-2.0.64/support/win32/sstop.bmp b/rubbos/app/httpd-2.0.64/support/win32/sstop.bmp
deleted file mode 100644
index ba73d87a..00000000
--- a/rubbos/app/httpd-2.0.64/support/win32/sstop.bmp
+++ /dev/null
Binary files differ
diff --git a/rubbos/app/httpd-2.0.64/support/win32/wintty.c b/rubbos/app/httpd-2.0.64/support/win32/wintty.c
deleted file mode 100644
index 21391bdd..00000000
--- a/rubbos/app/httpd-2.0.64/support/win32/wintty.c
+++ /dev/null
@@ -1,375 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/* --------------------------------------------------------------------
- *
- * wintty : a Apache/WinNT support utility for monitoring and
- * reflecting user feedback from the Apache process via
- * stdin/stdout, even as running within the service context.
- *
- * Originally contributed by William Rowe <wrowe covalent.net>
- *
- * Note: this implementation is _very_ experimental, and error handling
- * is far from complete. Using it as a cgi or pipe process allows the
- * programmer to discover if facilities such as reliable piped logs
- * are working as expected, or answer operator prompts that would
- * otherwise be discarded by the service process.
- *
- * Also note the isservice detection semantics, which far exceed any
- * mechanism we have discovered thus far.
- *
- * --------------------------------------------------------------------
- */
-
-#define WIN32_LEAN_AND_MEAN
-
-#if defined(_MSC_VER) && _MSC_VER >= 1400
-#define _CRT_SECURE_NO_DEPRECATE
-#pragma warning(disable: 4996)
-#endif
-
-#include <windows.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-const char *options =
-"\nwintty: a utility for echoing the stdin stream to a new console window,\n"
-"\teven when invoked from within a service (such as the Apache server.)\n"
-"\tAlso reflects the console input back to the stdout stream, allowing\n"
-"\tthe operator to respond to prompts from the context of a service.\n\n"
-"Syntax: %s [opts] [-t \"Window Title\"]\n\n"
-" opts: -c{haracter} or -l{ine} input\n"
-"\t-q{uiet} or -e{cho} input\n"
-"\t-u{nprocessed} or -p{rocessed} input\n"
-"\t-n{owrap} or -w{rap} output lines\n"
-"\t-f{ormatted} or -r{aw} output lines\n"
-"\t-O{output} [number of seconds]\n"
-"\t-v{erbose} error reporting (for debugging)\n"
-"\t-? for this message\n\n";
-
-BOOL verbose = FALSE;
-
-void printerr(char *fmt, ...)
-{
- char str[1024];
- va_list args;
- if (!verbose)
- return;
- va_start(args, fmt);
- wvsprintf(str, fmt, args);
- OutputDebugString(str);
-}
-
-DWORD WINAPI feedback(LPVOID args);
-
-typedef struct feedback_args_t {
- HANDLE in;
- HANDLE out;
-} feedback_args_t;
-
-int main(int argc, char** argv)
-{
- char str[1024], *contitle = NULL;
- HANDLE hproc, thread;
- HANDLE hwinsta = NULL, hsavewinsta;
- HANDLE hdesk = NULL, hsavedesk = NULL;
- HANDLE conin, conout;
- HANDLE hstdin, hstdout, hstderr, hdup;
- feedback_args_t feed;
- DWORD conmode;
- DWORD newinmode = 0, notinmode = 0;
- DWORD newoutmode = 0, notoutmode = 0;
- DWORD tid;
- DWORD len;
- DWORD timeout = INFINITE;
- BOOL isservice = FALSE;
- char *arg0 = argv[0];
-
- while (--argc) {
- ++argv;
- if (**argv == '/' || **argv == '-') {
- switch (tolower((*argv)[1])) {
- case 'c':
- notinmode |= ENABLE_LINE_INPUT; break;
- case 'l':
- newinmode |= ENABLE_LINE_INPUT; break;
- case 'q':
- notinmode |= ENABLE_ECHO_INPUT; break;
- case 'e':
- newinmode |= ENABLE_ECHO_INPUT; break;
- case 'u':
- notinmode |= ENABLE_PROCESSED_INPUT; break;
- case 'p':
- newinmode |= ENABLE_PROCESSED_INPUT; break;
- case 'n':
- notoutmode |= ENABLE_WRAP_AT_EOL_OUTPUT; break;
- case 'w':
- newoutmode |= ENABLE_WRAP_AT_EOL_OUTPUT; break;
- case 'r':
- notoutmode |= ENABLE_PROCESSED_OUTPUT; break;
- case 'f':
- newoutmode |= ENABLE_PROCESSED_OUTPUT; break;
- case 'o':
- if (*(argv + 1) && *(argv + 1)[0] != '-') {
- *(++argv);
- timeout = atoi(*argv) / 1000;
- --argc;
- }
- else {
- timeout = 0;
- }
- break;
- case 'v':
- verbose = TRUE;
- break;
- case 't':
- contitle = *(++argv);
- --argc;
- break;
- case '?':
- printf(options, arg0);
- exit(1);
- default:
- printf("wintty option %s not recognized, use -? for help.\n\n", *argv);
- exit(1);
- }
- }
- else {
- printf("wintty argument %s not understood, use -? for help.\n\n", *argv);
- exit(1);
- }
- }
-
- hproc = GetCurrentProcess();
- hsavewinsta = GetProcessWindowStation();
- if (!hsavewinsta || hsavewinsta == INVALID_HANDLE_VALUE) {
- printerr("GetProcessWindowStation() failed (%d)\n", GetLastError());
- }
- else if (!GetUserObjectInformation(hsavewinsta, UOI_NAME, str, sizeof(str), &len)) {
- printerr("GetUserObjectInfoformation(hWinSta) failed (%d)\n", GetLastError());
- }
- else if (strnicmp(str, "Service-", 8) == 0) {
- printerr("WindowStation Name %s is a service\n", str);
- isservice = TRUE;
- }
- SetLastError(0);
-
- hstdin = GetStdHandle(STD_INPUT_HANDLE);
- if (!hstdin || hstdin == INVALID_HANDLE_VALUE) {
- printerr("GetStdHandle(STD_INPUT_HANDLE) failed (%d)\n",
- GetLastError());
- }
- else if (DuplicateHandle(hproc, hstdin, hproc, &hdup, 0,
- isservice, DUPLICATE_SAME_ACCESS)) {
- CloseHandle(hstdin);
- hstdin = hdup;
- }
- else {
- printerr("DupHandle(stdin [%x]) failed (%d)\n",
- hstdin, GetLastError());
- }
-
- hstdout = GetStdHandle(STD_OUTPUT_HANDLE);
- if (!hstdout || hstdout == INVALID_HANDLE_VALUE) {
- printerr("GetStdHandle(STD_OUTPUT_HANDLE) failed (%d)\n",
- GetLastError());
- }
- else if (DuplicateHandle(hproc, hstdout, hproc, &hdup, 0,
- isservice, DUPLICATE_SAME_ACCESS)) {
- CloseHandle(hstdout);
- hstdout = hdup;
- }
- else {
- printerr("DupHandle(stdout [%x]) failed (%d)\n",
- hstdout, GetLastError());
- }
-
- hstderr = GetStdHandle(STD_ERROR_HANDLE);
- if (!hstderr || hstderr == INVALID_HANDLE_VALUE) {
- printerr("GetStdHandle(STD_ERROR_HANDLE) failed (%d)\n",
- GetLastError());
- }
- else if (DuplicateHandle(hproc, hstderr, hproc, &hdup, 0,
- isservice, DUPLICATE_SAME_ACCESS)) {
- CloseHandle(hstderr);
- hstderr = hdup;
- }
- else {
- printerr("DupHandle(stderr [%x]) failed (%d)\n",
- hstderr, GetLastError());
- }
-
- /* You can't close the console till all the handles above were
- * rescued by DuplicateHandle()
- */
- if (!FreeConsole())
- printerr("FreeConsole() failed (%d)\n", GetLastError());
-
- if (isservice) {
-#ifdef WE_EVER_FIGURE_OUT_WHY_THIS_DOESNT_WORK
- hsavedesk = GetThreadDesktop(GetCurrentThreadId());
- if (!hsavedesk || hsavedesk == INVALID_HANDLE_VALUE) {
- printerr("GetThreadDesktop(GetTID()) failed (%d)\n", GetLastError());
- }
- CloseWindowStation(hwinsta);
- hwinsta = OpenWindowStation("WinSta0", TRUE, MAXIMUM_ALLOWED);
- if (!hwinsta || hwinsta == INVALID_HANDLE_VALUE) {
- printerr("OpenWinSta(WinSta0) failed (%d)\n", GetLastError());
- }
- else if (!SetProcessWindowStation(hwinsta)) {
- printerr("SetProcWinSta(WinSta0) failed (%d)\n", GetLastError());
- }
- hdesk = OpenDesktop("Default", 0, TRUE, MAXIMUM_ALLOWED);
- if (!hdesk || hdesk == INVALID_HANDLE_VALUE) {
- printerr("OpenDesktop(Default) failed (%d)\n", GetLastError());
- }
- else if (!SetThreadDesktop(hdesk)) {
- printerr("SetThreadDesktop(Default) failed (%d)\n", GetLastError());
- }
-#else
- PROCESS_INFORMATION pi;
- STARTUPINFO si;
- DWORD exitcode = 1;
- char appbuff[MAX_PATH];
- char *appname = NULL;
- char *cmdline = GetCommandLine();
-
- if (!GetModuleFileName(NULL, appbuff, sizeof(appbuff))) {
- appname = appbuff;
- }
-
- memset(&si, 0, sizeof(si));
- si.cb = sizeof(si);
- si.dwFlags = STARTF_USESHOWWINDOW
- | STARTF_USESTDHANDLES;
- si.lpDesktop = "WinSta0\\Default";
- si.wShowWindow = 1; /* SW_SHOWNORMAL */
- si.hStdInput = hstdin;
- si.hStdOutput = hstdout;
- si.hStdError = hstderr;
-
- /* Instantly, upon creating the new process, we will close our
- * copies of the handles so our parent isn't confused when the
- * child closes their copy of the handle. Without this action,
- * we would hold a copy of the handle, and the parent would not
- * receive their EOF notification.
- */
- if (CreateProcess(appname, cmdline, NULL, NULL, TRUE,
- CREATE_SUSPENDED | CREATE_NEW_CONSOLE,
- NULL, NULL, &si, &pi)) {
- CloseHandle(si.hStdInput);
- CloseHandle(si.hStdOutput);
- CloseHandle(si.hStdError);
- ResumeThread(pi.hThread);
- CloseHandle(pi.hThread);
- WaitForSingleObject(pi.hProcess, INFINITE);
- GetExitCodeProcess(pi.hProcess, &exitcode);
- CloseHandle(pi.hProcess);
- return exitcode;
- }
- return 1;
-#endif
- }
-
- if (!AllocConsole()) {
- printerr("AllocConsole(Default) failed (%d)\n", GetLastError());
- }
-
- if (contitle && !SetConsoleTitle(contitle)) {
- printerr("SetConsoleTitle() failed (%d)\n", GetLastError());
- }
-
- conout = CreateFile("CONOUT$", GENERIC_READ | GENERIC_WRITE,
- FILE_SHARE_READ | FILE_SHARE_WRITE,
- FALSE, OPEN_EXISTING, 0, NULL);
- if (!conout || conout == INVALID_HANDLE_VALUE) {
- printerr("CreateFile(CONOUT$) failed (%d)\n", GetLastError());
- }
- else if (!GetConsoleMode(conout, &conmode)) {
- printerr("GetConsoleMode(CONOUT) failed (%d)\n", GetLastError());
- }
- else if (!SetConsoleMode(conout, conmode = ((conmode | newoutmode)
- & ~notoutmode))) {
- printerr("SetConsoleMode(CONOUT, 0x%x) failed (%d)\n",
- conmode, GetLastError());
- }
-
- conin = CreateFile("CONIN$", GENERIC_READ | GENERIC_WRITE,
- FILE_SHARE_READ | FILE_SHARE_WRITE,
- FALSE, OPEN_EXISTING, 0, NULL);
- if (!conin || conin == INVALID_HANDLE_VALUE) {
- printerr("CreateFile(CONIN$) failed (%d)\n", GetLastError());
- }
- else if (!GetConsoleMode(conin, &conmode)) {
- printerr("GetConsoleMode(CONIN) failed (%d)\n", GetLastError());
- }
- else if (!SetConsoleMode(conin, conmode = ((conmode | newinmode)
- & ~notinmode))) {
- printerr("SetConsoleMode(CONIN, 0x%x) failed (%d)\n",
- conmode, GetLastError());
- }
-
- feed.in = conin;
- feed.out = hstdout;
- thread = CreateThread(NULL, 0, feedback, (LPVOID)&feed, 0, &tid);
-
- while (ReadFile(hstdin, str, sizeof(str), &len, NULL))
- if (!len || !WriteFile(conout, str, len, &len, NULL))
- break;
-
- printerr("[EOF] from stdin (%d)\n", GetLastError());
-
- CloseHandle(stdout);
- if (!GetConsoleTitle(str, sizeof(str))) {
- printerr("SetConsoleTitle() failed (%d)\n", GetLastError());
- }
- else {
- strcat(str, " - [Finished]");
- if (!SetConsoleTitle(str)) {
- printerr("SetConsoleTitle() failed (%d)\n", GetLastError());
- }
- }
-
- WaitForSingleObject(thread, timeout);
- FreeConsole();
- if (isservice) {
- if (!SetProcessWindowStation(hsavewinsta)) {
- len = GetLastError();
- }
- if (!SetThreadDesktop(hsavedesk)) {
- len = GetLastError();
- }
- CloseDesktop(hdesk);
- CloseWindowStation(hwinsta);
- }
- return 0;
-}
-
-
-DWORD WINAPI feedback(LPVOID arg)
-{
- feedback_args_t *feed = (feedback_args_t*)arg;
- char *str[1024];
- DWORD len;
-
- while (ReadFile(feed->in, str, sizeof(str), &len, NULL))
- if (!len || !WriteFile(feed->out, str, len, &len, NULL))
- break;
-
- printerr("[EOF] from Console (%d)\n", GetLastError());
-
- return 0;
-}
diff --git a/rubbos/app/httpd-2.0.64/support/win32/wintty.dsp b/rubbos/app/httpd-2.0.64/support/win32/wintty.dsp
deleted file mode 100644
index 17e7c33c..00000000
--- a/rubbos/app/httpd-2.0.64/support/win32/wintty.dsp
+++ /dev/null
@@ -1,123 +0,0 @@
-# Microsoft Developer Studio Project File - Name="wintty" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=wintty - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "wintty.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "wintty.mak" CFG="wintty - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "wintty - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "wintty - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "wintty - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /FD /c
-# ADD CPP /nologo /MD /W3 /Zi /O2 /I "../srclib/apr/include" /I "../srclib/apr-util/include" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /Fd"Release/wintty_src" /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib shell32.lib /nologo /subsystem:console
-# ADD LINK32 kernel32.lib user32.lib advapi32.lib shell32.lib /nologo /subsystem:console /debug /opt:ref
-
-!ELSEIF "$(CFG)" == "wintty - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MDd /W3 /EHsc /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /FD /c
-# ADD CPP /nologo /MDd /W3 /EHsc /Zi /Od /I "../srclib/apr/include" /I "../srclib/apr-util/include" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "APR_DECLARE_STATIC" /D "APU_DECLARE_STATIC" /Fd"Debug/wintty_src" /FD /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib shell32.lib /nologo /subsystem:console /incremental:no /debug
-# ADD LINK32 kernel32.lib user32.lib advapi32.lib shell32.lib /nologo /subsystem:console /incremental:no /debug
-
-!ENDIF
-
-# Begin Target
-
-# Name "wintty - Win32 Release"
-# Name "wintty - Win32 Debug"
-# Begin Source File
-
-SOURCE=..\..\build\win32\win32ver.awk
-
-!IF "$(CFG)" == "wintty - Win32 Release"
-
-# PROP Ignore_Default_Tool 1
-# Begin Custom Build - Creating Version Resource
-InputPath=..\..\build\win32\win32ver.awk
-
-".\wintty.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- awk -f ../../build/win32/win32ver.awk wintty.exe "wintty Console Utility" ../../include/ap_release.h > .\wintty.rc
-
-# End Custom Build
-
-!ELSEIF "$(CFG)" == "wintty - Win32 Debug"
-
-# PROP Ignore_Default_Tool 1
-# Begin Custom Build - Creating Version Resource
-InputPath=..\..\build\win32\win32ver.awk
-
-".\wintty.rc" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- awk -f ../../build/win32/win32ver.awk wintty.exe "wintty Console Utility" ../../include/ap_release.h > .\wintty.rc
-
-# End Custom Build
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\wintty.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\wintty.rc
-# End Source File
-# End Target
-# End Project