├── All ├── Implementation │ └── Makefile ├── Makefile.include ├── aix │ └── Makefile.include ├── apollo_m68k │ └── Makefile.include ├── apple │ └── Makefile.include ├── dell │ └── Makefile.include ├── freebsd │ └── Makefile.include ├── hp300 │ └── Makefile.include ├── i86pc-sol2 │ └── Makefile.include ├── isc3.0 │ └── Makefile.include ├── linux │ └── Makefile.include ├── ncr │ └── Makefile.include ├── netbsd │ └── Makefile.include ├── news │ └── Makefile.include ├── next-386 │ └── Makefile.include ├── next-fat │ └── Makefile.include ├── next │ └── Makefile.include ├── osf1 │ └── Makefile.include ├── pyramid │ └── Makefile.include ├── sco │ └── Makefile.include ├── sgi │ └── Makefile.include ├── snake │ └── Makefile.include ├── sun3 │ └── Makefile.include ├── sun4-sol2 │ └── Makefile.include ├── sun4 │ └── Makefile.include ├── ultrix │ └── Makefile.include ├── unisys │ └── Makefile.include ├── unix │ └── Makefile.include ├── uts2 │ └── Makefile.include ├── uts4 │ └── Makefile.include └── vax_ultrix │ └── Makefile.include ├── BUILD ├── BUILD.SH ├── CERN ├── COPYRIGH ├── Daemon ├── CVS │ ├── Entries │ ├── Repository │ ├── Root │ └── Tag └── Implementation │ ├── .cvsignore │ ├── CGIParse.c │ ├── CVS │ ├── Entries │ ├── Repository │ ├── Root │ └── Tag │ ├── CommonMakefile │ ├── DCLServer.c │ ├── HTAAFile.c │ ├── HTAAFile.h │ ├── HTAAFile.html │ ├── HTAAProt.c │ ├── HTAAProt.h │ ├── HTAAProt.html │ ├── HTAAServ.c │ ├── HTAAServ.c.orig │ ├── HTAAServ.h │ ├── HTAAServ.html │ ├── HTACL.c │ ├── HTACL.h │ ├── HTACL.html │ ├── HTAdm.c │ ├── HTAuth.c │ ├── HTAuth.h │ ├── HTAuth.html │ ├── HTCache.c │ ├── HTCache.h │ ├── HTCache.html │ ├── HTCacheInfo.c │ ├── HTConfig.c │ ├── HTConfig.h │ ├── HTConfig.html │ ├── HTDaemon.c │ ├── HTDaemon.c.new │ ├── HTDaemon.h │ ├── HTDaemon.html │ ├── HTGroup.c │ ├── HTGroup.h │ ├── HTGroup.html │ ├── HTImage.c │ ├── HTLex.c │ ├── HTLex.h │ ├── HTLex.html │ ├── HTLoad.c │ ├── HTLog.c │ ├── HTLog.c.orig │ ├── HTLog.h │ ├── HTLog.html │ ├── HTPasswd.c │ ├── HTPasswd.h │ ├── HTPasswd.html │ ├── HTRFC931.c │ ├── HTRequest.c │ ├── HTRequest.h │ ├── HTRequest.html │ ├── HTRetrieve.c │ ├── HTSInit.c │ ├── HTSUtils.c │ ├── HTSUtils.h │ ├── HTSUtils.html │ ├── HTScript.c │ ├── HTScript.h │ ├── HTScript.html │ ├── HTUserInit.c │ ├── HTUserInit.h │ ├── HTUserInit.html │ ├── HTWild.c │ ├── HTWild.h │ ├── HTWild.html │ ├── HTgc.c │ ├── HTims.c │ ├── HTims.h │ ├── HTims.html │ ├── Makefile.in │ ├── README │ ├── Version.make │ ├── cgiutils.c │ ├── install.csh.txt │ └── vms │ ├── .cvsignore │ ├── 00readme.html │ ├── 00readme.txt │ ├── CVS │ ├── Entries │ ├── Repository │ ├── Root │ └── Tag │ ├── HTImage.com │ ├── HTextDummy.c │ ├── build_multinet.com │ ├── build_multinet.com_alpha │ ├── build_ucx.com │ ├── build_ucx.com_alpha │ ├── descrip.mms │ ├── echo.com │ ├── example_httpd.conf │ ├── htdir.com │ ├── http80.conf │ ├── http8001.conf │ ├── inetd80.conf │ ├── inetd_httpd.conf │ ├── localtime.pp │ ├── query.com │ ├── queryvms.c │ ├── run_http80.com │ ├── run_http8001.com │ ├── setup.com │ ├── spawninit.com │ ├── start_http80.com │ ├── start_http8001.com │ ├── submit_http80.com │ ├── submit_http8001.com │ ├── welcome.pp │ └── wfebgopher.pp ├── Library ├── CVS │ ├── Entries │ ├── Repository │ ├── Root │ └── Tag └── Implementation │ ├── .cvsignore │ ├── CVS │ ├── Entries │ ├── Repository │ ├── Root │ └── Tag │ ├── CommonMakefile │ ├── HTAABrow.c │ ├── HTAABrow.h │ ├── HTAABrow.html │ ├── HTAAUtil.c │ ├── HTAAUtil.h │ ├── HTAAUtil.html │ ├── HTAccess.c │ ├── HTAccess.c.orig │ ├── HTAccess.h │ ├── HTAccess.html │ ├── HTAlert.c │ ├── HTAlert.h │ ├── HTAlert.html │ ├── HTAnchor.c │ ├── HTAnchor.h │ ├── HTAnchor.html │ ├── HTAssoc.c │ ├── HTAssoc.h │ ├── HTAssoc.html │ ├── HTAtom.c │ ├── HTAtom.h │ ├── HTAtom.html │ ├── HTBTree.c │ ├── HTBTree.h │ ├── HTBTree.html │ ├── HTChunk.c │ ├── HTChunk.h │ ├── HTChunk.html │ ├── HTDescript.c │ ├── HTDescript.h │ ├── HTDescript.html │ ├── HTDirBrw.c │ ├── HTDirBrw.h │ ├── HTDirBrw.html │ ├── HTError.c │ ├── HTError.h │ ├── HTError.html │ ├── HTErrorMsg.c │ ├── HTFTP.c │ ├── HTFTP.h │ ├── HTFTP.html │ ├── HTFWriter.c │ ├── HTFWriter.h │ ├── HTFWriter.html │ ├── HTFile.c │ ├── HTFile.h │ ├── HTFile.html │ ├── HTFormat.c │ ├── HTFormat.h │ ├── HTFormat.html │ ├── HTGopher.c │ ├── HTGopher.h │ ├── HTGopher.html │ ├── HTGuess.c │ ├── HTGuess.h │ ├── HTGuess.html │ ├── HTHistory.c │ ├── HTHistory.h │ ├── HTHistory.html │ ├── HTIcons.c │ ├── HTIcons.h │ ├── HTIcons.html │ ├── HTInit.c │ ├── HTInit.h │ ├── HTInit.html │ ├── HTList.c │ ├── HTList.h │ ├── HTList.html │ ├── HTMIME.c │ ├── HTMIME.h │ ├── HTMIME.html │ ├── HTML.c │ ├── HTML.h │ ├── HTML.html │ ├── HTMLDTD.c │ ├── HTMLDTD.html │ ├── HTMLGen.c │ ├── HTMLGen.h │ ├── HTMLGen.html │ ├── HTMLPDTD.c │ ├── HTMLPDTD.h │ ├── HTMLPDTD.html │ ├── HTMulti.c │ ├── HTMulti.h │ ├── HTMulti.html │ ├── HTNews.c │ ├── HTNews.h │ ├── HTNews.html │ ├── HTParse.c │ ├── HTParse.h │ ├── HTParse.html │ ├── HTPlain.c │ ├── HTPlain.h │ ├── HTPlain.html │ ├── HTRules.c │ ├── HTRules.h │ ├── HTRules.html │ ├── HTStream.h │ ├── HTStream.html │ ├── HTString.c │ ├── HTString.h │ ├── HTString.html │ ├── HTStyle.c │ ├── HTStyle.h │ ├── HTStyle.html │ ├── HTTCP.c │ ├── HTTCP.h │ ├── HTTCP.html │ ├── HTTP.c │ ├── HTTP.h │ ├── HTTP.html │ ├── HTTeXGen.c │ ├── HTTeXGen.h │ ├── HTTeXGen.html │ ├── HTTee.c │ ├── HTTee.h │ ├── HTTee.html │ ├── HTTelnet.c │ ├── HTTelnet.h │ ├── HTTelnet.html │ ├── HTUU.c │ ├── HTUU.h │ ├── HTUU.html │ ├── HTUtils.h │ ├── HTUtils.html │ ├── HTWAIS.c │ ├── HTWAIS.h │ ├── HTWAIS.html │ ├── HTWSRC.c │ ├── HTWSRC.h │ ├── HTWSRC.html │ ├── HTWriter.c │ ├── HTWriter.c.orig │ ├── HTWriter.c.patch │ ├── HTWriter.c.patch2 │ ├── HTWriter.c.patch2~ │ ├── HTWriter.c.patch~ │ ├── HTWriter.c.rej │ ├── HTWriter.c.rej.orig │ ├── HTWriter.h │ ├── HTWriter.html │ ├── HText.h │ ├── HText.html │ ├── Makefile │ ├── Overview.html │ ├── README │ ├── SGML.c │ ├── SGML.h │ ├── SGML.html │ ├── Version.make │ ├── WWW.html │ ├── sysdep.html │ ├── tcp.h │ ├── tcp.html │ └── vms │ ├── COPYING.LIB │ ├── CVS │ ├── Entries │ ├── Repository │ ├── Root │ └── Tag │ ├── HTVMSUtils.c │ ├── HTVMSUtils.h │ ├── build_multinet.com │ ├── build_multinet.com_alpha │ ├── build_ucx.com │ ├── build_ucx.com_alpha │ ├── crypt.c │ ├── crypt_util.c │ ├── descrip.mms │ ├── dirent.c │ ├── dirent.h │ ├── getline.c │ ├── getpass.c │ ├── grpread.c │ ├── multinet.opt │ ├── multinet.opt_alpha │ ├── patchlevel.h │ ├── sys_dirent.h │ ├── ucx.opt │ ├── ucx.opt_alpha │ └── ufc-crypt.h ├── Makefile ├── README ├── README-SOCKS └── server_root ├── config ├── all.conf ├── caching.conf ├── httpd.conf ├── prot.conf └── proxy.conf └── icons ├── back.xbm ├── binary.xbm ├── binhex.xbm ├── blank.xbm ├── compressed.xbm ├── dir.gif ├── directory.xbm ├── doc.gif ├── doc.xbm ├── dummy.xbm ├── ftp.xbm ├── gzip.xbm ├── image.xbm ├── index.xbm ├── index2.xbm ├── movie.xbm ├── sound.xbm ├── tar.xbm ├── telnet.xbm ├── text.xbm ├── unknown.doc.xbm ├── unknown.old.xbm ├── unknown.xbm └── uu.xbm /All/Makefile.include: -------------------------------------------------------------------------------- 1 | # (c) COPYRIGHT MIT 1995. 2 | # Please first read the full copyright statement in the file COPYRIGH. 3 | # 4 | # An error occured in the BUILD script. If you are using this file, 5 | # then you have forgotten to include a definition of the machine you 6 | # are working on 7 | # 8 | anything : 9 | @echo 10 | @echo "The environment variable WWW_MACH could not be set to the" 11 | @echo "architecture code for the machine you are working on." 12 | @echo "This is normally due to that the BUILD script could not" 13 | @echo "figure out your platform." 14 | @echo 15 | @echo "Please read how to modify the BUILD script in the README file" 16 | @echo 17 | @echo "If you have problems or want to send back your modifications" 18 | @echo "then please contact ." 19 | @echo 20 | @echo "Online documentation is available from " 21 | @echo 22 | exit -1 23 | 24 | -------------------------------------------------------------------------------- /All/aix/Makefile.include: -------------------------------------------------------------------------------- 1 | # Make WWW under unix for rs6000 with no gcc 2 | # 3 | 4 | # For W3 distribution, machine type for subdirectories 5 | WWW_MACH = rs6000 6 | 7 | # For ASIS 8 | ASIS_MACH = ibm-rs6000/aix-3.2 9 | 10 | # Directory for installed binary: 11 | BINDIR = /usr/local/bin 12 | 13 | # The AIX compiler does not define unix... AIX will do it and avoid realloc bug 14 | 15 | CC = cc 16 | CFLAGS = -g -DDEBUG -D_BSD -D_BSD_INCLUDES 17 | LFLAGS = 18 | 19 | #_________________ OK if normal W3 distribution 20 | # Where is the WWW source root? 21 | WWW = ../.. 22 | 23 | # Where should temporary (object) files go? 24 | # It MUST go in the source tree for rs6000, as cc doesn't have a working 25 | # -o option! (what a crock..) 26 | WTMP = $(WWW) 27 | 28 | # Where is the W3 object library? 29 | LIBDIR = /usr/local/lib 30 | 31 | 32 | # 33 | # WHEN COMPILING WITH DIRECT WAIS SUPPORT: 34 | # 35 | # Uncomment these six lines (and edit them, if necessary). 36 | # 37 | # WAIS = ../../../freeWAIS 38 | # WAISLIB = $(WAIS)/bin/client.a $(WAIS)/bin/wais.a 39 | # MATHLIB = -lm 40 | # WAISINC = -I$(WAIS)/include 41 | # WAISCFLAGS = -DHT_DIRECT_WAIS 42 | # HTWAIS = $(WTMP)/Library/$(WWW_MACH)/HTWAIS.o 43 | 44 | -------------------------------------------------------------------------------- /All/apollo_m68k/Makefile.include: -------------------------------------------------------------------------------- 1 | # Make WWW for apollo NOTE WWW macro changed for unwritable source tree ** 2 | # 3 | 4 | # For W3 distribution, machine type for subdirectories 5 | WWW_MACH = apollo_m68k 6 | 7 | # For ASIS installation, the ASIS code for the machine/os 8 | ASIS_MACH = apollo-68k/sr-10.3 9 | 10 | 11 | CFLAGS = -g -DDEBUG 12 | LFLAGS = 13 | CC = cc 14 | LFLAGS = 15 | 16 | # Directory for installed binary: 17 | BINDIR = /usr/local/bin 18 | 19 | 20 | 21 | #_________________ OK if normal W3 distribution 22 | # Where is the WWW source root? 23 | #WWW = ../../.. 24 | WWW = /user/timbl/hypertext/WWW 25 | 26 | # Where should temporary (object) files go? 27 | WTMP = ../.. 28 | 29 | 30 | # Where is the W3 object library? 31 | # LIBDIR = $(WWW)/Library/Implementation/$(WWW_MACH) 32 | LIBDIR = /tmp/WWWLibrary_Build 33 | 34 | 35 | # 36 | # WHEN COMPILING WITH DIRECT WAIS SUPPORT: 37 | # 38 | # Uncomment these six lines (and edit them, if necessary). 39 | # 40 | # WAIS = ../../../freeWAIS 41 | # WAISLIB = $(WAIS)/bin/client.a $(WAIS)/bin/wais.a 42 | # MATHLIB = -lm 43 | # WAISINC = -I$(WAIS)/include 44 | # WAISCFLAGS = -DHT_DIRECT_WAIS 45 | # HTWAIS = $(WTMP)/Library/$(WWW_MACH)/HTWAIS.o 46 | 47 | -------------------------------------------------------------------------------- /All/apple/Makefile.include: -------------------------------------------------------------------------------- 1 | # Make WWW under A/UX, Apple UNIX, SVR2 and BSD 2 | # Use this as a template 3 | 4 | # For W3 distribution, machine type for subdirectories 5 | WWW_MACH = aux 6 | 7 | # The ASIS repository's name for the machine we are on 8 | ASIS_MACH = hardware/os 9 | 10 | 11 | CFLAGS = -DDEBUG -D__BSD__ -D_AUX 12 | LFLAGS = 13 | CC = cc 14 | 15 | # Directory for installed binary: 16 | BINDIR = /usr/local/bin 17 | 18 | # Where is the W3 object library to be installed (not normally done)? 19 | LIBDIR = $(WWW)/Library/Implementation/$(WWW_MACH) 20 | 21 | #_________________ OK if normal W3 distribution 22 | # Where is the WWW source root? 23 | WWW = ../.. 24 | 25 | # Where should temporary (object) files go? 26 | WTMP = ../.. 27 | 28 | 29 | 30 | # 31 | # WHEN COMPILING WITH DIRECT WAIS SUPPORT: 32 | # 33 | # Uncomment these six lines (and edit them, if necessary). 34 | # 35 | # WAIS = ../../../freeWAIS 36 | # WAISLIB = $(WAIS)/bin/client.a $(WAIS)/bin/wais.a 37 | # MATHLIB = -lm 38 | # WAISINC = -I$(WAIS)/include 39 | # WAISCFLAGS = -DHT_DIRECT_WAIS 40 | # HTWAIS = $(WTMP)/Library/$(WWW_MACH)/HTWAIS.o 41 | 42 | -------------------------------------------------------------------------------- /All/dell/Makefile.include: -------------------------------------------------------------------------------- 1 | # Make WWW under unix for a.n.other unix system (bsd) 2 | # Use this as a template 3 | 4 | # For W3 distribution, machine type for subdirectories 5 | WWW_MACH = dell 6 | 7 | # The ASIS repository's name for the machine we are on 8 | ASIS_MACH = hardware/os 9 | 10 | 11 | CFLAGS = -DDEBUG -D__svr4__ -DPOSIXWAIT 12 | LFLAGS = -lresolv -lnsl -lsocket -ldl 13 | CC = cc 14 | 15 | # Directory for installed binary: 16 | BINDIR = /usr/local/bin 17 | 18 | # Where is the W3 object library to be installed (not normally done)? 19 | LIBDIR = $(WWW)/Library/Implementation/$(WWW_MACH) 20 | 21 | #_________________ OK if normal W3 distribution 22 | # Where is the WWW source root? 23 | WWW = ../.. 24 | 25 | # Where should temporary (object) files go? 26 | WTMP = ../.. 27 | 28 | 29 | 30 | # 31 | # WHEN COMPILING WITH DIRECT WAIS SUPPORT: 32 | # 33 | # Uncomment these six lines (and edit them, if necessary). 34 | # 35 | # WAIS = ../../../freeWAIS 36 | # WAISLIB = $(WAIS)/bin/client.a $(WAIS)/bin/wais.a 37 | # MATHLIB = -lm 38 | # WAISINC = -I$(WAIS)/include 39 | # WAISCFLAGS = -DHT_DIRECT_WAIS 40 | # HTWAIS = $(WTMP)/Library/$(WWW_MACH)/HTWAIS.o 41 | -------------------------------------------------------------------------------- /All/freebsd/Makefile.include: -------------------------------------------------------------------------------- 1 | # Make WWW under unix for a.n.other unix system (bsd) 2 | # Use this as a template 3 | 4 | # For W3 distribution, machine type for subdirectories 5 | WWW_MACH = freebsd 6 | 7 | CFLAGS += -DDEBUG -D__BSD__ 8 | LFLAGS = 9 | 10 | # Directory for installed binary: 11 | BINDIR = /usr/local/bin 12 | 13 | # Where is the W3 object library to be installed (not normally done)? 14 | LIBDIR = $(WWW)/Library/Implementation/$(WWW_MACH) 15 | 16 | #_________________ OK if normal W3 distribution 17 | # Where is the WWW source root? 18 | WWW = ../.. 19 | 20 | # Where should temporary (object) files go? 21 | WTMP = ../.. 22 | 23 | # 24 | # WHEN COMPILING WITH DIRECT WAIS SUPPORT: 25 | # 26 | # Uncomment these six lines (and edit them, if necessary). 27 | # 28 | # WAIS = ../../../freeWAIS 29 | # WAISLIB = $(WAIS)/bin/client.a $(WAIS)/bin/wais.a 30 | # MATHLIB = -lm 31 | # WAISINC = -I$(WAIS)/include 32 | # WAISCFLAGS = -DHT_DIRECT_WAIS 33 | # HTWAIS = $(WTMP)/Library/$(WWW_MACH)/HTWAIS.o 34 | -------------------------------------------------------------------------------- /All/hp300/Makefile.include: -------------------------------------------------------------------------------- 1 | # Make WWW under unix for HP 300 or 400 using cc 2 | # 3 | 4 | # Options for cc 5 | # CC = cc 6 | # CFLAGS = -g 7 | # CFLAGS = -Aa -g -D_HPUX_SOURCE -Dunix 8 | 9 | # Options for gcc 10 | CC = gcc 11 | CFLAGS = -g 12 | 13 | # Link with BSD library for getwd() 14 | LFLAGS = -lBSD 15 | 16 | # Directory for installed binary: 17 | BINDIR = /usr/local/bin 18 | 19 | 20 | #_________________ OK if normal W3 distribution 21 | # Where is the WWW source root? 22 | WWW = ../.. 23 | 24 | # Where should temporary (object) files go? 25 | WTMP = ../.. 26 | 27 | 28 | # Where is the W3 object library? 29 | LIBDIR = $(WWW)/Library/Implementation/$(WWW_MACH) 30 | 31 | 32 | # 33 | # WHEN COMPILING WITH DIRECT WAIS SUPPORT: 34 | # 35 | # Uncomment these six lines (and edit them, if necessary). 36 | # 37 | # WAIS = ../../../freeWAIS-0.3 38 | # WAISLIB = $(WAIS)/bin/client.a $(WAIS)/bin/wais.a 39 | # MATHLIB = -lm 40 | # WAISINC = -I$(WAIS)/ir 41 | # WAISCFLAGS = -DDIRECT_WAIS 42 | # HTWAIS = $(WTMP)/Library/$(WWW_MACH)/HTWAIS.o 43 | 44 | 45 | -------------------------------------------------------------------------------- /All/i86pc-sol2/Makefile.include: -------------------------------------------------------------------------------- 1 | # Make WWW under unix for solaris x86 2 | # ----------------------------------- 3 | # 4 | 5 | CC = cc 6 | CFLAGS = -DSOLARIS -g -D__svr4__ -DPOSIXWAIT 7 | LFLAGS = -lresolv -lnsl -lsocket -ldl 8 | 9 | # Directory for installed binary: 10 | # BINDIR = /opt/bin 11 | BINDIR = /usr/local/bin 12 | 13 | #_________________ OK if normal W3 distribution 14 | # Where is the WWW source root? 15 | WWW = ../.. 16 | 17 | # Where should temporary (object) files go? 18 | WTMP = ../.. 19 | 20 | # Where is the W3 object library? 21 | LIBDIR = $(WWW)/Library/Implementation/$(WWW_MACH):/usr/lib 22 | 23 | # 24 | # WHEN COMPILING WITH DIRECT WAIS SUPPORT: 25 | # 26 | # Uncomment these six lines (and edit them, if necessary). 27 | # 28 | # WAIS = ../../../freeWAIS 29 | # WAISLIB = $(WAIS)/bin/client.a $(WAIS)/bin/wais.a 30 | # MATHLIB = -lm 31 | # WAISINC = -I$(WAIS)/include 32 | # WAISCFLAGS = -DHT_DIRECT_WAIS 33 | # HTWAIS = $(WTMP)/Library/$(WWW_MACH)/HTWAIS.o 34 | 35 | -------------------------------------------------------------------------------- /All/isc3.0/Makefile.include: -------------------------------------------------------------------------------- 1 | # Make WWW under isc3.0 for Interactive/Sunsoft 3.0 Unix (SysVr3.2) 2 | # Use this as a template 3 | 4 | # For W3 distribution, machine type for subdirectories 5 | WWW_MACH = isc3.0 6 | 7 | CC = gcc 8 | 9 | CFLAGS = -DISC3 -D_SYSV3 -D_POSIX_SOURCE -DPOSIX_JC 10 | # CFLAGS = -O -DISC3 11 | 12 | LFLAGS = -linet -lcposix 13 | # LFLAGS = -linet -lcposix -s 14 | 15 | # Directory for installed binary: 16 | BINDIR = /etc/httpd 17 | 18 | # Where is the W3 object library to be installed (not normally done)? 19 | LIBDIR = $(WWW)/Library/Implementation/$(WWW_MACH) 20 | 21 | #_________________ OK if normal W3 distribution 22 | # Where is the WWW source root? 23 | WWW = ../.. 24 | 25 | # Where should temporary (object) files go? 26 | WTMP = ../.. 27 | 28 | # 29 | # WHEN COMPILING WITH DIRECT WAIS SUPPORT: 30 | # 31 | # Uncomment these six lines (and edit them, if necessary). 32 | # 33 | # WAIS = ../../../freeWAIS 34 | # WAISLIB = $(WAIS)/bin/client.a $(WAIS)/bin/wais.a 35 | # MATHLIB = -lm 36 | # WAISINC = -I$(WAIS)/include 37 | # WAISCFLAGS = -DHT_DIRECT_WAIS 38 | # HTWAIS = $(WTMP)/Library/$(WWW_MACH)/HTWAIS.o 39 | 40 | -------------------------------------------------------------------------------- /All/linux/Makefile.include: -------------------------------------------------------------------------------- 1 | # Make WWW under unix for linux 2 | # 3 | 4 | # For W3 distribution, machine type for subdirectories 5 | WWW_MACH = linux 6 | 7 | CFLAGS = -g -Wall -DPOSIXWAIT 8 | LFLAGS = 9 | CC = cc 10 | 11 | # Directory for installed binary: 12 | BINDIR = /usr/local/bin 13 | 14 | # Where is the W3 object library to be installed (not normally done)? 15 | LIBDIR = $(WWW)/Library/Implementation/$(WWW_MACH) 16 | 17 | #_________________ OK if normal W3 distribution 18 | # Where is the WWW source root? 19 | WWW = ../.. 20 | 21 | # Where should temporary (object) files go? 22 | WTMP = ../.. 23 | 24 | 25 | # 26 | # WHEN COMPILING WITH DIRECT WAIS SUPPORT: 27 | # 28 | # Uncomment these six lines (and edit them, if necessary). 29 | # 30 | # WAIS = ../../../freeWAIS 31 | # WAISLIB = $(WAIS)/bin/client.a $(WAIS)/bin/wais.a 32 | # MATHLIB = -lm 33 | # WAISINC = -I$(WAIS)/include 34 | # WAISCFLAGS = -DHT_DIRECT_WAIS 35 | # HTWAIS = $(WTMP)/Library/$(WWW_MACH)/HTWAIS.o 36 | 37 | -------------------------------------------------------------------------------- /All/ncr/Makefile.include: -------------------------------------------------------------------------------- 1 | # Make WWW under unix for NCR 3000 2 | # 3 | 4 | # For W3 distribution, machine type for subdirectories 5 | WWW_MACH = ncr 6 | 7 | # The ASIS repository's name for the machine we are on 8 | ASIS_MACH = ncr 9 | # Not important - changing all the time! 10 | 11 | CFLAGS = -D__svr4__ -DPOSIXWAIT -Hnocopyr 12 | 13 | LFLAGS = -lnsl -lsocket -lresolv 14 | CC = cc 15 | 16 | # Directory for installed binary: 17 | # BINDIR = /opt/bin 18 | BINDIR = /local/cern-httpd 19 | 20 | #_________________ OK if normal W3 distribution 21 | # Where is the WWW source root? 22 | WWW = ../.. 23 | 24 | # Where should temporary (object) files go? 25 | WTMP = ../.. 26 | 27 | # Where is the W3 object library? 28 | LIBDIR = $(WWW)/Library/Implementation/$(WWW_MACH):/usr/lib 29 | 30 | # 31 | # WHEN COMPILING WITH DIRECT WAIS SUPPORT: 32 | # 33 | # Uncomment these six lines (and edit them, if necessary). 34 | # 35 | # WAIS = ../../../freeWAIS 36 | # WAISLIB = $(WAIS)/$(WWW_MACH)/client.a $(WAIS)/$(WWW_MACH)/wais.a 37 | # MATHLIB = -lm 38 | # WAISINC = -I$(WAIS)/include 39 | # WAISCFLAGS = -DHT_DIRECT_WAIS 40 | # HTWAIS = $(WTMP)/Library/$(WWW_MACH)/HTWAIS.o 41 | 42 | -------------------------------------------------------------------------------- /All/netbsd/Makefile.include: -------------------------------------------------------------------------------- 1 | # Make WWW under unix for a.n.other unix system (bsd) 2 | # Use this as a template 3 | 4 | # For W3 distribution, machine type for subdirectories 5 | WWW_MACH = netbsd 6 | 7 | CFLAGS = -DDEBUG -D__BSD__ 8 | LFLAGS = 9 | CC = cc 10 | 11 | # Directory for installed binary: 12 | BINDIR = /usr/local/bin 13 | 14 | # Where is the W3 object library to be installed (not normally done)? 15 | LIBDIR = $(WWW)/Library/Implementation/$(WWW_MACH) 16 | 17 | #_________________ OK if normal W3 distribution 18 | # Where is the WWW source root? 19 | WWW = ../.. 20 | 21 | # Where should temporary (object) files go? 22 | WTMP = ../.. 23 | 24 | 25 | 26 | # 27 | # WHEN COMPILING WITH DIRECT WAIS SUPPORT: 28 | # 29 | # Uncomment these six lines (and edit them, if necessary). 30 | # 31 | # WAIS = ../../../freeWAIS 32 | # WAISLIB = $(WAIS)/bin/client.a $(WAIS)/bin/wais.a 33 | # MATHLIB = -lm 34 | # WAISINC = -I$(WAIS)/include 35 | # WAISCFLAGS = -DHT_DIRECT_WAIS 36 | # HTWAIS = $(WTMP)/Library/$(WWW_MACH)/HTWAIS.o 37 | 38 | -------------------------------------------------------------------------------- /All/news/Makefile.include: -------------------------------------------------------------------------------- 1 | # Make WWW under unix for a.n.other unix system (bsd) 2 | # Use this as a template 3 | 4 | # For W3 distribution, machine type for subdirectories 5 | WWW_MACH = news 6 | 7 | CC = gcc 8 | CFLAGS = -DDEBUG -D__BSD__ 9 | LFLAGS = 10 | 11 | # Directory for installed binary: 12 | BINDIR = /usr/local/bin 13 | 14 | # Where is the W3 object library to be installed (not normally done)? 15 | LIBDIR = $(WWW)/Library/Implementation/$(WWW_MACH) 16 | 17 | #_________________ OK if normal W3 distribution 18 | # Where is the WWW source root? 19 | WWW = ../.. 20 | 21 | # Where should temporary (object) files go? 22 | WTMP = ../.. 23 | 24 | # 25 | # WHEN COMPILING WITH DIRECT WAIS SUPPORT: 26 | # 27 | # Uncomment these six lines (and edit them, if necessary). 28 | # 29 | # WAIS = ../../../freeWAIS 30 | # WAISLIB = $(WAIS)/bin/client.a $(WAIS)/bin/wais.a 31 | # MATHLIB = -lm 32 | # WAISINC = -I$(WAIS)/include 33 | # WAISCFLAGS = -DHT_DIRECT_WAIS 34 | # HTWAIS = $(WTMP)/Library/$(WWW_MACH)/HTWAIS.o 35 | 36 | -------------------------------------------------------------------------------- /All/next-386/Makefile.include: -------------------------------------------------------------------------------- 1 | # Platform-specific Makefile for W3 Library (NeXT-386) 2 | # ----------------------------------------- 3 | # 4 | 5 | WWW = ../.. 6 | 7 | # Where should temporary (object) files go? Normally, WTMP = $(WWW) 8 | WTMP = $(WWW) 9 | 10 | # For MACH 3.0 it seems -bsd is needed to order to define errno 11 | # in /usr/include/bsd/sys/errno.h. But __STRICT_BSD__ is needed for 12 | # errno. 13 | 14 | # CFLAGS = -Wall -g 15 | CFLAGS = -Wall -g -arch m68k -arch i386 16 | 17 | CC = cc 18 | # For testing memory leaks only! Use /NextDeveloper/MallocDebug app 19 | # LFLAGS = -lMallocDebug 20 | LFLAGS = 21 | 22 | #WWW_MACH = next 23 | ASIS_MACH = next/2.0 24 | 25 | 26 | # Directory for installed binary: 27 | LIBDIR = /usr/local/lib 28 | 29 | 30 | # 31 | # WHEN COMPILING WITH DIRECT WAIS SUPPORT: 32 | # 33 | # Uncomment these six lines (and edit them, if necessary). 34 | # 35 | # WAIS = ../../../freeWAIS 36 | # WAISLIB = $(WAIS)/bin/client.a $(WAIS)/bin/wais.a 37 | # MATHLIB = -lm 38 | # WAISINC = -I$(WAIS)/include 39 | # WAISCFLAGS = -DHT_DIRECT_WAIS 40 | # HTWAIS = $(WTMP)/Library/$(WWW_MACH)/HTWAIS.o 41 | 42 | -------------------------------------------------------------------------------- /All/next-fat/Makefile.include: -------------------------------------------------------------------------------- 1 | # Platform-specific Makefile for W3 Library (NeXT-386) 2 | # ----------------------------------------- 3 | # 4 | # Library compiled with fudge to alow XMOSAIC to 5 | # pick up binary files... for now. 6 | 7 | WWW = ../.. 8 | 9 | # Where should temporary (object) files go? Normally, WTMP = $(WWW) 10 | #WTMP = /tmp 11 | WTMP = $(WWW) 12 | 13 | # For MACH 3.0 it seems -bsd is needed to order to define errno 14 | # in /usr/include/bsd/sys/errno.h. But __STRICT_BSD__ is needed for 15 | # errno. 16 | 17 | # CFLAGS = -Wall -g -DXMOSAIC_HACK 18 | CFLAGS = -Wall -g -DXMOSAIC_HACK -arch m68k -arch i386 19 | 20 | CC = cc 21 | # For testing memory leaks only! Use /NextDeveloper/MallocDebug app 22 | LFLAGS = -lMallocDebug 23 | #LFLAGS = 24 | 25 | #WWW_MACH = next 26 | ASIS_MACH = next/2.0 27 | 28 | 29 | # Directory for installed binary: 30 | LIBDIR = /usr/local/lib 31 | 32 | 33 | # 34 | # WHEN COMPILING WITH DIRECT WAIS SUPPORT: 35 | # 36 | # Uncomment these six lines (and edit them, if necessary). 37 | # 38 | # WAIS = ../../../freeWAIS 39 | # WAISLIB = $(WAIS)/bin/client.a $(WAIS)/bin/wais.a 40 | # MATHLIB = -lm 41 | # WAISINC = -I$(WAIS)/include 42 | # WAISCFLAGS = -DHT_DIRECT_WAIS 43 | # HTWAIS = $(WTMP)/Library/$(WWW_MACH)/HTWAIS.o 44 | 45 | -------------------------------------------------------------------------------- /All/next/Makefile.include: -------------------------------------------------------------------------------- 1 | # Platform-specific Makefile for W3 Library (NeXT) 2 | # ----------------------------------------- 3 | # 4 | 5 | WWW = ../.. 6 | 7 | # Where should temporary (object) files go? Normally, WTMP = $(WWW) 8 | #WTMP = /tmp 9 | WTMP = $(WWW) 10 | 11 | # For MACH 3.0 it seems -bsd is needed to order to define errno 12 | # in /usr/include/bsd/sys/errno.h. But __STRICT_BSD__ is needed for 13 | # errno. 14 | 15 | CC = cc 16 | CFLAGS = -Wall -g 17 | # CFLAGS = -Wall -g -arch m68k -arch i386 18 | 19 | # For testing memory leaks only! Use /NextDeveloper/MallocDebug app 20 | # LFLAGS = -lMallocDebug 21 | LFLAGS = 22 | 23 | #WWW_MACH = next 24 | ASIS_MACH = next/2.0 25 | 26 | # Directory for installed binary: 27 | LIBDIR = /usr/local/lib 28 | 29 | # 30 | # WHEN COMPILING WITH DIRECT WAIS SUPPORT: 31 | # 32 | # Uncomment these six lines (and edit them, if necessary). 33 | # 34 | # WAIS = ../../../freeWAIS 35 | # WAISLIB = $(WAIS)/bin/client.a $(WAIS)/bin/wais.a 36 | # MATHLIB = -lm 37 | # WAISINC = -I$(WAIS)/include 38 | # WAISCFLAGS = -DHT_DIRECT_WAIS 39 | # HTWAIS = $(WTMP)/Library/$(WWW_MACH)/HTWAIS.o 40 | # WAISCFLAGS = -DHT_DIRECT_WAIS 41 | # HTWAIS = $(WTMP)/Library/$(WWW_MACH)/HTWAIS.o 42 | 43 | -------------------------------------------------------------------------------- /All/osf1/Makefile.include: -------------------------------------------------------------------------------- 1 | # Platform-specific Makefile for W3 Library (AXP OSF1) 2 | # ----------------------------------------- 3 | # 4 | 5 | WWW = ../.. 6 | 7 | # Where should temporary (object) files go? 8 | WTMP = ../.. 9 | 10 | # Options for CC 11 | CC = cc 12 | CFLAGS = -g 13 | # CFLAGS = -g -non_shared 14 | LFLAGS = 15 | 16 | # Options for GCC 17 | # CC = gcc 18 | # CFLAGS = -Wall -g 19 | # CFLAGS = -Wall -g -static 20 | # LFLAGS = 21 | 22 | #ASIS_MACH = dec-station/ultrix-4.2 23 | #WWW_MACH = OSF1 24 | 25 | # Directory for installed binary: 26 | LIBDIR = /usr/local/lib 27 | 28 | # 29 | # WHEN COMPILING WITH DIRECT WAIS SUPPORT: 30 | # 31 | # Uncomment these six lines (and edit them, if necessary). 32 | # 33 | # WAIS = ../../../freeWAIS 34 | # WAISLIB = $(WAIS)/bin/client.a $(WAIS)/bin/wais.a 35 | # MATHLIB = -lm 36 | # WAISINC = -I$(WAIS)/include 37 | # WAISCFLAGS = -DHT_DIRECT_WAIS 38 | # HTWAIS = $(WTMP)/Library/$(WWW_MACH)/HTWAIS.o 39 | 40 | -------------------------------------------------------------------------------- /All/pyramid/Makefile.include: -------------------------------------------------------------------------------- 1 | # Make WWW under unix for Pyramid MIServer-S (aka AT&T 7000 R3) 2 | # 3 | 4 | # For W3 distribution, machine type for subdirectories 5 | WWW_MACH = pyramid 6 | 7 | # The ASIS repository's name for the machine we are on 8 | ASIS_MACH = pyramid 9 | # Not important - changing all the time! 10 | 11 | CFLAGS = -D__svr4__ -Dpyramid -DPOSIXWAIT 12 | 13 | LFLAGS = -lnsl -lsocket -lresolv 14 | CC = cc 15 | 16 | # Directory for installed binary: 17 | # BINDIR = /opt/bin 18 | BINDIR = /local/cern-httpd 19 | 20 | #_________________ OK if normal W3 distribution 21 | # Where is the WWW source root? 22 | WWW = ../.. 23 | 24 | # Where should temporary (object) files go? 25 | WTMP = ../.. 26 | 27 | # Where is the W3 object library? 28 | LIBDIR = $(WWW)/Library/Implementation/$(WWW_MACH):/usr/lib 29 | 30 | # 31 | # WHEN COMPILING WITH DIRECT WAIS SUPPORT: 32 | # 33 | # Uncomment these six lines (and edit them, if necessary). 34 | # 35 | # WAIS = ../../../freeWAIS 36 | # WAISLIB = $(WAIS)/client.a $(WAIS)/wais.a 37 | # MATHLIB = -lm 38 | # WAISINC = -I$(WAIS)/include 39 | # WAISCFLAGS = -DHT_DIRECT_WAIS 40 | # HTWAIS = $(WTMP)/Library/$(WWW_MACH)/HTWAIS.o 41 | -------------------------------------------------------------------------------- /All/sco/Makefile.include: -------------------------------------------------------------------------------- 1 | # 2 | # Make WWW for SCO 3 | # 4 | 5 | # For W3 distribution, machine type for subdirectories 6 | WWW_MACH = sco 7 | 8 | # The ASIS repository's name for the machine we are on 9 | ASIS_MACH = sco 10 | 11 | CC = icc 12 | CFLAGS = -DUSE_DIRENT -D__svr4__ -DPOSIXWAIT -Dsco 13 | # LFLAGS = -lcrypt_i -lc -lsocket -lintl 14 | LFLAGS = 15 | SYSLIBS = -lcrypt_i -lc -lsocket -lintl 16 | 17 | # Directory for installed binary: 18 | # BINDIR = /opt/bin 19 | BINDIR = /usr/local/bin 20 | 21 | #_________________ OK if normal W3 distribution 22 | # Where is the WWW source root? 23 | WWW = ../.. 24 | 25 | # Where should temporary (object) files go? 26 | WTMP = ../.. 27 | 28 | # Where is the W3 object library? 29 | LIBDIR = $(WWW)/Library/Implementation/$(WWW_MACH):/usr/lib 30 | 31 | # 32 | # WHEN COMPILING WITH DIRECT WAIS SUPPORT: 33 | # 34 | # Uncomment these six lines (and edit them, if necessary). 35 | # 36 | # WAIS = ../../../freeWAIS 37 | # WAISLIB = $(WAIS)/bin/client.a $(WAIS)/bin/wais.a 38 | # MATHLIB = -lm 39 | # WAISINC = -I$(WAIS)/include 40 | # WAISCFLAGS = -DHT_DIRECT_WAIS 41 | # HTWAIS = $(WTMP)/Library/$(WWW_MACH)/HTWAIS.o 42 | 43 | -------------------------------------------------------------------------------- /All/sgi/Makefile.include: -------------------------------------------------------------------------------- 1 | # Make WWW for Silicon Graphics 2 | # 3 | # For W3 distribution, machine type for subdirectories 4 | WWW_MACH = sgi 5 | 6 | # Architecutre in ASIS scheme 7 | ASIS_MACH = sgi/iris-3.5 8 | 9 | # 10 | # -signed 11 | # Cause all char declarations to be signed char declarations, 12 | # the default is to treat them as unsigned char declarations. 13 | # 14 | # This fixes some problems in directory browsing doing infinite 15 | # looping on read. 16 | # 17 | 18 | # The extra define using BSD-SIGNALS is proposed by Andrew Williams, 19 | # 20 | CC = cc 21 | # CFLAGS = -DDEBUG -signed 22 | CFLAGS = -DDEBUG -signed -D_BSD_SIGNALS 23 | 24 | LFLAGS = -lsun 25 | 26 | # Directory for installed binary: 27 | BINDIR = /usr/local/bin 28 | 29 | #_________________ OK if normal W3 distribution 30 | # Where is the WWW source root? 31 | WWW = ../.. 32 | 33 | # Where should temporary (object) files go? 34 | WTMP = ../.. 35 | 36 | 37 | # Where is the W3 object library? 38 | LIBDIR = $(WWW)/Library/Implementation/$(WWW_MACH) 39 | 40 | 41 | # 42 | # WHEN COMPILING WITH DIRECT WAIS SUPPORT: 43 | # 44 | # Uncomment these six lines (and edit them, if necessary). 45 | # 46 | # WAIS = ../../../freeWAIS 47 | # WAISLIB = $(WAIS)/bin/client.a $(WAIS)/bin/wais.a 48 | # MATHLIB = -lm 49 | # WAISINC = -I$(WAIS)/include 50 | # WAISCFLAGS = -DHT_DIRECT_WAIS 51 | # HTWAIS = $(WTMP)/Library/$(WWW_MACH)/HTWAIS.o 52 | 53 | -------------------------------------------------------------------------------- /All/snake/Makefile.include: -------------------------------------------------------------------------------- 1 | # Make WWW under unix for HP 700 or 800 (Snake) using cc 2 | # 3 | 4 | # For W3 distribution, machine type for subdirectories 5 | WWW_MACH = snake 6 | 7 | # With cc use +DA1.0, with gcc use -mpa-risc-1-0. If this doesn't work 8 | # for cc then try the second CFLAGS line for cc 9 | 10 | # Options for cc 11 | CC = cc 12 | # CFLAGS = -g +DA1.0 13 | CFLAGS = -Aa -g -D_HPUX_SOURCE -Dunix 14 | 15 | # Options for gcc 16 | # CC = gcc 17 | # CFLAGS = -g -mpa-risc-1-0 18 | # CFLAGS = -Wall -g -mpa-risc-1-0 19 | 20 | # using -lBSD is very bad. It breaks lots of things - Richard Allen 21 | # Link with BSD library for getwd() 22 | # LFLAGS = -lBSD 23 | 24 | # Directory for installed binary: 25 | BINDIR = /usr/local/bin 26 | 27 | #_________________ OK if normal W3 distribution 28 | # Where is the WWW source root? 29 | WWW = ../.. 30 | 31 | # Where should temporary (object) files go? 32 | WTMP = ../.. 33 | 34 | # Where is the W3 object library? 35 | LIBDIR = $(WWW)/Library/Implementation/$(WWW_MACH) 36 | 37 | # 38 | # WHEN COMPILING WITH DIRECT WAIS SUPPORT: 39 | # 40 | # Uncomment these six lines (and edit them, if necessary). 41 | # 42 | # WAIS = ../../../freeWAIS 43 | # WAISLIB = $(WAIS)/bin/client.a $(WAIS)/bin/wais.a 44 | # MATHLIB = -lm 45 | # WAISINC = -I$(WAIS)/include 46 | # WAISCFLAGS = -DHT_DIRECT_WAIS 47 | # HTWAIS = $(WTMP)/Library/$(WWW_MACH)/HTWAIS.o 48 | 49 | -------------------------------------------------------------------------------- /All/sun3/Makefile.include: -------------------------------------------------------------------------------- 1 | # Make WWW under unix for sun 3 2 | # 3 | # For W3 distribution, machine type for subdirectories 4 | WWW_MACH = sun3 5 | 6 | # For ASIS installation, the ASIS code for the machine/os 7 | ASIS_MACH = sun-3/sunos-4.1.1 8 | 9 | # Directory for installed binary: 10 | BINDIR = /usr/local/bin 11 | 12 | CFLAGS = -DDEBUG 13 | LFLAGS = 14 | CC = cc 15 | 16 | # Directory for installed binary: 17 | BINDIR = /usr/local/bin 18 | 19 | #_________________ OK if normal W3 distribution 20 | # Where is the WWW source root? 21 | WWW = ../.. 22 | 23 | # Where should temporary (object) files go? 24 | WTMP = ../.. 25 | 26 | 27 | # Where is the W3 object library? 28 | LIBDIR = $(WWW)/Library/Implementation/$(WWW_MACH) 29 | 30 | 31 | # 32 | # WHEN COMPILING WITH DIRECT WAIS SUPPORT: 33 | # 34 | # Uncomment these six lines (and edit them, if necessary). 35 | # 36 | # WAIS = ../../../freeWAIS 37 | # WAISLIB = $(WAIS)/bin/client.a $(WAIS)/bin/wais.a 38 | # MATHLIB = -lm 39 | # WAISINC = -I$(WAIS)/include 40 | # WAISCFLAGS = -DHT_DIRECT_WAIS 41 | # HTWAIS = $(WTMP)/Library/$(WWW_MACH)/HTWAIS.o 42 | 43 | -------------------------------------------------------------------------------- /All/sun4-sol2/Makefile.include: -------------------------------------------------------------------------------- 1 | # Make WWW under unix for solaris 2.2 2 | # 3 | 4 | # For W3 distribution, machine type for subdirectories 5 | WWW_MACH = sun4-sol2 6 | 7 | # The ASIS repository's name for the machine we are on 8 | ASIS_MACH = sun-4 9 | # Not important - changing all the time! 10 | 11 | CC = gcc 12 | # CC = g++ 13 | 14 | # CFLAGS = -Wall -DSOLARIS -D__svr4__ -DPOSIXWAIT 15 | CFLAGS = -Wall -DSOLARIS -g -D__svr4__ -DPOSIXWAIT 16 | # CFLAGS = -Wall -DSOLARIS -D__svr4__ -DPOSIXWAIT 17 | 18 | LFLAGS = -lresolv -lnsl -lsocket -ldl 19 | 20 | # Directory for installed binary: 21 | # BINDIR = /opt/bin 22 | BINDIR = /usr/local/bin 23 | 24 | #_________________ OK if normal W3 distribution 25 | # Where is the WWW source root? 26 | WWW = ../.. 27 | 28 | # Where should temporary (object) files go? 29 | WTMP = ../.. 30 | 31 | # Where is the W3 object library? 32 | LIBDIR = $(WWW)/Library/Implementation/$(WWW_MACH):/usr/lib 33 | 34 | # 35 | # WHEN COMPILING WITH DIRECT WAIS SUPPORT: 36 | # 37 | # Uncomment these six lines (and edit them, if necessary). 38 | # 39 | # WAIS = ../../../freeWAIS 40 | # WAISLIB = $(WAIS)/bin/client.a $(WAIS)/bin/wais.a 41 | # MATHLIB = -lm 42 | # WAISINC = -I$(WAIS)/include 43 | # WAISCFLAGS = -DHT_DIRECT_WAIS 44 | # HTWAIS = $(WTMP)/Library/$(WWW_MACH)/HTWAIS.o 45 | 46 | -------------------------------------------------------------------------------- /All/sun4/Makefile.include: -------------------------------------------------------------------------------- 1 | # Make WWW under unix for sun 4 2 | # 3 | 4 | # For W3 distribution, machine type for subdirectories 5 | WWW_MACH = sun4 6 | 7 | # The ASIS repository's name for the machine we are on 8 | ASIS_MACH = sun-4/sunos-4.1.1 9 | 10 | # Options for ANSI acc 11 | CC = acc 12 | CFLAGS = -DDEBUG -DSUNOS 13 | # LFLAGS = -Bstatic 14 | LFLAGS = -lresolv -Bstatic 15 | 16 | # Options for gcc 17 | # CC = gcc 18 | # CFLAGS = -Wall -g -DSUNOS 19 | # LFLAGS = -static 20 | # LFLAGS = -lresolv -static 21 | 22 | # Directory for installed binary: 23 | BINDIR = /usr/local/bin 24 | 25 | #_________________ OK if normal W3 distribution 26 | # Where is the WWW source root? 27 | WWW = ../.. 28 | 29 | # Where should temporary (object) files go? 30 | WTMP = ../.. 31 | 32 | # Where is the W3 object library? 33 | LIBDIR = $(WWW)/Library/Implementation/$(WWW_MACH) 34 | 35 | # 36 | # WHEN COMPILING WITH DIRECT WAIS SUPPORT: 37 | # 38 | # Uncomment these six lines (and edit them, if necessary). 39 | # WAIS = ../../../freeWAIS 40 | # WAISLIB = $(WAIS)/bin/client.a $(WAIS)/bin/wais.a 41 | # MATHLIB = -lm 42 | # WAISINC = -I$(WAIS)/include 43 | # WAISCFLAGS = -DHT_DIRECT_WAIS 44 | # HTWAIS = $(WTMP)/Library/$(WWW_MACH)/HTWAIS.o 45 | 46 | -------------------------------------------------------------------------------- /All/ultrix/Makefile.include: -------------------------------------------------------------------------------- 1 | # Platform-specific Makefile for W3 Library (decstation) 2 | # ----------------------------------------- 3 | # 4 | 5 | WWW = ../.. 6 | 7 | # Where should temporary (object) files go? 8 | WTMP = ../.. 9 | 10 | # Build using cc 11 | CC = cc 12 | CFLAGS = -g -Ddecstation 13 | LFLAGS = 14 | 15 | # Build using gcc 16 | # CC = gcc 17 | # CFLAGS = -Wall -g -Ddecstation 18 | # LFLAGS = 19 | 20 | # Directory for installed binary: 21 | LIBDIR = /usr/local/lib 22 | 23 | # 24 | # WHEN COMPILING WITH DIRECT WAIS SUPPORT: 25 | # 26 | # Uncomment these six lines (and edit them, if necessary). 27 | # 28 | # WAIS = ../../../freeWAIS 29 | # WAISLIB = $(WAIS)/bin/client.a $(WAIS)/bin/wais.a 30 | # MATHLIB = -lm 31 | # WAISINC = -I$(WAIS)/include 32 | # WAISCFLAGS = -DHT_DIRECT_WAIS 33 | # HTWAIS = $(WTMP)/Library/$(WWW_MACH)/HTWAIS.o 34 | 35 | -------------------------------------------------------------------------------- /All/unisys/Makefile.include: -------------------------------------------------------------------------------- 1 | # Make WWW under unix for Unisys 2 | # 3 | 4 | # For W3 distribution, machine type for subdirectories 5 | WWW_MACH = unisys 6 | 7 | # The ASIS repository's name for the machine we are on 8 | ASIS_MACH = unisys 9 | # Not important - changing all the time! 10 | 11 | #CFLAGS = -Wall -g -D__svr4__ -DPOSIXWAIT 12 | CFLAGS = -D__svr4__ -DPOSIXWAIT 13 | 14 | # Ask for static linking so that binary will be transportable 15 | # LFLAGS = -lresolv -lnsl -lsocket -Bstatic 16 | LFLAGS = -lresolv -lnsl -lsocket 17 | CC = cc 18 | 19 | # Directory for installed binary: 20 | # BINDIR = /opt/bin 21 | BINDIR = /usr/local/bin 22 | 23 | #_________________ OK if normal W3 distribution 24 | # Where is the WWW source root? 25 | WWW = ../.. 26 | 27 | # Where should temporary (object) files go? 28 | WTMP = ../.. 29 | 30 | 31 | # Where is the W3 object library? 32 | LIBDIR = $(WWW)/Library/Implementation/$(WWW_MACH):/usr/lib 33 | 34 | 35 | 36 | 37 | # 38 | # WHEN COMPILING WITH DIRECT WAIS SUPPORT: 39 | # 40 | # Uncomment these six lines (and edit them, if necessary). 41 | # 42 | # WAIS = ../../../freeWAIS 43 | # WAISLIB = $(WAIS)/client.a $(WAIS)/wais.a 44 | # MATHLIB = -lm 45 | # WAISINC = -I$(WAIS)/include 46 | # WAISCFLAGS = -DHT_DIRECT_WAIS 47 | # HTWAIS = $(WTMP)/Library/$(WWW_MACH)/HTWAIS.o 48 | 49 | -------------------------------------------------------------------------------- /All/unix/Makefile.include: -------------------------------------------------------------------------------- 1 | # Make WWW under unix for a.n.other unix system (bsd) 2 | # Use this as a template 3 | 4 | # For W3 distribution, machine type for subdirectories 5 | WWW_MACH = unix 6 | 7 | # The ASIS repository's name for the machine we are on 8 | ASIS_MACH = hardware/os 9 | 10 | 11 | CFLAGS = -DDEBUG -D__BSD__ 12 | LFLAGS = 13 | CC = cc 14 | 15 | # Directory for installed binary: 16 | BINDIR = /usr/local/bin 17 | 18 | # Where is the W3 object library to be installed (not normally done)? 19 | LIBDIR = $(WWW)/Library/Implementation/$(WWW_MACH) 20 | 21 | #_________________ OK if normal W3 distribution 22 | # Where is the WWW source root? 23 | WWW = ../.. 24 | 25 | # Where should temporary (object) files go? 26 | WTMP = ../.. 27 | 28 | 29 | 30 | # 31 | # WHEN COMPILING WITH DIRECT WAIS SUPPORT: 32 | # 33 | # Uncomment these six lines (and edit them, if necessary). 34 | # 35 | # WAIS = ../../../freeWAIS 36 | # WAISLIB = $(WAIS)/bin/client.a $(WAIS)/bin/wais.a 37 | # MATHLIB = -lm 38 | # WAISINC = -I$(WAIS)/include 39 | # WAISCFLAGS = -DHT_DIRECT_WAIS 40 | # HTWAIS = $(WTMP)/Library/$(WWW_MACH)/HTWAIS.o 41 | 42 | -------------------------------------------------------------------------------- /All/uts2/Makefile.include: -------------------------------------------------------------------------------- 1 | # Make WWW under Amdahl UTS 2.1 2 | # tested on UTS/MLS 2.1.3 3 | 4 | # For W3 distribution, machine type for subdirectories 5 | WWW_MACH = uts2 6 | 7 | # The ASIS repository's name for the machine we are on 8 | ASIS_MACH = amdahl/uts2 9 | 10 | 11 | CFLAGS = -DDEBUG -DUTS2 -eft -Xa -I/usr/ccs/include 12 | LFLAGS = -eft -Xa -lsocket -la 13 | CC = cc 14 | 15 | # Directory for installed binary: 16 | BINDIR = /usr/local/bin 17 | 18 | # Where is the W3 object library to be installed (not normally done)? 19 | LIBDIR = $(WWW)/Library/Implementation/$(WWW_MACH) 20 | 21 | #_________________ OK if normal W3 distribution 22 | # Where is the WWW source root? 23 | WWW = ../.. 24 | 25 | # Where should temporary (object) files go? 26 | WTMP = ../.. 27 | 28 | 29 | 30 | # 31 | # WHEN COMPILING WITH DIRECT WAIS SUPPORT: 32 | # 33 | # Uncomment these six lines (and edit them, if necessary). 34 | # 35 | # WAIS = ../../../freeWAIS 36 | # WAISLIB = $(WAIS)/bin/client.a $(WAIS)/bin/wais.a 37 | # MATHLIB = -lm 38 | # WAISINC = -I$(WAIS)/include 39 | # WAISCFLAGS = -DHT_DIRECT_WAIS 40 | # HTWAIS = $(WTMP)/Library/$(WWW_MACH)/HTWAIS.o 41 | 42 | -------------------------------------------------------------------------------- /All/uts4/Makefile.include: -------------------------------------------------------------------------------- 1 | # Make WWW under UTS 4 2 | 3 | # For W3 distribution, machine type for subdirectories 4 | WWW_MACH = uts4 5 | 6 | # The ASIS repository's name for the machine we are on 7 | ASIS_MACH = amdahl/uts4 8 | 9 | 10 | CFLAGS = -DDEBUG -D__svr4__ -DUTS4 11 | LFLAGS = -lsocket -lnsl -la 12 | CC = cc 13 | 14 | # Directory for installed binary: 15 | BINDIR = /usr/local/bin 16 | 17 | # Where is the W3 object library to be installed (not normally done)? 18 | LIBDIR = $(WWW)/Library/Implementation/$(WWW_MACH) 19 | 20 | #_________________ OK if normal W3 distribution 21 | # Where is the WWW source root? 22 | WWW = ../.. 23 | 24 | # Where should temporary (object) files go? 25 | WTMP = ../.. 26 | 27 | 28 | 29 | # 30 | # WHEN COMPILING WITH DIRECT WAIS SUPPORT: 31 | # 32 | # Uncomment these six lines (and edit them, if necessary). 33 | # 34 | # WAIS = ../../../freeWAIS 35 | # WAISLIB = $(WAIS)/bin/client.a $(WAIS)/bin/wais.a 36 | # MATHLIB = -lm 37 | # WAISINC = -I$(WAIS)/include 38 | # WAISCFLAGS = -DHT_DIRECT_WAIS 39 | # HTWAIS = $(WTMP)/Library/$(WWW_MACH)/HTWAIS.o 40 | 41 | -------------------------------------------------------------------------------- /All/vax_ultrix/Makefile.include: -------------------------------------------------------------------------------- 1 | # Make WWW under ultrix with gcc 2 | # 3 | 4 | 5 | # For W3 distribution, machine type for subdirectories 6 | WWW_MACH = vax_ultrix 7 | 8 | # For ASIS installation, the ASIS code for the machine/os 9 | ASIS_MACH = none 10 | 11 | CC = gcc 12 | CFLAGS = -g -DDEBUG -Wall 13 | LFLAGS = -g 14 | 15 | # This is bug fix for out-of-date ultrix on cernvax 16 | # LFLAGS = -g pfcode.o -lresolv 17 | 18 | # Directory for installed binary: 19 | BINDIR = /usr/local/unix 20 | 21 | 22 | #_________________ OK if normal W3 distribution 23 | # Where is the WWW source root? 24 | WWW = ../.. 25 | 26 | # Where should temporary (object) files go? 27 | WTMP = ../.. 28 | 29 | 30 | # Where is the W3 object library? 31 | LIBDIR = $(WWW)/Library/Implementation/$(WWW_MACH) 32 | 33 | 34 | # 35 | # WHEN COMPILING WITH DIRECT WAIS SUPPORT: 36 | # 37 | # Uncomment these six lines (and edit them, if necessary). 38 | # 39 | # WAIS = ../../../freeWAIS 40 | # WAISLIB = $(WAIS)/bin/client.a $(WAIS)/bin/wais.a 41 | # MATHLIB = -lm 42 | # WAISINC = -I$(WAIS)/include 43 | # WAISCFLAGS = -DHT_DIRECT_WAIS 44 | # HTWAIS = $(WTMP)/Library/$(WWW_MACH)/HTWAIS.o 45 | 46 | -------------------------------------------------------------------------------- /CERN: -------------------------------------------------------------------------------- 1 | CERN ACKNOWLEDGMENT 2 | CERN ACKNOWLEDGMENT 3 | 4 | 5 | ___________________________________ 6 | 7 | _"This product includes computer software created and made available by 8 | CERN. This acknowledgment shall be mentioned in full in any product which 9 | includes the CERN computer software included herein or parts thereof."_ 10 | 11 | 12 | ___________________________________ 13 | 14 | -------------------------------------------------------------------------------- /COPYRIGH: -------------------------------------------------------------------------------- 1 | Copyright NOTICE 2 | NOTICE 3 | 4 | COPYRIGHT 1995 BY: MASSACHUSETTS INSTITUTE OF TECHNOLOGY (MIT), INRIA 5 | 6 | This W3C software is being provided by the copyright holders under the 7 | following license. By obtaining, using and/or copying this software, you 8 | agree that you have read, understood, and will comply with the following 9 | terms and conditions: 10 | 11 | Permission to use, copy, modify, and distribute this software and its 12 | documentation for any purpose and without fee or royalty is hereby granted, 13 | provided that the full text of this _NOTICE_ appears on ALLcopies of the 14 | software and documentation or portions thereof, including modifications, 15 | that you make. 16 | 17 | _THIS SOFTWARE IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO 18 | REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT 19 | NOT LIMITATION, COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES OF 20 | MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE 21 | SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS, 22 | COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. COPYRIGHT HOLDERS WILL BEAR NO 23 | LIABILITY FOR ANY USE OF THIS SOFTWARE OR DOCUMENTATION._ 24 | 25 | The name and trademarks of copyright holders may NOTbe used in advertising 26 | or publicity pertaining to the software without specific, written prior 27 | permission. Title to copyright in this software and any associated 28 | documentation will at all times remain with copyright holders. 29 | 30 | 31 | ___________________________________ 32 | 33 | webmaster@w3.org, May 1995 34 | 35 | 36 | -------------------------------------------------------------------------------- /Daemon/CVS/Entries: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hackervera/cern-httpd/a709a028c11b486c58cad53a09658d30ba327694/Daemon/CVS/Entries -------------------------------------------------------------------------------- /Daemon/CVS/Repository: -------------------------------------------------------------------------------- 1 | /afs/w3.org/pub/WWW/Daemon/Repository 2 | -------------------------------------------------------------------------------- /Daemon/CVS/Root: -------------------------------------------------------------------------------- 1 | /afs/w3.org/pub/WWW 2 | -------------------------------------------------------------------------------- /Daemon/CVS/Tag: -------------------------------------------------------------------------------- 1 | Tcern-update 2 | -------------------------------------------------------------------------------- /Daemon/Implementation/.cvsignore: -------------------------------------------------------------------------------- 1 | *.h .www_browsable 2 | -------------------------------------------------------------------------------- /Daemon/Implementation/CVS/Repository: -------------------------------------------------------------------------------- 1 | /afs/w3.org/pub/WWW/Daemon/Repository/Implementation 2 | -------------------------------------------------------------------------------- /Daemon/Implementation/CVS/Root: -------------------------------------------------------------------------------- 1 | /afs/w3.org/pub/WWW 2 | -------------------------------------------------------------------------------- /Daemon/Implementation/CVS/Tag: -------------------------------------------------------------------------------- 1 | Tcern-update 2 | -------------------------------------------------------------------------------- /Daemon/Implementation/HTAuth.h: -------------------------------------------------------------------------------- 1 | /* AUTHENTICATION MODULE 2 | 3 | This is the authentication module. By modifying the function HTAA_authenticate()it can 4 | be made to support external authentication methods. 5 | 6 | */ 7 | #ifndef HTAUTH_H 8 | #define HTAUTH_H 9 | 10 | #include "HTUtils.h" 11 | #include "HTAAUtil.h" 12 | 13 | 14 | #ifdef SHORT_NAMES 15 | #define HTAAauth HTAA_authenticate 16 | #endif /* SHORT_NAMES */ 17 | 18 | 19 | /* 20 | ** Server's representation of a user (fields in authentication string) 21 | */ 22 | typedef struct { 23 | HTAAScheme scheme; /* Scheme used to authenticate this user */ 24 | char * username; 25 | char * password; 26 | char * inet_addr; 27 | char * timestamp; 28 | char * secret_key; 29 | } HTAAUser; 30 | 31 | extern HTAAUser * HTUser; 32 | 33 | #include "HTAAProt.h" 34 | 35 | /* 36 | 37 | USER AUTHENTICATION 38 | 39 | */ 40 | /* SERVER PUBLIC HTAA_authenticate() 41 | ** AUTHENTICATE USER 42 | ** ON ENTRY: 43 | ** req request. 44 | ** req->scheme used authentication scheme. 45 | ** req->scheme_specifics 46 | ** the scheme specific parameters 47 | ** (authentication string for Basic and 48 | ** Pubkey schemes). 49 | ** req->prot is the protection information structure 50 | ** for the file. 51 | ** 52 | ** ON EXIT: 53 | ** returns YES, if authentication succeeds and 54 | ** req->user is set to point to the authenticated 55 | ** user. NO, if authentication fails. 56 | */ 57 | PUBLIC BOOL HTAA_authenticate PARAMS((HTRequest * req)); 58 | /* 59 | 60 | */ 61 | #endif /* not HTAUTH_H */ 62 | /* 63 | 64 | End of file HTAuth.h. */ 65 | -------------------------------------------------------------------------------- /Daemon/Implementation/HTAuth.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |

Authentication Module

5 | 6 | This is the authentication module. By modifying the function 7 | HTAA_authenticate() it can be made to support external 8 | authentication methods.

9 | 10 |

11 | #ifndef HTAUTH_H
12 | #define HTAUTH_H
13 | 
14 | #include "HTUtils.h"
15 | #include "HTAAUtil.h"
16 | 
17 | 
18 | #ifdef SHORT_NAMES
19 | #define	HTAAauth	HTAA_authenticate
20 | #endif /* SHORT_NAMES */
21 | 
22 | 
23 | /*
24 | ** Server's representation of a user (fields in authentication string)
25 | */
26 | typedef struct {
27 |     HTAAScheme	scheme;		/* Scheme used to authenticate this user */
28 |     char *	username;
29 |     char *	password;
30 |     char *	inet_addr;
31 |     char *	timestamp;
32 |     char *	secret_key;
33 | } HTAAUser;
34 | 
35 | extern HTAAUser * HTUser;
36 | 
37 | #include "HTAAProt.h"
38 | 
39 | 
40 | 41 | 42 |

User Authentication

43 |
44 | /* SERVER PUBLIC					HTAA_authenticate()
45 | **			AUTHENTICATE USER
46 | ** ON ENTRY:
47 | **	req		request.
48 | **	req->scheme	used authentication scheme.
49 | **	req->scheme_specifics
50 | **			the scheme specific parameters
51 | **			(authentication string for Basic and
52 | **			Pubkey schemes).
53 | **	req->prot	is the protection information structure
54 | **			for the file.
55 | **
56 | ** ON EXIT:
57 | **	returns		YES, if authentication succeeds and
58 | **			req->user is set to point to the authenticated
59 | **			user.  NO, if authentication fails.
60 | */
61 | PUBLIC BOOL HTAA_authenticate PARAMS((HTRequest * req));
62 | 
63 | 64 |
65 | #endif /* not HTAUTH_H */
66 | 
67 | End of file HTAuth.h. 68 | 69 | -------------------------------------------------------------------------------- /Daemon/Implementation/HTLex.h: -------------------------------------------------------------------------------- 1 | /* LEXICAL ANALYSOR (MAINLY FOR CONFIG FILES) 2 | 3 | */ 4 | #ifndef HTLEX_H 5 | #define HTLEX_H 6 | 7 | #include "HTUtils.h" 8 | 9 | 10 | #ifdef SHORT_NAMES 11 | #define lex_verb lex_verbose 12 | #endif /*SHORT_NAMES*/ 13 | 14 | 15 | typedef enum { 16 | LEX_NONE, /* Internally used */ 17 | LEX_EOF, /* End of file */ 18 | LEX_REC_SEP, /* Record separator */ 19 | LEX_FIELD_SEP, /* Field separator */ 20 | LEX_ITEM_SEP, /* List item separator */ 21 | LEX_OPEN_PAREN, /* Group start tag */ 22 | LEX_CLOSE_PAREN, /* Group end tag */ 23 | LEX_AT_SIGN, /* Address qualifier */ 24 | LEX_ALPH_STR, /* Alphanumeric string */ 25 | LEX_TMPL_STR, /* Template string */ 26 | LEX_CLOSE_BRACE /* End of prot.def. */ 27 | } LexItem; 28 | 29 | extern char lex_buffer[]; /* Read lexical string */ 30 | extern int lex_line; /* Line number in source file */ 31 | 32 | /* 33 | 34 | GET NEXT LEXICAL ITEM 35 | 36 | If returns LEX_ALPH_STRor LEX_TMPL_STRthe string is in global buffer lex_buffer. 37 | 38 | */ 39 | PUBLIC LexItem lex PARAMS((FILE * fp)); 40 | /* 41 | 42 | PUSH BACK LATEST ITEM 43 | 44 | */ 45 | PUBLIC void unlex PARAMS((LexItem lex_item)); 46 | /* 47 | 48 | GET THE NAME FOR LEXICAL ITEM 49 | 50 | */ 51 | PUBLIC char *lex_verbose PARAMS((LexItem lex_item)); 52 | /* 53 | 54 | */ 55 | #endif /* not HTLEX_H */ 56 | /* 57 | 58 | End of file HTLex.h. */ 59 | -------------------------------------------------------------------------------- /Daemon/Implementation/HTLex.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |

Lexical Analysor (mainly for config files)

5 | 6 |
 7 | #ifndef HTLEX_H
 8 | #define HTLEX_H
 9 | 
10 | #include "HTUtils.h"
11 | 
12 | 
13 | #ifdef SHORT_NAMES
14 | #define	lex_verb	lex_verbose
15 | #endif /*SHORT_NAMES*/
16 | 
17 | 
18 | typedef enum {
19 |     LEX_NONE,		/* Internally used	*/
20 |     LEX_EOF,		/* End of file		*/
21 |     LEX_REC_SEP,	/* Record separator	*/
22 |     LEX_FIELD_SEP,	/* Field separator	*/
23 |     LEX_ITEM_SEP,	/* List item separator	*/
24 |     LEX_OPEN_PAREN,	/* Group start tag	*/
25 |     LEX_CLOSE_PAREN,	/* Group end tag	*/
26 |     LEX_AT_SIGN,	/* Address qualifier	*/
27 |     LEX_ALPH_STR,	/* Alphanumeric string	*/
28 |     LEX_TMPL_STR,	/* Template string	*/
29 |     LEX_CLOSE_BRACE	/* End of prot.def.	*/
30 | } LexItem;
31 | 
32 | extern char lex_buffer[];	/* Read lexical string		*/
33 | extern int lex_line;		/* Line number in source file	*/
34 | 
35 | 
36 | 37 |

Get Next Lexical Item

38 | If returns LEX_ALPH_STR or LEX_TMPL_STR the 39 | string is in global buffer lex_buffer. 40 |
41 | PUBLIC LexItem lex PARAMS((FILE * fp));
42 | 
43 | 44 |

Push Back Latest Item

45 |
46 | PUBLIC void unlex PARAMS((LexItem lex_item));
47 | 
48 | 49 |

Get the Name for Lexical Item

50 |
51 | PUBLIC char *lex_verbose PARAMS((LexItem lex_item));
52 | 
53 | 54 |
55 | #endif /* not HTLEX_H */
56 | 
57 | End of file HTLex.h. 58 | 59 | -------------------------------------------------------------------------------- /Daemon/Implementation/HTLoad.c: -------------------------------------------------------------------------------- 1 | 2 | /* MODULE HTAnnotate.c 3 | ** HANDLE DOCUMENT LOADS 4 | ** (WHEN WE FEEL LIKE NOT USING THE LIBWWW FUNCTIONS) 5 | ** 6 | ** AUTHORS: 7 | ** AL Ari Luotonen luotonen@dxcern.cern.ch 8 | ** 9 | ** HISTORY: 10 | ** 18 Jan 94 AL Made of 100% recycled electrons that I've 11 | ** personally hand-picked from my garden of 12 | ** Volkswagen spareparts. 13 | ** 14 | ** BUGS: 15 | ** Don't believe in miracles -- rely on them! 16 | ** So no bugs here ;-) 17 | */ 18 | 19 | #include 20 | #include 21 | #include 22 | 23 | #ifdef VMS 24 | #include 25 | #include 26 | #else 27 | #include 28 | #ifndef Mips 29 | #include 30 | #endif 31 | #endif 32 | 33 | #include "HTFile.h" 34 | #include "HTUtils.h" 35 | #include "HTParse.h" /* HTUnEscape() */ 36 | 37 | #include "tcp.h" 38 | #include "HTTCP.h" 39 | 40 | #include "HTFormat.h" /* HTInputSocket */ 41 | #include "HTAccess.h" 42 | #include "HTRules.h" /* HTBinDir, HTBINDIR */ 43 | #include "HTWriter.h" 44 | #include "HTStream.h" 45 | 46 | #include "HTRequest.h" 47 | #include "HTDaemon.h" 48 | 49 | 50 | PUBLIC int HTLoadHead ARGS1(HTRequest *, req) 51 | { 52 | char * headers; 53 | 54 | if (req && req->output_stream) { 55 | if (out.status_code == 200) 56 | req->content_type = HTFileFormat(HTReqTranslated, 57 | &req->content_encoding, 58 | &req->content_language); 59 | headers = HTReplyHeaders(req); 60 | if (headers) { 61 | HTLoadStrToStream(req->output_stream, headers); 62 | free(headers); 63 | HTCloseStream(req->output_stream); 64 | return HT_LOADED; 65 | } 66 | } 67 | return HT_INTERNAL; 68 | } 69 | 70 | -------------------------------------------------------------------------------- /Daemon/Implementation/HTLog.h: -------------------------------------------------------------------------------- 1 | /* Log file Management 2 | LOG FILE MANAGEMENT 3 | 4 | */ 5 | /* 6 | ** (c) COPYRIGHT MIT 1995. 7 | ** Please first read the full copyright statement in the file COPYRIGH. 8 | */ 9 | /* 10 | 11 | */ 12 | #ifndef HTLOG_H 13 | #define HTLOG_H 14 | 15 | #include "HTUtils.h" 16 | #include "HTAccess.h" 17 | 18 | PUBLIC BOOL HTLog_openAll NOPARAMS; 19 | PUBLIC void HTLog_closeAll NOPARAMS; 20 | PUBLIC void HTLog_access PARAMS((HTRequest * req)); 21 | PUBLIC void HTLog_error PARAMS((CONST char * msg)); 22 | PUBLIC void HTLog_error2 PARAMS((CONST char * msg, 23 | CONST char * param)); 24 | PUBLIC void HTLog_errorN PARAMS((CONST char * msg, 25 | int num)); 26 | #endif 27 | /* 28 | 29 | End of declaration module */ 30 | -------------------------------------------------------------------------------- /Daemon/Implementation/HTLog.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Log file Management 4 | 5 | 6 | 7 |

Log file Management

8 | 9 |
10 | /*
11 | **	(c) COPYRIGHT MIT 1995.
12 | **	Please first read the full copyright statement in the file COPYRIGH.
13 | */
14 | 
15 | 16 |
17 | #ifndef HTLOG_H
18 | #define HTLOG_H
19 | 
20 | #include "HTUtils.h"
21 | #include "HTAccess.h"
22 | 
23 | PUBLIC BOOL HTLog_openAll NOPARAMS;
24 | PUBLIC void HTLog_closeAll NOPARAMS;
25 | PUBLIC void HTLog_access PARAMS((HTRequest *	req));
26 | PUBLIC void HTLog_error PARAMS((CONST char * msg));
27 | PUBLIC void HTLog_error2 PARAMS((CONST char *	msg,
28 | 				 CONST char *	param));
29 | PUBLIC void HTLog_errorN PARAMS((CONST char *	msg,
30 | 				 int		num));
31 | #endif
32 | 
33 | 34 | End of declaration module 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /Daemon/Implementation/HTRequest.h: -------------------------------------------------------------------------------- 1 | /* HTTP REQUEST PARSE AND TRANSLATION 2 | HTTP REQUEST PARSE AND TRANSLATION 3 | 4 | */ 5 | /* 6 | ** (c) COPYRIGHT MIT 1995. 7 | ** Please first read the full copyright statement in the file COPYRIGH. 8 | */ 9 | /* 10 | 11 | */ 12 | /* 13 | ** 14 | ** AUTHORS: 15 | ** AL Ari Luotonen luotonen@dxcern.cern.ch 16 | ** MD Mark Donszelmann duns@vxdeop.cern.ch 17 | ** 18 | ** HISTORY: 19 | ** 11 Dec 93 AL Written based on the old HTHandle(). 20 | ** 21 | */ 22 | 23 | #ifndef HTREQUEST_H 24 | #define HTREQUEST_H 25 | 26 | #include "HTUtils.h" 27 | #include "HTFormat.h" 28 | #include "HTAccess.h" 29 | 30 | /* 31 | * Makes a full reference to the server itself given a URL with only 32 | * the path portion. I.e. will add http:, hostname and port parts. 33 | * 34 | * Returns NULL if URL is already full. 35 | */ 36 | PUBLIC char * HTFullSelfReference PARAMS((CONST char * url)); 37 | 38 | 39 | /* 40 | * Produce a redirection message document for browsers without 41 | * redirection support. 42 | */ 43 | PUBLIC char * HTRedirectionMsg PARAMS((char * url)); 44 | 45 | 46 | PUBLIC HTStream * HTScriptWrapper PARAMS((HTRequest * req, 47 | char ** extra_headers, 48 | int extra_count, 49 | HTStream * sink)); 50 | 51 | PUBLIC HTRequest * HTParseRequest PARAMS((HTInputSocket * isoc)); 52 | 53 | PUBLIC int HTTranslateRequest PARAMS((HTRequest * req)); 54 | 55 | PUBLIC char * HTReplyHeaders PARAMS((HTRequest * req)); 56 | 57 | PUBLIC char * HTReplyHeadersWith PARAMS((HTRequest * req, 58 | char ** extras, 59 | int extra_cnt)); 60 | 61 | PUBLIC HTList * hbuf_http_env_vars PARAMS((HTRequest * req)); 62 | PUBLIC char * hbuf_proxy_headers PARAMS((HTRequest * req)); 63 | 64 | #endif 65 | 66 | /* 67 | 68 | End of declaration module */ 69 | -------------------------------------------------------------------------------- /Daemon/Implementation/HTRequest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | HTTP REQUEST PARSE AND TRANSLATION 4 | 5 | 6 | 7 | 8 |

HTTP REQUEST PARSE AND TRANSLATION

9 | 10 |
11 | /*
12 | **	(c) COPYRIGHT MIT 1995.
13 | **	Please first read the full copyright statement in the file COPYRIGH.
14 | */
15 | 
16 | 17 |
18 | /*
19 | **
20 | ** AUTHORS:
21 | **	AL	Ari Luotonen    luotonen@dxcern.cern.ch
22 | **	MD	Mark Donszelmann    duns@vxdeop.cern.ch
23 | **
24 | ** HISTORY:
25 | **	11 Dec 93  AL	Written based on the old HTHandle().
26 | **
27 | */
28 | 
29 | #ifndef HTREQUEST_H
30 | #define HTREQUEST_H
31 | 
32 | #include "HTUtils.h"
33 | #include "HTFormat.h"
34 | #include "HTAccess.h"
35 | 
36 | /*
37 |  * Makes a full reference to the server itself given a URL with only
38 |  * the path portion.  I.e. will add http:, hostname and port parts.
39 |  *
40 |  * Returns NULL if URL is already full.
41 |  */
42 | PUBLIC char * HTFullSelfReference PARAMS((CONST char * url));
43 | 
44 | 
45 | /*
46 |  * Produce a redirection message document for browsers without
47 |  * redirection support.
48 |  */
49 | PUBLIC char * HTRedirectionMsg PARAMS((char * url));
50 | 
51 | 
52 | PUBLIC HTStream * HTScriptWrapper PARAMS((HTRequest *	req,
53 | 					  char **	extra_headers,
54 | 					  int		extra_count,
55 | 					  HTStream *	sink));
56 | 
57 | PUBLIC HTRequest * HTParseRequest PARAMS((HTInputSocket * isoc));
58 | 
59 | PUBLIC int HTTranslateRequest PARAMS((HTRequest * req));
60 | 
61 | PUBLIC char * HTReplyHeaders PARAMS((HTRequest * req));
62 | 
63 | PUBLIC char * HTReplyHeadersWith PARAMS((HTRequest *	req,
64 | 					 char **	extras,
65 | 					 int		extra_cnt));
66 | 
67 | PUBLIC HTList * hbuf_http_env_vars PARAMS((HTRequest * req));
68 | PUBLIC char * hbuf_proxy_headers PARAMS((HTRequest * req));
69 | 
70 | #endif
71 | 
72 | 
73 | 74 | End of declaration module 75 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /Daemon/Implementation/HTSUtils.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hackervera/cern-httpd/a709a028c11b486c58cad53a09658d30ba327694/Daemon/Implementation/HTSUtils.c -------------------------------------------------------------------------------- /Daemon/Implementation/HTSUtils.h: -------------------------------------------------------------------------------- 1 | /* UTILITIES FOR W3C httpd 2 | UTILITIES FOR W3C HTTPD 3 | 4 | */ 5 | /* 6 | ** (c) COPYRIGHT MIT 1995. 7 | ** Please first read the full copyright statement in the file COPYRIGH. 8 | */ 9 | /* 10 | 11 | */ 12 | /* 13 | * 14 | * Author: 15 | * AL Ari Luotonen, CERN, 1994, 16 | * 17 | */ 18 | 19 | #ifndef HTSUTILS_H 20 | #define HTSUTILS_H 21 | 22 | #include "HTUtils.h" 23 | 24 | #ifdef VMS 25 | #define __TYPES 26 | #include 27 | #include 28 | #define __TIME 29 | #else /* not VMS */ 30 | #include 31 | 32 | #ifdef ISC3 /* Lauren */ 33 | #define _SYSV3 34 | #include 35 | #else 36 | #include 37 | #endif 38 | 39 | #endif /* not VMS */ 40 | 41 | extern char * month_names[]; /* 3-letter month abbreviations */ 42 | 43 | 44 | /* 45 | * Does a string represent an integer 46 | */ 47 | PUBLIC BOOL HTIsNumber PARAMS((CONST char * s)); 48 | 49 | /* 50 | * Parse string representing date and time (in HTTP headers) into time_t 51 | */ 52 | PUBLIC time_t parse_http_time PARAMS((char * str)); 53 | 54 | /* 55 | * Convert time_t into a HTTP time string 56 | */ 57 | PUBLIC char * http_time PARAMS((time_t * t)); 58 | 59 | /* 60 | * parse_time(str,def,ret) parses a verbatim time specification in str 61 | * and places resulting time_t into *ret. Time can be specified e.g. 62 | * 1 year 3 months 2 weeks 4 days 5 hours 7 mins 2 sec 63 | * or: 12:30:15 64 | * If just a plain number is given it is multiplied by def (result is 65 | * in seconds). 66 | */ 67 | PUBLIC BOOL parse_time PARAMS((char * str, 68 | int def, 69 | time_t * ret)); 70 | 71 | /* 72 | * Convert time_t into a verbose human-readable form (inverse to parse_time()) 73 | */ 74 | PUBLIC char * make_time_spec PARAMS((time_t * t)); 75 | 76 | /* 77 | * Parses verbatim byte count in configuration file into a single integer. 78 | * Byte count is a number followed by B (byte), K (kilo), M (mega), G (giga). 79 | * If no letter is specified def is used. 80 | */ 81 | PUBLIC int parse_bytes PARAMS((char * str, 82 | char def)); 83 | 84 | /* 85 | * Returns a HTTP reason line corresponding to given HTTP status code. 86 | */ 87 | PUBLIC char * get_http_reason PARAMS((int status_code)); 88 | 89 | #endif /* !HTSUTILS_H */ 90 | 91 | /* 92 | 93 | End of declaration module */ 94 | -------------------------------------------------------------------------------- /Daemon/Implementation/HTSUtils.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | UTILITIES FOR W3C httpd 4 | 5 | 6 | 7 | 8 |

Utilities For W3C httpd

9 | 10 |
 11 | /*
 12 | **	(c) COPYRIGHT MIT 1995.
 13 | **	Please first read the full copyright statement in the file COPYRIGH.
 14 | */
 15 | 
16 | 17 |
 18 | /*
 19 |  *
 20 |  * Author:
 21 |  *	AL	Ari Luotonen, CERN, 1994, 
 22 |  *
 23 |  */
 24 | 
 25 | #ifndef HTSUTILS_H
 26 | #define HTSUTILS_H
 27 | 
 28 | #include "HTUtils.h"
 29 | 
 30 | #ifdef VMS
 31 | #define __TYPES
 32 | #include <types.h>
 33 | #include <time.h>
 34 | #define __TIME
 35 | #else /* not VMS */
 36 | #include <sys/types.h>
 37 | 
 38 | #ifdef ISC3    /* Lauren */
 39 | #define _SYSV3
 40 | #include <time.h>
 41 | #else
 42 | #include <sys/time.h>
 43 | #endif
 44 | 
 45 | #endif /* not VMS */
 46 | 
 47 | extern char * month_names[];		/* 3-letter month abbreviations	*/
 48 | 
 49 | 
 50 | /*
 51 |  * Does a string represent an integer
 52 |  */
 53 | PUBLIC BOOL HTIsNumber PARAMS((CONST char * s));
 54 | 
 55 | /*
 56 |  * Parse string representing date and time (in HTTP headers) into time_t
 57 |  */
 58 | PUBLIC time_t parse_http_time PARAMS((char * str));
 59 | 
 60 | /*
 61 |  * Convert time_t into a HTTP time string
 62 |  */
 63 | PUBLIC char * http_time PARAMS((time_t * t));
 64 | 
 65 | /*
 66 |  * parse_time(str,def,ret) parses a verbatim time specification in str
 67 |  * and places resulting time_t into *ret.  Time can be specified e.g.
 68 |  *	1 year 3 months 2 weeks 4 days 5 hours 7 mins 2 sec
 69 |  * or:	12:30:15
 70 |  * If just a plain number is given it is multiplied by def (result is
 71 |  * in seconds).
 72 |  */
 73 | PUBLIC BOOL parse_time PARAMS((char *	str,
 74 | 			       int	def,
 75 | 			       time_t *	ret));
 76 | 
 77 | /*
 78 |  * Convert time_t into a verbose human-readable form (inverse to parse_time())
 79 |  */
 80 | PUBLIC char * make_time_spec PARAMS((time_t * t));
 81 | 
 82 | /*
 83 |  * Parses verbatim byte count in configuration file into a single integer.
 84 |  * Byte count is a number followed by B (byte), K (kilo), M (mega), G (giga).
 85 |  * If no letter is specified def is used.
 86 |  */
 87 | PUBLIC int parse_bytes PARAMS((char *	str,
 88 | 			       char	def));
 89 | 
 90 | /*
 91 |  * Returns a HTTP reason line corresponding to given HTTP status code.
 92 |  */
 93 | PUBLIC char * get_http_reason PARAMS((int status_code));
 94 | 
 95 | #endif /* !HTSUTILS_H */
 96 | 
 97 | 
98 | 99 | End of declaration module 100 | 101 | 102 | 103 | 104 | -------------------------------------------------------------------------------- /Daemon/Implementation/HTScript.h: -------------------------------------------------------------------------------- 1 | /* Script Manager 2 | SCRIPT MANAGER 3 | 4 | */ 5 | /* 6 | ** (c) COPYRIGHT MIT 1995. 7 | ** Please first read the full copyright statement in the file COPYRIGH. 8 | */ 9 | /* 10 | 11 | */ 12 | #ifndef HTSCRIPT_H 13 | #define HTSCRIPT_H 14 | 15 | #include "HTUtils.h" 16 | 17 | /* PUBLIC HTCallScript() 18 | ** CALL A SCRIPT AND SEND RESULTS BACK TO CLIENT 19 | ** ON ENTRY: 20 | ** req the request. 21 | ** req->script script to call. 22 | ** req->script_pathinfo 23 | ** path info after script name part in URL. 24 | ** req->arg_keywords 25 | ** search keywords/form fields 26 | ** 27 | ** /htbin/foo/bar/x/y 28 | ** 29 | ** is called as: 30 | ** 31 | ** /foo /bar/x/y keywords... 32 | ** 33 | ** and: 34 | ** /htbin/foo 35 | ** 36 | ** is called as: 37 | ** 38 | ** /foo '' keywords... 39 | ** 40 | ** ON EXIT: 41 | ** returns HT_LOADED on success. 42 | */ 43 | PUBLIC int HTCallScript PARAMS((HTRequest * req)); 44 | #endif 45 | /* 46 | 47 | End of declaration module */ 48 | -------------------------------------------------------------------------------- /Daemon/Implementation/HTScript.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Script Manager 4 | 5 | 6 | 7 |

Script Manager

8 | 9 |
10 | /*
11 | **	(c) COPYRIGHT MIT 1995.
12 | **	Please first read the full copyright statement in the file COPYRIGH.
13 | */
14 | 
15 | 16 |
17 | #ifndef HTSCRIPT_H
18 | #define HTSCRIPT_H
19 | 
20 | #include "HTUtils.h"
21 | 
22 | /* PUBLIC							HTCallScript()
23 | **		CALL A SCRIPT AND SEND RESULTS BACK TO CLIENT
24 | ** ON ENTRY:
25 | **	req		the request.
26 | **	req->script	script to call.
27 | **	req->script_pathinfo
28 | **			path info after script name part in URL.
29 | **	req->arg_keywords
30 | **			search keywords/form fields
31 | **
32 | **				/htbin/foo/bar/x/y
33 | **
34 | **			is called as:
35 | **
36 | **			    /foo /bar/x/y keywords...
37 | **
38 | **			and:
39 | **				/htbin/foo
40 | **
41 | **			is called as:
42 | **
43 | **			    /foo '' keywords...
44 | **
45 | ** ON EXIT:
46 | **	returns		HT_LOADED on success.
47 | */
48 | PUBLIC int HTCallScript PARAMS((HTRequest *	req));
49 | #endif
50 | 
51 | 52 | End of declaration module 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /Daemon/Implementation/HTUserInit.c: -------------------------------------------------------------------------------- 1 | /* Module for users to insert their own initialisation routines */ 2 | 3 | #include "HTUtils.h" 4 | #include "HTUserInit.h" 5 | 6 | /* called just after main has started */ 7 | PUBLIC int HTUserInit NOARGS 8 | { 9 | return(0); 10 | } 11 | -------------------------------------------------------------------------------- /Daemon/Implementation/HTUserInit.h: -------------------------------------------------------------------------------- 1 | /* User Init Module 2 | USER INIT MODULE 3 | 4 | */ 5 | /* 6 | ** (c) COPYRIGHT MIT 1995. 7 | ** Please first read the full copyright statement in the file COPYRIGH. 8 | */ 9 | /* 10 | 11 | */ 12 | /* 13 | ** On Exit: 14 | ** =0 ok 15 | */ 16 | PUBLIC int HTUserInit NOPARAMS; 17 | 18 | /* 19 | 20 | End of declaration module */ 21 | -------------------------------------------------------------------------------- /Daemon/Implementation/HTUserInit.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | User Init Module 4 | 5 | 6 | 7 |

User Init Module

8 | 9 |
10 | /*
11 | **	(c) COPYRIGHT MIT 1995.
12 | **	Please first read the full copyright statement in the file COPYRIGH.
13 | */
14 | 
15 | 16 |
17 | /*
18 | ** On Exit:
19 | **	<0	Failed, this will cause the httpd to exit
20 | **	>=0 	ok
21 | */
22 | PUBLIC int HTUserInit NOPARAMS;
23 | 
24 | 
25 | 26 | End of declaration module 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /Daemon/Implementation/HTWild.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Wildcard Matching Module 4 | 5 | 6 | 7 |

Wildcard matching module

8 | 9 |
10 | /*
11 | **	(c) COPYRIGHT MIT 1995.
12 | **	Please first read the full copyright statement in the file COPYRIGH.
13 | */
14 | 
15 | 16 |
17 | /*
18 |  * Author:
19 |  *	Ari Luotonen, CERN, April 1994, 
20 |  *
21 |  * This interface contains the following functions:
22 |  *
23 |  *	HTPattern_new(str)
24 |  *		returns an internal representation (HTPattern *) for
25 |  *		a given a string.  This can be used when later comparing
26 |  *		actual strings against templates.
27 |  *		Asterisk * means any character.
28 |  *		Any character can be escaped by preceding it with a
29 |  *		backslash; at least * and \ must be escaped when they
30 |  *		should be taken literally, but all other escapes are
31 |  *		also understood.
32 |  *
33 |  *	HTPattern_free(pat)
34 |  *		frees the memory taken up by the pattern pat.
35 |  *
36 |  *	HTPattern_match(pat,eqv,act)
37 |  *		matches the actual string act against pattern pat.
38 |  *		If the pattern eqv is non-NULL the result returned
39 |  *		will be a new string where the string is mapped to
40 |  *		pattern eqv.  If eqv is NULL, a copy of the actual
41 |  *		string is returned.
42 |  *		If act doesn't match the pattern NULL is returned.
43 |  *		NOTE: /~ in the beginning must be explicitly matched.
44 |  *
45 |  *	HTPattern_firstWild(pat,act)
46 |  *		takes a pattern and a string matching that pattern,
47 |  *		and returns a pointer inside the string to the first
48 |  *		character matched by the first wildcard in pattern.
49 |  *		IMPORTANT: string really has to match the pattern,
50 |  *		i.e. it must have HTPattern_match()'ed before.
51 |  *
52 |  *	HTPattern_url_match(pat,url)
53 |  *		takes a pattern and a URL-escaped URL, and matches
54 |  *		an unescaped version of URL against the pattern;
55 |  *		returns YES on match, NO on mismatch.
56 |  *
57 |  *	The datatype HTPattern should be treated as an abstract datatype.
58 |  */
59 | 
60 | #ifndef HTWILD_H
61 | #define HTWILD_H
62 | 
63 | #include "HTUtils.h"
64 | 
65 | typedef struct _HTPattern {
66 |     BOOL		wild;	/* If wildcard before this text */
67 |     char *		text;	/* Required text after wildcard */
68 |     struct _HTPattern *	next;	/* Next required text portion */
69 | } HTPattern;
70 | 
71 | PUBLIC HTPattern * HTPattern_new PARAMS((CONST char * str));
72 | PUBLIC void	   HTPattern_free PARAMS((HTPattern * pat));
73 | PUBLIC char *	   HTPattern_match PARAMS((HTPattern *	pat,
74 | 					   HTPattern *	eqv,
75 | 					   CONST char *	act));
76 | PUBLIC char *	   HTPattern_firstWild PARAMS((HTPattern * pat,
77 | 					       char *	   act));
78 | PUBLIC BOOL HTPattern_url_match PARAMS((HTPattern *	pat,
79 | 					CONST char *	url));
80 | 
81 | #endif /* HTWILD_H */
82 | 
83 | 
84 | 85 | End of declaration module 86 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /Daemon/Implementation/HTims.h: -------------------------------------------------------------------------------- 1 | /* Stream for If-Modified-Since 2 | STREAM FOR IF-MODIFIED-SINCE 3 | 4 | */ 5 | /* 6 | ** (c) COPYRIGHT MIT 1995. 7 | ** Please first read the full copyright statement in the file COPYRIGH. 8 | */ 9 | /* 10 | 11 | Stream for making sure that If-Modified-Since request is handled correctly. 12 | 13 | */ 14 | #ifndef HT_IMS_H 15 | #define HT_IMS_H 16 | 17 | #include "HTUtils.h" 18 | #include "tcp.h" 19 | #include "HTStream.h" 20 | 21 | PUBLIC HTStream * HTIfModSinceStream PARAMS((time_t limit, 22 | HTStream * sink)); 23 | 24 | #endif /* HT_IMS_H */ 25 | /* 26 | 27 | End of declaration module */ 28 | -------------------------------------------------------------------------------- /Daemon/Implementation/HTims.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Stream for If-Modified-Since 4 | 5 | 6 | 7 |

Stream for If-Modified-Since

8 | 9 |
10 | /*
11 | **	(c) COPYRIGHT MIT 1995.
12 | **	Please first read the full copyright statement in the file COPYRIGH.
13 | */
14 | 
15 | 16 | Stream for making sure that If-Modified-Since request is handled correctly. 17 | 18 |
19 | #ifndef HT_IMS_H
20 | #define HT_IMS_H
21 | 
22 | #include "HTUtils.h"
23 | #include "tcp.h"
24 | #include "HTStream.h"
25 | 
26 | PUBLIC HTStream * HTIfModSinceStream PARAMS((time_t	limit,
27 | 					     HTStream *	sink));
28 | 
29 | #endif /* HT_IMS_H */
30 | 
31 | 32 | End of declaration module 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /Daemon/Implementation/README: -------------------------------------------------------------------------------- 1 | 2 | WELCOME TO THE WORLD-WIDE WEB DAEMON 3 | ==================================== 4 | 5 | (c) COPYRIGHT MIT 1995. 6 | Please first read the full copyright statement in the file COPYRIGH. 7 | 8 | "This product includes computer software created and made available by 9 | CERN. This acknowledgement shall be mentioned in full in any product 10 | which includes the CERN computer software included herein or parts 11 | thereof." 12 | 13 | W3C httpd is a generic public domain full-featured hypertext server 14 | which can be used as a regular HTTP server. The running typically on 15 | port 80 to serve hypertext and other documents, and also as a proxy -- 16 | a server on a firewall machine -- that provides access for people 17 | inside a firewall to the outside world. When running as proxy httpd 18 | may be configured to do caching of documents resulting in faster 19 | response times.

20 | 21 | For more information on the Library, please look at the page 22 | 23 | http://www.w3.org/hypertext/WWW/Daemon/Status.html 24 | 25 | Have fun! 26 | 27 | -- 28 | 29 | httpd@w3.org, May 1995 30 | -------------------------------------------------------------------------------- /Daemon/Implementation/Version.make: -------------------------------------------------------------------------------- 1 | VD = 3.0A 2 | -------------------------------------------------------------------------------- /Daemon/Implementation/vms/.cvsignore: -------------------------------------------------------------------------------- 1 | *.h .www_browsable 2 | -------------------------------------------------------------------------------- /Daemon/Implementation/vms/00readme.html: -------------------------------------------------------------------------------- 1 |

Read Me for [.DAEMON.ETC]
2 | 3 | 4 | See the CERN server documentation for detailed descriptions of the 6 | v2.16 httpd and explanations of how to use it. 7 |

8 | 9 | To build the server, execute DESCRIP.MMS, BUILD_MULTINET.COM or 10 | BUILD_UCX.COM in [.LIBRARY.IMPLEMENTATION.VMS] to create the common 11 | object library (WWWLib.olb), then execute the corresponding file 12 | in [.DAEMON.IMPLEMENTATION.VMS] to build the server (HTTPD.exe), 13 | clickable image support (HTImage.exe), and authorization file 14 | utility (HTAdm.exe). If you do not yet have a W3 client, 16 | you can build the simple Line Mode Client (WWW.exe) with the MMS 17 | or appropriate command file in [.LINEMODE.IMPLEMENTATION.VMS] to check 18 | out the server. 19 |

20 | 21 | Start by testing the server as a detached process on port 8001 22 | with TRACE implemented, after reading all the headers and comments 23 | in the foo_HTTP8001.COM files, HTTP8001.CONF, and SPAWNINIT.COM. 24 |

25 | 26 | Read the headers and comments of the other foo.COM and foo.PP files for 27 | information on what they do and how to use them. 28 |

29 | 30 | If the server checks out OK on port 8001, install it on port 80, 31 | either: 32 |

33 |

    34 |
  1. as a detached process by using SUBMIT_HTTP80.COM,
    35 | or 36 |
  2. under Inetd (MultNet's MULTINET_SERVER or UCX's AUX) with a 37 | system logical (HTTPD_CONFIG80) pointing to HTTP80.CONF, and after 38 | INSTALLing the image /SHAR/OPEN/HEAD to speed up initiation of 39 | multiple Inetd processes. 40 |
41 | 42 | -------------------------------------------------------------------------------- /Daemon/Implementation/vms/00readme.txt: -------------------------------------------------------------------------------- 1 | 2 | See the CERN server documentation for detailed descriptions of the 3 | v2.16 httpd and explanations of how to use it. 4 | 5 | To build the server, execute DESCRIP.MMS, BUILD_MULTINET.COM or 6 | BUILD_UCX.COM in [.LIBRARY.IMPLEMENTATION.VMS] to create the common 7 | object library (WWWLib.olb), then execute the corresponding file in 8 | [.DAEMON.IMPLEMENTATION.VMS] to build the server (HTTPD.exe), 9 | clickable image support (HTImage.exe), and authorization file utility 10 | (HTAdm.exe). If you do not yet have a W3 client, you can build the 11 | simple Line Mode Client (WWW.exe) with the MMS or appropriate command 12 | file in [.LINEMODE.IMPLEMENTATION.VMS] to check out the server. 13 | 14 | Start by testing the server as a detached process on port 8001 with 15 | TRACE implemented, after reading all the headers and comments in the 16 | foo_HTTP8001.COM files, HTTP8001.CONF, and SPAWNINIT.COM. 17 | 18 | Read the headers and comments of the other foo.COM and foo.PP files 19 | for information on what they do and how to use them. 20 | 21 | If the server checks out OK on port 8001, install it on port 80, 22 | either: 23 | 24 | 1. as a detached process by using SUBMIT_HTTP80.COM, 25 | or 26 | 2. under Inetd (MultNet's MULTINET_SERVER or UCX's AUX) with a system 27 | logical (HTTPD_CONFIG80) pointing to HTTP80.CONF, and after 28 | INSTALLing the image /SHAR/OPEN/HEAD to speed up initiation of 29 | multiple Inetd processes. 30 | -------------------------------------------------------------------------------- /Daemon/Implementation/vms/CVS/Entries: -------------------------------------------------------------------------------- 1 | /00readme.html/1.1/Tue Jul 12 14:52:26 1994//Tcern-update 2 | /00readme.txt/1.1/Tue Jul 12 14:52:29 1994//Tcern-update 3 | /HTImage.com/1.1/Tue Jul 12 14:52:31 1994//Tcern-update 4 | /HTextDummy.c/1.1/Tue Jul 12 14:52:33 1994//Tcern-update 5 | /build_multinet.com/1.4/Tue Jul 12 14:52:36 1994//Tcern-update 6 | /build_multinet.com_alpha/1.3/Tue Jul 12 14:52:38 1994//Tcern-update 7 | /build_ucx.com/1.2/Tue Jul 12 14:52:44 1994//Tcern-update 8 | /build_ucx.com_alpha/1.2/Tue Jul 12 14:52:46 1994//Tcern-update 9 | /descrip.mms/1.4/Tue Jul 12 14:52:49 1994//Tcern-update 10 | /echo.com/1.1/Tue Jul 12 14:52:52 1994//Tcern-update 11 | /example_httpd.conf/1.1/Mon Mar 21 15:42:59 1994//Tcern-update 12 | /htdir.com/1.1/Tue Jul 12 14:52:54 1994//Tcern-update 13 | /http80.conf/1.1/Tue Jul 12 14:52:56 1994//Tcern-update 14 | /http8001.conf/1.1/Tue Jul 12 14:52:59 1994//Tcern-update 15 | /inetd80.conf/1.1/Mon Mar 21 15:43:02 1994//Tcern-update 16 | /inetd_httpd.conf/1.1/Mon Mar 21 15:43:09 1994//Tcern-update 17 | /localtime.pp/1.1/Tue Jul 12 14:53:01 1994//Tcern-update 18 | /query.com/1.1/Tue Jul 12 14:53:04 1994//Tcern-update 19 | /queryvms.c/1.1/Tue Jul 12 14:53:07 1994//Tcern-update 20 | /run_http80.com/1.1/Tue Jul 12 14:53:09 1994//Tcern-update 21 | /run_http8001.com/1.2/Tue Jul 12 14:53:12 1994//Tcern-update 22 | /setup.com/1.2/Thu Mar 10 16:03:22 1994//Tcern-update 23 | /spawninit.com/1.2/Tue Jul 12 14:53:14 1994//Tcern-update 24 | /start_http80.com/1.1/Tue Jul 12 14:53:17 1994//Tcern-update 25 | /start_http8001.com/1.2/Tue Jul 12 14:53:20 1994//Tcern-update 26 | /submit_http80.com/1.1/Tue Jul 12 14:53:23 1994//Tcern-update 27 | /submit_http8001.com/1.2/Tue Jul 12 14:53:25 1994//Tcern-update 28 | /welcome.pp/1.1/Tue Jul 12 14:53:28 1994//Tcern-update 29 | /wfebgopher.pp/1.1/Tue Jul 12 14:53:31 1994//Tcern-update 30 | /.cvsignore/1.1/Fri Jun 16 18:36:28 1995//Tcern-update 31 | -------------------------------------------------------------------------------- /Daemon/Implementation/vms/CVS/Repository: -------------------------------------------------------------------------------- 1 | /afs/w3.org/pub/WWW/Daemon/Repository/Implementation/vms 2 | -------------------------------------------------------------------------------- /Daemon/Implementation/vms/CVS/Root: -------------------------------------------------------------------------------- 1 | /afs/w3.org/pub/WWW 2 | -------------------------------------------------------------------------------- /Daemon/Implementation/vms/CVS/Tag: -------------------------------------------------------------------------------- 1 | Tcern-update 2 | -------------------------------------------------------------------------------- /Daemon/Implementation/vms/HTImage.com: -------------------------------------------------------------------------------- 1 | $ run /nodeb delphi$www:[specific.htbin]htimage 2 | -------------------------------------------------------------------------------- /Daemon/Implementation/vms/HTextDummy.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Dummy module to prevent unresolved links to routines that are not called 3 | * anyway (client routines) 4 | * 5 | * Mark Donszelmann 6 | * 7 | * BUG: only routines referred to are included.... 8 | * 9 | */ 10 | 11 | #include "htext.h" 12 | #include "HTConfig.h" 13 | 14 | PUBLIC void HText_appendCharacter ARGS2(HText *, text, char, ch) {}; 15 | PUBLIC void HText_appendText ARGS2(HText *, text, CONST char *, str) {}; 16 | PUBLIC void HText_appendParagraph ARGS1(HText *, text) {}; 17 | PUBLIC void HText_appendImage ARGS5( 18 | HText * ,text, 19 | HTChildAnchor * ,anc, 20 | CONST char * ,alternative_text, 21 | CONST char * ,alignment, 22 | BOOL ,isMap) {}; 23 | PUBLIC void HText_beginAppend ARGS1(HText *, text) {}; 24 | PUBLIC void HText_endAppend ARGS1(HText *, text) {}; 25 | PUBLIC void HText_beginAnchor ARGS2(HText *, text, HTChildAnchor *, anc) {}; 26 | PUBLIC void HText_endAnchor ARGS1(HText *, text) {}; 27 | PUBLIC BOOL HText_select ARGS1(HText *, text) { return (0); }; 28 | PUBLIC BOOL HText_selectAnchor ARGS2(HText *, text, HTChildAnchor*, anchor) { return (0); }; 29 | PUBLIC HText * HText_new2 ARGS2(HTParentAnchor *, anchor, 30 | HTStream *, output_stream) { return (0); }; 31 | PUBLIC void HText_setStyle ARGS2(HText *, text, HTStyle *, style) {}; 32 | 33 | PUBLIC HTAAProt * HTDefProt = NULL; 34 | PUBLIC HTAAProt * HTProt = NULL; 35 | 36 | PUBLIC HTParentAnchor * HTMainAnchor = 0; 37 | 38 | PUBLIC HText * HTMainText = 0; 39 | 40 | PUBLIC HTServerConfig sc = 0; 41 | PUBLIC HTResourceConfig rc = 0; 42 | PUBLIC HTCacheConfig cc = 0; 43 | -------------------------------------------------------------------------------- /Daemon/Implementation/vms/echo.com: -------------------------------------------------------------------------------- 1 | $! 2 | $! Echo command for HTbin. 3 | $! 4 | $! 5 | $ say = "write WWW_OUT" 6 | $ say "Content-Type: text/html" 7 | $ say "" 8 | $ say "" 9 | $ say "Echo for htbin" 10 | $ say "

Echo for htbin

" 11 | $ say "The following symbols were passed to this script:
" 12 | $ say "
"
13 | $ show sym WWW_*
14 | $ say "
" 15 | $exit 16 | -------------------------------------------------------------------------------- /Daemon/Implementation/vms/example_httpd.conf: -------------------------------------------------------------------------------- 1 | exec /htbin/* /disk$user/www/htbin/* 2 | search /disk$user/www/search.com 3 | userdir /www 4 | pass / /disk$user/www/welcome.html 5 | pass /disk$user/* 6 | -------------------------------------------------------------------------------- /Daemon/Implementation/vms/http80.conf: -------------------------------------------------------------------------------- 1 | # 2 | # HTTP80.CONF - Rule file for production installation of CERN httpd 3 | # ----------- on port 80 -- F.Macrides (macrides@sci.wfeb.edu) 4 | # Use for either detached of Inetd installations. 5 | # If Inetd, point to this file via a system logical: 6 | # $ DEFINE/SYSTEM HTTPD_CONFIG80 "HTTPD_Dir:http80.conf" 7 | inputtimeout 300 8 | outputtimeout 300 9 | scripttimeout 300 10 | spawninit /HTTPD_Dir/SpawnInit.com 11 | scratchdir /WWW_Root/SCRATCH/ 12 | accesslog /HTTPD_Dir/http80.log 13 | errorlog /HTTPD_Dir/http80_error.log 14 | logfileformat new 15 | logtime localtime 16 | exec /htbin/* /HTTPD_Dir/* 17 | map /www/* /WWW_Root/000000/* 18 | map / /WWW_Root/000000/Welcome.html 19 | pass /WWW_Root/000000/* 20 | fail * 21 | -------------------------------------------------------------------------------- /Daemon/Implementation/vms/http8001.conf: -------------------------------------------------------------------------------- 1 | # 2 | # HTTP8001.CONF - Rule file for testing CERN v2.16vmsbeta httpd 3 | # ------------- on port 8001 -- F.Macrides (macrides@sci.wfeb.edu) 4 | # 5 | # Set up timeout and script-handling parameters 6 | # 7 | inputtimeout 300 8 | outputtimeout 300 9 | scripttimeout 300 10 | spawninit /HTTPD_Dir/SpawnInit.com 11 | scratchdir /WWW_Root/SCRATCH/ 12 | # 13 | # Set up logging 14 | # 15 | accesslog /HTTPD_Dir/http8001.log 16 | errorlog /HTTPD_Dir/http8001_error.log 17 | logfileformat new 18 | logtime localtime 19 | # 20 | # Set up script URL handling 21 | # This example makes http://:8001/dir/etc 22 | # equivalent to http://:8001/htbin/htdir/etc 23 | # for creating a menu of this directory via htdir.com 24 | # and enables URL's such as http://:8001/htbin/localtime 25 | # and http://:8001/htbin/wfebgopher 26 | # 27 | map /dir/* /htbin/htdir/* 28 | exec /htbin/* /HTTPD_Dir/* 29 | map /etc/* /HTTPD_Dir/* 30 | # 31 | # Set up file serving via the data tree 32 | # 33 | map /www/* /WWW_Root/000000/* 34 | map / /WWW_Root/000000/Welcome.html 35 | pass /WWW_Root/000000/* 36 | # 37 | # Make this directory available for the htdir.com example 38 | # 39 | pass /HTTPD_Dir/* 40 | fail * 41 | # 42 | # Add typing of extensions that are not in HTSInit.c, 43 | # for the htdir.com example 44 | # 45 | addtype .pp text/plain 7-bit 0.5 46 | addtype _ori text/plain 7-bit 0.5 47 | -------------------------------------------------------------------------------- /Daemon/Implementation/vms/inetd80.conf: -------------------------------------------------------------------------------- 1 | # 2 | # Configuration file for Inetd on VMS -- F.Macrides (macrides@sci.wfeb.edu) 3 | # 4 | # See the comment header in the httpd.conf example rule file for info 5 | # on setting up the "HTTPD_Dir" and "WWW_Root" logical devices. 6 | # 7 | RuleFile: HTTPD_Dir:httpd.conf #Rule file is here 8 | SpawnInit: HTTPD_Dir:SpawnInit.com #For initializing subprocesses 9 | ScratchDir: WWW_Root:[SCRATCH] #Scratch files go here 10 | DataDirectory: WWW_Root:[000000] #Base directory is here 11 | LogFile: WWW_Root:[000000]http80.log #Log file is here 12 | AALog: FALSE #HTAA Logging? 13 | -------------------------------------------------------------------------------- /Daemon/Implementation/vms/inetd_httpd.conf: -------------------------------------------------------------------------------- 1 | # 2 | # Example rule file for VMS -- F.Macrides (macrides@sci.wfeb.edu) 3 | # 4 | # Replace "device" with the actual device for the path to the executables 5 | # and scripts (command files). Also define that directory as a system 6 | # logical: DEFINE/SYSTEM/EXEC "HTTPD_Dir" device:[WWW.214VMS.DAEMON.VMS] 7 | # 8 | # Define the data tree as a system logical: 9 | # DEFINE/SYSTEM/EXEC/TRAN=CONCEAL/NAME=NO_ALIAS "WWW_Root" device:[WWW_DATA.] 10 | # 11 | # Scripts will be accessed via: http://[:port]/htbin/scriptname 12 | # 13 | # Files will be accessed via: http://[:port]/www/Foo.html 14 | # http://[:port]/www/Gosh/GeeWizz.html 15 | # corresponding to: WWW_Root:[000000]Foo.html 16 | # WWW_Root:[Gosh]GeeWizz.html 17 | # "http://[:port]/" defaults to: http://[:port]/www/Welcome.html 18 | # corresponding to: WWW_Root:[000000]Welcome.html 19 | # 20 | # The handling of scriptnames and /www paths is case insensitve on VMS. 21 | # 22 | # The accompanying Inetd configuration file assumes you have created: 23 | # WWW_Root:[SCRATCH] (i.e, device:[WWW_DATA.SCRATCH]) 24 | # for holding temporary files associated with script execution. 25 | # 26 | htbin /device/www/214vms/daemon/vms 27 | map /WWW/* /www/* 28 | map /www/* /WWW_Root/000000/* 29 | map / /WWW_Root/000000/Welcome.html 30 | pass /WWW_Root/000000/* 31 | fail * 32 | -------------------------------------------------------------------------------- /Daemon/Implementation/vms/localtime.pp: -------------------------------------------------------------------------------- 1 | $! 'f$verify(0)' 2 | $!============================================================================ 3 | $! LOCALTIME.PP -- F.Macrides 4 | $! ------------ 5 | $! Test script handling 6 | $! 7 | $! This simple script executes the "show time" command 8 | $! on the http server and returns the local time and date 9 | $! as a text/html file to the client. 10 | $! 11 | $!============================================================================ 12 | $ say := "write WWW_OUT" 13 | $ say "Content-Type: text/html" 14 | $ say "" 15 | $ say "Local Date and Time" 16 | $ say "
"
17 | $ say "Our local date and time are:"
18 | $ say ""
19 | $ show time
20 | $ say "
" 21 | $exit 22 | -------------------------------------------------------------------------------- /Daemon/Implementation/vms/query.com: -------------------------------------------------------------------------------- 1 | $! 'f$verify(0)' 2 | $!============================================================================ 3 | $! QUERY.COM (Called as an htbin script) 4 | $! --------- 5 | $! Report POST or GET Form name/value pairs (F.Macrides) 6 | $! 7 | $! This simple script calls queryvms.exe with the headers switch 8 | $! to return a form entries report for the CERN httpd, like those 9 | $! returned by the post-query and query procedures for the NCSA 10 | $! httpd. 11 | $! 12 | $!============================================================================ 13 | $ queryvms := $HTTPD_Dir:queryvms.exe 14 | $ queryvms -headers 15 | $exit 16 | -------------------------------------------------------------------------------- /Daemon/Implementation/vms/run_http80.com: -------------------------------------------------------------------------------- 1 | $!=========================================================================== 2 | $! RUN_HTTP80.COM (Evoked via START_HTTP80.COM) 3 | $! -------------- 4 | $! 5 | $! 01-APR-1994 F.Macrides Input file for the CERN v2.16betavms httpd 6 | $! invoked as a detached process on port 80 7 | $! 8 | $!=========================================================================== 9 | $! Define these logicals BEFORE running this procedure: 10 | $!--------------------------------------------------------------------------- 11 | $! DEFINE/SYSTEM/NOLOG "HTTPD_Dir" device:[WWW.DAEMON.ETC] 12 | $! DEFINE/SYSTEM/EXEC/TRAN=CONCEAL/NAME=NO_ALIAS "WWW_Root" device:[WWW_DATA.] 13 | $!---------------------------------------------------------------------------- 14 | $! and have a startup file: WWW_Root:[000000]Welcome.html 15 | $!============================================================================ 16 | $! 17 | $! Define this foreign command, here, and similarly set up SpawnInit.com 18 | $! BEFORE running this procedure, by replacing: 19 | $! "device" apporpriately 20 | $! "platform" with VAX or AXP 21 | $! "transport" with MULTINET or UCX 22 | $!------------------------------------------------------------ 23 | $ httpd :== "$device:[WWW.DAEMON.platform.transport]httpd.exe" 24 | $!------------------------------------------------------------ 25 | $ set noon 26 | $ v = f$verify(1) 27 | $!RUN_HTTP80.COM procedure: 28 | $!--------------------------- 29 | $ set proc/priv=(noall, sysprv, tmpmbx, netmbx) 30 | $ if f$search("HTTPD_Dir:http80_trace.log") - 31 | then purge/keep=3 HTTPD_Dir:http80_trace.log 32 | $ if f$search("HTTPD_Dir:http80_error.log") - 33 | then purge/keep=3 HTTPD_Dir:http80_error.log 34 | $ show time 35 | $!-------------------------------------------------------------- 36 | $!Run on port (-p) 80 with 37 | $! rule file (-r) assigned HTTPD_Dir:http80.conf 38 | $! errors logged in HTTPD_Dir:http80_error.log 39 | $! requests logged in HTTPD_Dir:http80.log 40 | $! and job messages logged in HTTPD_Dir:http80_output.log 41 | $!-------------------------------------------------------------- 42 | $ httpd -r "HTTPD_Dir:http80.conf" -p 80 43 | $ exit 44 | -------------------------------------------------------------------------------- /Daemon/Implementation/vms/run_http8001.com: -------------------------------------------------------------------------------- 1 | $!=========================================================================== 2 | $! RUN_HTTP8001.COM (Evoked via START_HTTP8001.COM) 3 | $! ---------------- 4 | $! 5 | $! 13-FEB-1994 F.Macrides (macrides@sci.wfeb.edu) -- Initial version. 6 | $! For testing CERN v2.14VMS http daemon as a detached 7 | $! process on port 8001 8 | $! 9 | $! 01-Apr-1994 F.Macrides Upgraded for CERN v2.16betavms 10 | $! 11 | $!=========================================================================== 12 | $! Define these logicals BEFORE running this procedure: 13 | $!--------------------------------------------------------------------------- 14 | $! DEFINE/SYSTEM/NOLOG "HTTPD_Dir" device:[WWW.DAEMON.ETC] 15 | $! DEFINE/SYSTEM/EXEC/TRAN=CONCEAL/NAME=NO_ALIAS "WWW_Root" device:[WWW_DATA.] 16 | $!---------------------------------------------------------------------------- 17 | $! and have a startup file: WWW_Root:[000000]Welcome.html 18 | $!============================================================================ 19 | $! 20 | $! Define this foreign command, here, and similarly set up SpawnInit.com 21 | $! BEFORE running this procedure, by replacing: 22 | $! "device" apporpriately 23 | $! "platform" with VAX or AXP 24 | $! "transport" with MULTINET or UCX 25 | $!------------------------------------------------------------ 26 | $ httpd :== "$device:[WWW.DAEMON.platform.transport]httpd.exe" 27 | $!------------------------------------------------------------ 28 | $ set noon 29 | $ v = f$verify(1) 30 | $!RUN_HTTP8001.COM procedure: 31 | $!--------------------------- 32 | $ set proc/priv=(noall, sysprv, tmpmbx, netmbx) 33 | $ if f$search("HTTPD_Dir:http8001_trace.log") - 34 | then purge/keep=3 HTTPD_Dir:http8001_trace.log 35 | $ if f$search("HTTPD_Dir:http8001_error.log") - 36 | then purge/keep=3 HTTPD_Dir:http8001_error.log 37 | $ show time 38 | $!-------------------------------------------------------------- 39 | $!Run on port (-p) 8001 with 40 | $! rule file (-r) assigned HTTPD_Dir:http8001.conf 41 | $! TRACE info (-v) logged in HTTPD_Dir:http8001_trace.log 42 | $! errors logged in HTTPD_Dir:http8001_error.log 43 | $! and requests logged in HTTPD_Dir:http8001.log 44 | $!-------------------------------------------------------------- 45 | $ httpd -v -r "HTTPD_Dir:http8001.conf" -p 8001 46 | $ exit 47 | -------------------------------------------------------------------------------- /Daemon/Implementation/vms/setup.com: -------------------------------------------------------------------------------- 1 | $ THIS_PATH = F$Element (0, "]", F$Environment ("PROCEDURE")) + "]" 2 | $ httpd :== $ 'THIS_PATH'httpd.exe 3 | $ htadm :== $ 'THIS_PATH'htadm.exe 4 | $ htimage :== $ 'THIS_PATH'htimage.exe 5 | $ cgiparse :== $ 'THIS_PATH'cgiparse.exe 6 | -------------------------------------------------------------------------------- /Daemon/Implementation/vms/spawninit.com: -------------------------------------------------------------------------------- 1 | $ V = 'F$VERIFY(0)' 2 | $ ON ERROR THEN CONTINUE 3 | $! 4 | $!**************************************************************************** 5 | $!* * 6 | $!* SPAWNINIT.COM * 7 | $!* (For passing symbols/logicals to sys$creprc()-created processes) * 8 | $!* Foteos Macrides (MACRIDES@SCI.WFEB.EDU) * 9 | $!* * 10 | $!**************************************************************************** 11 | $! 12 | $! This command procedure should be executed by the sys$creprc()-created 13 | $! processes for script execution on VMS. 14 | $! 15 | $! It's location and name should be defined via the "spawninit" field of 16 | $! the CERN httpd's rule file. 17 | $! 18 | $! The rule file also can include a "scratchdir" field for designating the 19 | $! directory in which to create the httpd's temporary files associated with 20 | $! script execution. Otherwise, they will be created in whatever is the 21 | $! "current default" directory of the httpd image. 22 | $! 23 | $! Note that when the httpd is installed under Inetd/MULTINET_SERVER, 24 | $! such processes have FMODE() .eqs. "OTHER", do not (and should not) 25 | $! execute SYS$MANAGER:SYLOGIN.COM, and therefore need to acquire *all* 26 | $! their foreign command symbols from this alternate command procedure. 27 | $! 28 | $! This command procedure also can be used to pass logicals to the 29 | $! sys$creprc()-created processes. 30 | $! 31 | $ CGIPARSE :== $device:[directory]CGIPARSE 32 | $ HTIMAGE :== $device:[directory]HTIMAGE 33 | $! 34 | $ EGR*EP :== $device:[directory]EGREP 35 | $ GAWK :== $device:[directory]GAWK 36 | $! 37 | $ COP*Y :== COPY/LOG 38 | $ DEL*ETE :== DELETE/LOG 39 | $ PUR*GE :== PURGE/LOG 40 | $ REN*AME :== RENAME/LOG 41 | $ PRI*NT :== PRINT/NOFLAG 42 | $! 43 | $ EXIT 44 | -------------------------------------------------------------------------------- /Daemon/Implementation/vms/start_http80.com: -------------------------------------------------------------------------------- 1 | $!=========================================================================== 2 | $! START_HTTP80.COM (Evoked via SUBMIT_HTTP80.COM) 3 | $! ---------------- 4 | $! 5 | $! 01-APR-1994 F.Macrides Command file for calling the CERN v2.16betavms 6 | $! httpd as a detached process on port 80 7 | $! 8 | $!=========================================================================== 9 | $! Define these logicals BEFORE running this procedure: 10 | $!--------------------------------------------------------------------------- 11 | $! DEFINE/SYSTEM/NOLOG "HTTPD_Dir" device:[WWW.DAEMON.ETC] 12 | $! DEFINE/SYSTEM/EXEC/TRAN=CONCEAL/NAME=NO_ALIAS "WWW_Root" device:[WWW_DATA.] 13 | $!---------------------------------------------------------------------------- 14 | $! and have a startup file: WWW_Root:[000000]Welcome.html 15 | $!============================================================================ 16 | $! 17 | $on error then continue 18 | $ set proc/priv=(detach, sysprv, tmpmbx, netmbx) 19 | $ run/detached/Process_Name="HTTP80_Daemon"- 20 | /buffer_limit=140000- 21 | /working_set=500/extent=2500/maximum_working_set=1500- 22 | /input= HTTPD_Dir:RUN_HTTP80.COM- 23 | /output= HTTPD_Dir:HTTP80_output.log- 24 | /priv= (nosame, sysprv, tmpmbx, netmbx)- 25 | Sys$System:Loginout 26 | $ exit 27 | -------------------------------------------------------------------------------- /Daemon/Implementation/vms/start_http8001.com: -------------------------------------------------------------------------------- 1 | $!=========================================================================== 2 | $! START_HTTP8001.COM (Evoked via SUBMIT_HTTP8001.COM) 3 | $! ------------------ 4 | $! 5 | $! 13-FEB-1994 F.Macrides (macrides@sci.wfeb.edu) -- Initial version. 6 | $! For testing CERN v2.14VMS http daemon as a detached 7 | $! process on port 8001 8 | $! 9 | $! 01-APR-1994 F.Macrides Ungraded for CERN v2.16betavms 10 | $! 11 | $!=========================================================================== 12 | $! Define these logicals BEFORE running this procedure: 13 | $!--------------------------------------------------------------------------- 14 | $! DEFINE/SYSTEM/NOLOG "HTTPD_Dir" device:[WWW.DAEMON.ETC] 15 | $! DEFINE/SYSTEM/EXEC/TRAN=CONCEAL/NAME=NO_ALIAS "WWW_Root" device:[WWW_DATA.] 16 | $!---------------------------------------------------------------------------- 17 | $! and have a startup file: WWW_Root:[000000]Welcome.html 18 | $!============================================================================ 19 | $! 20 | $on error then continue 21 | $ set proc/priv=(detach, sysprv, tmpmbx, netmbx) 22 | $ run/detached/Process_Name="HTTP8001_Daemon"- 23 | /buffer_limit=140000- 24 | /working_set=500/extent=2500/maximum_working_set=1500- 25 | /input= HTTPD_Dir:RUN_HTTP8001.COM- 26 | /output= HTTPD_Dir:HTTP8001_trace.log- 27 | /priv= (nosame, sysprv, tmpmbx, netmbx)- 28 | Sys$System:Loginout 29 | $ exit 30 | -------------------------------------------------------------------------------- /Daemon/Implementation/vms/submit_http80.com: -------------------------------------------------------------------------------- 1 | $!=========================================================================== 2 | $! SUBMIT_HTTP80.COM 3 | $! ----------------- 4 | $! 5 | $! 01-APR-1994 F.Macrides Command file for running the CERN v2.16betavms 6 | $! httpd as a detached process on port 80 7 | $! 8 | $!=========================================================================== 9 | $! Define these logicals BEFORE running this procedure: 10 | $!--------------------------------------------------------------------------- 11 | $! DEFINE/SYSTEM/NOLOG "HTTPD_Dir" device:[WWW.DAEMON.ETC] 12 | $! DEFINE/SYSTEM/EXEC/TRAN=CONCEAL/NAME=NO_ALIAS "WWW_Root" device:[WWW_DATA.] 13 | $!---------------------------------------------------------------------------- 14 | $! and have a startup file: WWW_Root:[000000]Welcome.html 15 | $!============================================================================ 16 | $! 17 | $ v = f$verify(1) 18 | $ set proc/priv=(detach, sysprv, tmpmbx, netmbx) 19 | $!------------------------------------------------------- 20 | $! Specify a suitably privileged username in place of FOO 21 | $!------------------------------------------------------- 22 | $ SUBMIT/user=FOO/nolog HTTPD_Dir:START_HTTP80.COM 23 | $ v = f$verify(v) 24 | $ exit 25 | -------------------------------------------------------------------------------- /Daemon/Implementation/vms/submit_http8001.com: -------------------------------------------------------------------------------- 1 | $!=========================================================================== 2 | $! SUBMIT_HTTP8001.COM 3 | $! ------------------- 4 | $! 5 | $! 13-FEB-1994 F.Macrides (macrides@sci.wfeb.edu) -- Initial version. 6 | $! For testing CERN v2.14VMS http daemon as a detached 7 | $! process on port 8001 8 | $! 9 | $! 01-APR-1994 F.Macrides Upgraded for CERN v2.16betavms 10 | $! 11 | $!=========================================================================== 12 | $! Define these logicals BEFORE running this procedure: 13 | $!--------------------------------------------------------------------------- 14 | $! DEFINE/SYSTEM/NOLOG "HTTPD_Dir" device:[WWW.DAEMON.ETC] 15 | $! DEFINE/SYSTEM/EXEC/TRAN=CONCEAL/NAME=NO_ALIAS "WWW_Root" device:[WWW_DATA.] 16 | $!---------------------------------------------------------------------------- 17 | $! and have a startup file: WWW_Root:[000000]Welcome.html 18 | $!============================================================================ 19 | $! 20 | $ v = f$verify(1) 21 | $ set proc/priv=(detach, sysprv, tmpmbx, netmbx) 22 | $ SUBMIT/user=SYSTEM/nolog HTTPD_Dir:START_HTTP8001.COM 23 | $ v = f$verify(v) 24 | $ exit 25 | -------------------------------------------------------------------------------- /Daemon/Implementation/vms/welcome.pp: -------------------------------------------------------------------------------- 1 | $! 'f$verify(0)' 2 | $!============================================================================ 3 | $! WELCOME.PP - Foteos Macrides 4 | $! ---------- 5 | $! Test "Location:" handling 6 | $! 7 | $! This simple script redirects the URL 8 | $! http://[:port]/htbin/welcome 9 | $! to your default Welcome.html. 10 | $! 11 | $! Why? Well... a script could determine that a local file should be 12 | $! sent to the client. You want the server to recheck the 13 | $! authorization via REDIRECTION_ON_THE_FLY before sending it, 14 | $! rather than kludging in such code yourself. If you don't 15 | $! include an access and host field, as in this example, the 16 | $! server will do that and process the file if OK, rather than 17 | $! returning a complete URL for the client to resubmit. 18 | $! 19 | $!============================================================================ 20 | $ say := "write WWW_OUT" 21 | $ say "Location: /www/Welcome.html" 22 | $ say "" 23 | $exit 24 | -------------------------------------------------------------------------------- /Daemon/Implementation/vms/wfebgopher.pp: -------------------------------------------------------------------------------- 1 | $! 'f$verify(0)' 2 | $!============================================================================ 3 | $! WFEBGOPHER.PP - F.Macrides 4 | $! ------------- 5 | $! Test "Location:" handling 6 | $! 7 | $! This simple script redirects the URL 8 | $! http://[:port]/htbin/wfebgopher 9 | $! to the entry menu of the WFEB gopher server. 10 | $! 11 | $! Why? Well... A script could decide that what the client wants is 12 | $! a file, menu, or service on another server. If the script 13 | $! returns a complete URL as a Location field (instead of a 14 | $! Content-Type), the client should go get it from that server, 15 | $! as a resubmission which invokes access checking on that other 16 | $! server. 17 | $! 18 | $!============================================================================ 19 | $ say := "write WWW_OUT" 20 | $ say "Location: gopher://sci.wfeb.edu/1" 21 | $ say "" 22 | $exit 23 | -------------------------------------------------------------------------------- /Library/CVS/Entries: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hackervera/cern-httpd/a709a028c11b486c58cad53a09658d30ba327694/Library/CVS/Entries -------------------------------------------------------------------------------- /Library/CVS/Repository: -------------------------------------------------------------------------------- 1 | /afs/w3.org/pub/WWW/Library/Repository 2 | -------------------------------------------------------------------------------- /Library/CVS/Root: -------------------------------------------------------------------------------- 1 | /afs/w3.org/pub/WWW 2 | -------------------------------------------------------------------------------- /Library/CVS/Tag: -------------------------------------------------------------------------------- 1 | Tcern-update 2 | -------------------------------------------------------------------------------- /Library/Implementation/.cvsignore: -------------------------------------------------------------------------------- 1 | *.h .www_browsable 2 | -------------------------------------------------------------------------------- /Library/Implementation/CVS/Repository: -------------------------------------------------------------------------------- 1 | /afs/w3.org/pub/WWW/Library/Repository/src 2 | -------------------------------------------------------------------------------- /Library/Implementation/CVS/Root: -------------------------------------------------------------------------------- 1 | /afs/w3.org/pub/WWW 2 | -------------------------------------------------------------------------------- /Library/Implementation/CVS/Tag: -------------------------------------------------------------------------------- 1 | Tcern-update 2 | -------------------------------------------------------------------------------- /Library/Implementation/HTAssoc.c: -------------------------------------------------------------------------------- 1 | 2 | /* MODULE HTAssoc.c 3 | ** ASSOCIATION LIST FOR STORING NAME-VALUE PAIRS. 4 | ** NAMES NOT CASE SENSITIVE, AND ONLY COMMON LENGTH 5 | ** IS CHECKED (allows abbreviations; well, length is 6 | ** taken from lookup-up name, so if table contains 7 | ** a shorter abbrev it is not found). 8 | ** AUTHORS: 9 | ** AL Ari Luotonen luotonen@dxcern.cern.ch 10 | ** 11 | ** HISTORY: 12 | ** 13 | ** 14 | ** BUGS: 15 | ** 16 | ** 17 | */ 18 | 19 | 20 | #include 21 | 22 | #include "HTAAUtil.h" 23 | #include "HTAssoc.h" 24 | #include "HTString.h" 25 | 26 | 27 | PUBLIC HTAssocList *HTAssocList_new NOARGS 28 | { 29 | return HTList_new(); 30 | } 31 | 32 | 33 | PUBLIC void HTAssocList_delete ARGS1(HTAssocList *, alist) 34 | { 35 | if (alist) { 36 | HTAssocList *cur = alist; 37 | HTAssoc *assoc; 38 | while (NULL != (assoc = (HTAssoc*)HTList_nextObject(cur))) { 39 | if (assoc->name) free(assoc->name); 40 | if (assoc->value) free(assoc->value); 41 | free(assoc); 42 | } 43 | HTList_delete(alist); 44 | } 45 | } 46 | 47 | 48 | PUBLIC void HTAssocList_add ARGS3(HTAssocList *, alist, 49 | CONST char *, name, 50 | CONST char *, value) 51 | { 52 | HTAssoc *assoc; 53 | 54 | if (alist) { 55 | if (!(assoc = (HTAssoc*)malloc(sizeof(HTAssoc)))) 56 | outofmem(__FILE__, "HTAssoc_add"); 57 | assoc->name = NULL; 58 | assoc->value = NULL; 59 | 60 | if (name) StrAllocCopy(assoc->name, name); 61 | if (value) StrAllocCopy(assoc->value, value); 62 | HTList_addObject(alist, (void*)assoc); 63 | } 64 | else if (TRACE) fprintf(stderr, "HTAssoc_add: ERROR: assoc list NULL!!\n"); 65 | } 66 | 67 | 68 | PUBLIC char *HTAssocList_lookup ARGS2(HTAssocList *, alist, 69 | CONST char *, name) 70 | { 71 | HTAssocList *cur = alist; 72 | HTAssoc *assoc; 73 | 74 | while (NULL != (assoc = (HTAssoc*)HTList_nextObject(cur))) { 75 | if (!strncasecomp(assoc->name, name, strlen(name))) 76 | return assoc->value; 77 | } 78 | return NULL; 79 | } 80 | 81 | -------------------------------------------------------------------------------- /Library/Implementation/HTAssoc.h: -------------------------------------------------------------------------------- 1 | /* ASSOCIATION LIST FOR STORING NAME-VALUE PAIRS 2 | 3 | Lookups from assosiation list are not case-sensitive. 4 | 5 | */ 6 | 7 | #ifndef HTASSOC_H 8 | #define HTASSOC_H 9 | 10 | #include "HTUtils.h" 11 | #include "HTList.h" 12 | 13 | 14 | #ifdef SHORT_NAMES 15 | #define HTAL_new HTAssocList_new 16 | #define HTAL_del HTAssocList_delete 17 | #define HTAL_add HTAssocList_add 18 | #define HTAL_lup HTAssocList_lookup 19 | #endif /*SHORT_NAMES*/ 20 | 21 | typedef HTList HTAssocList; 22 | 23 | typedef struct { 24 | char * name; 25 | char * value; 26 | } HTAssoc; 27 | 28 | 29 | PUBLIC HTAssocList *HTAssocList_new NOPARAMS; 30 | PUBLIC void HTAssocList_delete PARAMS((HTAssocList * alist)); 31 | 32 | PUBLIC void HTAssocList_add PARAMS((HTAssocList * alist, 33 | CONST char * name, 34 | CONST char * value)); 35 | 36 | PUBLIC char *HTAssocList_lookup PARAMS((HTAssocList * alist, 37 | CONST char * name)); 38 | 39 | #endif /* not HTASSOC_H */ 40 | /* 41 | 42 | End of file HTAssoc.h. */ 43 | -------------------------------------------------------------------------------- /Library/Implementation/HTAssoc.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |

Association List For Storing Name-Value Pairs

5 | Lookups from assosiation list are not case-sensitive. 6 |
 7 | #ifndef HTASSOC_H
 8 | #define HTASSOC_H
 9 | 
10 | #include "HTUtils.h"
11 | #include "HTList.h"
12 | 
13 | 
14 | #ifdef SHORT_NAMES
15 | #define	HTAL_new	HTAssocList_new
16 | #define	HTAL_del	HTAssocList_delete
17 | #define	HTAL_add	HTAssocList_add
18 | #define	HTAL_lup	HTAssocList_lookup
19 | #endif /*SHORT_NAMES*/
20 | 
21 | typedef HTList HTAssocList;
22 | 
23 | typedef struct {
24 |     char * name;
25 |     char * value;
26 | } HTAssoc;
27 | 
28 | 
29 | PUBLIC HTAssocList *HTAssocList_new NOPARAMS;
30 | PUBLIC void HTAssocList_delete PARAMS((HTAssocList * alist));
31 | 
32 | PUBLIC void HTAssocList_add PARAMS((HTAssocList *	alist,
33 | 				    CONST char *	name,
34 | 				    CONST char *	value));
35 | 
36 | PUBLIC char *HTAssocList_lookup PARAMS((HTAssocList *	alist,
37 | 				        CONST char *	name));
38 | 
39 | #endif /* not HTASSOC_H */
40 | 
41 | End of file HTAssoc.h. 42 | 43 | -------------------------------------------------------------------------------- /Library/Implementation/HTAtom.h: -------------------------------------------------------------------------------- 1 | /* */ 2 | 3 | /* Atoms: Names to numbers HTAtom.h 4 | ** ======================= 5 | ** 6 | ** Atoms are names which are given representative pointer values 7 | ** so that they can be stored more efficiently, and compaisons 8 | ** for equality done more efficiently. 9 | ** 10 | ** HTAtom_for(string) returns a representative value such that it 11 | ** will always (within one run of the program) return the same 12 | ** value for the same given string. 13 | ** 14 | ** Authors: 15 | ** TBL Tim Berners-Lee, WorldWideWeb project, CERN 16 | ** 17 | ** (c) Copyright CERN 1991 - See Copyright.html 18 | ** 19 | */ 20 | 21 | #ifndef HTATOM_H 22 | #define HTATOM_H 23 | 24 | #include "HTUtils.h" 25 | #include "HTList.h" 26 | 27 | #ifdef SHORT_NAMES 28 | #define HTAt_for HTAtom_for 29 | #define HTAt_tMa HTAtom_templateMatches 30 | #endif /*SHORT_NAMES*/ 31 | 32 | typedef struct _HTAtom HTAtom; 33 | struct _HTAtom { 34 | HTAtom * next; 35 | char * name; 36 | }; /* struct _HTAtom */ 37 | 38 | 39 | PUBLIC HTAtom * HTAtom_for PARAMS((CONST char * string)); 40 | PUBLIC HTList * HTAtom_templateMatches PARAMS((CONST char * templ)); 41 | 42 | #define HTAtom_name(a) ((a)->name) 43 | 44 | #endif /* HTATOM_H */ 45 | /* 46 | 47 | */ 48 | -------------------------------------------------------------------------------- /Library/Implementation/HTAtom.html: -------------------------------------------------------------------------------- 1 |
 2 | /*			Atoms: Names to numbers			HTAtom.h
 3 | **			=======================
 4 | **
 5 | **	Atoms are names which are given representative pointer values
 6 | **	so that they can be stored more efficiently, and compaisons
 7 | **	for equality done more efficiently.
 8 | **
 9 | **	HTAtom_for(string) returns a representative value such that it
10 | **	will always (within one run of the program) return the same
11 | **	value for the same given string.
12 | **
13 | ** Authors:
14 | **	TBL	Tim Berners-Lee, WorldWideWeb project, CERN
15 | **
16 | **	(c) Copyright CERN 1991 - See Copyright.html
17 | **
18 | */
19 | 
20 | #ifndef HTATOM_H
21 | #define HTATOM_H
22 | 
23 | #include "HTUtils.h"
24 | #include "HTList.h"
25 | 
26 | #ifdef SHORT_NAMES
27 | #define HTAt_for	HTAtom_for
28 | #define HTAt_tMa	HTAtom_templateMatches
29 | #endif /*SHORT_NAMES*/
30 | 
31 | typedef struct _HTAtom HTAtom;
32 | struct _HTAtom {
33 | 	HTAtom *	next;
34 | 	char *		name;
35 | }; /* struct _HTAtom */
36 | 
37 | 
38 | PUBLIC HTAtom * HTAtom_for PARAMS((CONST char * string));
39 | PUBLIC HTList * HTAtom_templateMatches PARAMS((CONST char * templ));
40 | 
41 | #define HTAtom_name(a) ((a)->name)
42 | 
43 | #endif	/* HTATOM_H */
44 | 
45 | -------------------------------------------------------------------------------- /Library/Implementation/HTBTree.h: -------------------------------------------------------------------------------- 1 | /* /Net/dxcern/userd/timbl/hypertext/WWW/Library/Implementation/HTBTree.html 2 | BALANCED BINARY TREE FOR SORTING THINGS 3 | 4 | Tree creation, traversal and freeing. User-supplied comparison routine. 5 | 6 | Author: Arthur Secret, CERN. Public domain. Please mail bugs and changes to 7 | www-request@info.cern.ch 8 | 9 | part of libWWW 10 | 11 | */ 12 | #ifdef SHORT_NAMES 13 | #define HTBTree_new HTBTNew 14 | #define HTBTree_free HTBTFree 15 | #define HTBTreeAndObject_free HTBTAOFr 16 | #define HTBTree_add HTBTAdd 17 | #define HTBTree_next HTBTNext 18 | /* #define HTBTree_object HTBTObje already a macro */ 19 | #endif 20 | 21 | 22 | /* 23 | 24 | Data structures 25 | 26 | */ 27 | typedef struct _HTBTree_element { 28 | void *object; /* User object */ 29 | struct _HTBTree_element *up; 30 | struct _HTBTree_element *left; 31 | int left_depth; 32 | struct _HTBTree_element *right; 33 | int right_depth; 34 | } HTBTElement; 35 | 36 | typedef int (*HTComparer) PARAMS((void * a, void * b)); 37 | 38 | typedef struct _HTBTree_top { 39 | HTComparer compare; 40 | struct _HTBTree_element *top; 41 | } HTBTree; 42 | 43 | 44 | /* 45 | 46 | Create a binary tree given its discrimination routine 47 | 48 | */ 49 | extern HTBTree * HTBTree_new PARAMS((HTComparer comp)); 50 | 51 | 52 | 53 | /* 54 | 55 | Free storage of the tree but not of the objects 56 | 57 | */ 58 | extern void HTBTree_free PARAMS((HTBTree* tree)); 59 | 60 | 61 | 62 | /* 63 | 64 | Free storage of the tree and of the objects 65 | 66 | */ 67 | extern void HTBTreeAndObject_free PARAMS((HTBTree* tree)); 68 | 69 | 70 | 71 | /* 72 | 73 | Add an object to a binary tree 74 | 75 | */ 76 | 77 | extern void HTBTree_add PARAMS((HTBTree* tree, void * object)); 78 | 79 | 80 | /* 81 | 82 | Find user object for element 83 | 84 | */ 85 | #define HTBTree_object(element) ((element)->object) 86 | 87 | 88 | /* 89 | 90 | Find next element in depth-first order 91 | 92 | ON ENTRY, 93 | 94 | ele if NULL, start with leftmost element. if != 0 give next object to 95 | the right. 96 | 97 | returns Pointer to element ot NULL if none left. 98 | 99 | */ 100 | extern HTBTElement * HTBTree_next PARAMS((HTBTree* tree, HTBTElement * ele)); 101 | 102 | /* 103 | 104 | end */ 105 | -------------------------------------------------------------------------------- /Library/Implementation/HTBTree.html: -------------------------------------------------------------------------------- 1 |
2 | /Net/dxcern/userd/timbl/hypertext/WWW/Library/Implementation/HTBTree.html 3 | 4 |
5 | 6 |

Balanced Binary Tree for sorting 7 | things

Tree creation, traversal and freeing. 8 | User-supplied comparison routine.

9 | Author: Arthur Secret, CERN. Public 10 | domain. Please mail bugs and changes 11 | to www-request@info.cern.ch

12 | part of libWWW 14 |

#ifdef SHORT_NAMES
15 | #define	HTBTree_new		HTBTNew
16 | #define	HTBTree_free		HTBTFree
17 | #define HTBTreeAndObject_free	HTBTAOFr
18 | #define HTBTree_add		HTBTAdd
19 | #define	HTBTree_next		HTBTNext
20 | /* #define	HTBTree_object		HTBTObje already a macro */
21 | #endif
22 | 
23 | 
24 | 
25 |

Data structures

26 |
typedef struct _HTBTree_element {
27 |     void			*object;	/* User object */
28 |     struct _HTBTree_element	*up;
29 |     struct _HTBTree_element	*left;
30 |     int				left_depth;
31 |     struct _HTBTree_element	*right;
32 |     int				right_depth;
33 | } HTBTElement;
34 | 
35 | typedef int (*HTComparer) PARAMS((void * a, void * b));
36 | 
37 | typedef struct _HTBTree_top {
38 |     HTComparer			compare;
39 |     struct _HTBTree_element	*top;   
40 | } HTBTree;
41 | 
42 | 
43 | 
44 |

Create a binary tree given its discrimination 45 | routine

46 |
extern HTBTree * HTBTree_new PARAMS((HTComparer comp));
47 | 
48 | 
49 | 
50 | 
51 |

Free storage of the tree but not 52 | of the objects

53 |
extern void HTBTree_free PARAMS((HTBTree* tree));
54 | 
55 | 
56 | 
57 | 
58 |

Free storage of the tree and of the 59 | objects

60 |
extern void HTBTreeAndObject_free PARAMS((HTBTree* tree));
61 | 
62 | 
63 | 
64 | 
65 |

Add an object to a binary tree

66 |
67 | extern void HTBTree_add PARAMS((HTBTree* tree, void * object));
68 | 
69 | 
70 | 
71 |

Find user object for element

72 |
#define HTBTree_object(element)  ((element)->object)
73 | 
74 | 
75 | 
76 |

Find next element in depth-first 77 | order

78 |

On entry,

79 |
80 |
ele 81 |
if NULL, start with leftmost element. 82 | if != 0 give next object to the right. 83 |
returns 84 |
Pointer to element ot NULL 85 | if none left. 86 |
87 | 88 |
extern HTBTElement * HTBTree_next PARAMS((HTBTree* tree, HTBTElement * ele));
89 | 
90 | 
end 91 | -------------------------------------------------------------------------------- /Library/Implementation/HTDescript.h: -------------------------------------------------------------------------------- 1 | /* File descriptions 2 | FILE DESCRIPTIONS 3 | 4 | Descriptions appearing in directory listings are produced by this module. This may be 5 | overridden by another module for those who which descriptions to come from somewhere 6 | else. 7 | 8 | */ 9 | 10 | 11 | #ifndef HTDESCRIPT_H 12 | #define HTDESCRIPT_H 13 | 14 | /* 15 | 16 | Description File 17 | 18 | This module gets descriptions from the file defined by global variable 19 | HTHTDesctiptionFile in the same directory. The default value is .www_descript: 20 | 21 | */ 22 | 23 | extern char * HTDescriptionFile; 24 | /* 25 | 26 | In the description file lines starting with a word starting with 'D' are taken to be 27 | descriptions (this looks funny now, but this is to make it easy to extend these 28 | description files to contain also other information. 29 | 30 | */ 31 | 32 | /* 33 | * Example: 34 | * DESCRIBE welcome.html Our welcome page 35 | * DESCRIBE map*.gif Map as a GIF image 36 | * DESCRIBE map*.ps Map as a PostScript image 37 | */ 38 | /* 39 | 40 | HTML Titles 41 | 42 | If description is not specified for a file that is of type text/html, this module uses 43 | the HTML TITLE as the description. This feature can be turned off by setting the 44 | HTPeekTitles variable to false. 45 | 46 | */ 47 | 48 | extern BOOL HTPeekTitles; 49 | /* 50 | 51 | Read Description File 52 | 53 | The description file for a directory is read in only once by HTReadDescriptions(), and 54 | the result returned by it is given as an argument when finding out a description for a 55 | single file. 56 | 57 | */ 58 | 59 | PUBLIC HTList * HTReadDescriptions PARAMS((char * dirname)); 60 | /* 61 | 62 | Get Description For a File 63 | 64 | Once description file has been read and the list of descriptions is returned by 65 | HTReadDescriptions(), the function HTGetDescription() can be used to get a description 66 | for a given file: 67 | 68 | */ 69 | 70 | PUBLIC char * HTGetDescription PARAMS((HTList * descriptions, 71 | char * dirname, 72 | char * filename, 73 | HTFormat format)); 74 | /* 75 | 76 | Directory name has to be present because this function may then take a peek at the file 77 | itself (to get the HTML TITLE, for example). If format is WWW_HTML and description is 78 | not found, this module may be configured to use the HTML TITLE as the description. 79 | 80 | No string returned by this function should be freed! 81 | 82 | Freeing Descriptions 83 | 84 | Once descriptions have been gotten, the description list returned by 85 | HTReadDescriptions() must be freed by HTFreeDescriptions(): 86 | 87 | */ 88 | 89 | PUBLIC void HTFreeDescriptions PARAMS((HTList * descriptions)); 90 | /* 91 | 92 | */ 93 | 94 | #endif /* !HTDESCRIPT_H */ 95 | /* 96 | 97 | End of HTDescript.h. */ 98 | -------------------------------------------------------------------------------- /Library/Implementation/HTGopher.h: -------------------------------------------------------------------------------- 1 | /* Gopher protocol module for libwww 2 | GOPHER ACCESS 3 | 4 | This module also cantains the CSO Name Server access via Gopher. The module is a part 5 | of the CERN Common WWW Library. 6 | 7 | HISTORY: 8 | 9 | 8 Jan 92 Adapted from HTTP TBL 10 | 11 | 18 May 94 Made more consistent, added HTError and made provision for 12 | multi-threads, Henrik Frystyk, frystyk@dxcern.cern.ch 13 | 14 | */ 15 | 16 | #ifndef HTGOPHER_H 17 | #define HTGOPHER_H 18 | 19 | GLOBALREF HTProtocol HTGopher; 20 | 21 | #endif /* HTGOPHER_H */ 22 | /* 23 | 24 | end of gopher module */ 25 | -------------------------------------------------------------------------------- /Library/Implementation/HTGopher.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Gopher protocol module for libwww 4 | 5 |

GOPHER ACCESS

6 | 7 | This module also cantains the CSO Name Server access via Gopher. The 8 | module is a part of the CERN Common WWW Library. 9 | 10 |

History:

11 |
12 |
8 Jan 92 13 |
Adapted from HTTP TBL 14 |
18 May 94 15 |
Made more consistent, added HTError and made provision for multi-threads, Henrik Frystyk, frystyk@dxcern.cern.ch 16 |
17 | 18 |
19 | #ifndef HTGOPHER_H
20 | #define HTGOPHER_H
21 | 
22 | GLOBALREF HTProtocol HTGopher;
23 | 
24 | #endif /* HTGOPHER_H */
25 | 
26 | end of gopher module 27 | 28 | 29 | -------------------------------------------------------------------------------- /Library/Implementation/HTGuess.h: -------------------------------------------------------------------------------- 1 | /* HTGuess: Guess content-type from a stream 2 | CONTENT-TYPE GUESSER 3 | 4 | This stream is a one that reads first a chunk of stuff, tries to figure out the format, 5 | and calls HTStreamStack(). This is a kind of lazy-evaluation of HTStreamStack(). 6 | 7 | This could be extended arbitrarily to recognize all the possible file formats in the 8 | world, if someone only had time to do it. 9 | 10 | Part of libwww. Implemented by HTGuess.c. 11 | 12 | */ 13 | 14 | #ifndef HTGUESS_H 15 | #define HTGUESS_H 16 | 17 | #include "HTStream.h" 18 | #include 19 | #include "HTFormat.h" 20 | 21 | #ifdef SHORT_NAMES 22 | #define HTGuess_new HTGuessN 23 | #endif 24 | 25 | PUBLIC HTStream * HTGuess_new PARAMS((HTRequest * req)); 26 | 27 | 28 | #endif /* !HTGUESS_H */ 29 | 30 | /* 31 | 32 | End of file HTGuess.h. */ 33 | -------------------------------------------------------------------------------- /Library/Implementation/HTGuess.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | HTGuess: Guess content-type from a stream 4 | 5 | 6 |

Content-Type Guesser

7 | 8 | This stream is a one that reads first a chunk of stuff, tries to 9 | figure out the format, and calls HTStreamStack(). This 10 | is a kind of lazy-evaluation of HTStreamStack().

11 | 12 | This could be extended arbitrarily to recognize all the possible 13 | file formats in the world, if someone only had time to do it.

14 | 15 | Part of libwww. Implemented by HTGuess.c.

17 | 18 |

19 | #ifndef HTGUESS_H
20 | #define HTGUESS_H
21 | 
22 | #include "HTStream.h"
23 | #include <stdio.h>
24 | #include "HTFormat.h"
25 | 
26 | #ifdef SHORT_NAMES
27 | #define	HTGuess_new	HTGuessN
28 | #endif
29 | 
30 | PUBLIC HTStream * HTGuess_new PARAMS((HTRequest * req));
31 | 
32 | 
33 | #endif	/* !HTGUESS_H */
34 | 
35 | 
36 | End of file HTGuess.h. 37 | 38 | 39 | -------------------------------------------------------------------------------- /Library/Implementation/HTInit.h: -------------------------------------------------------------------------------- 1 | /* Initialization routines in libwww 2 | INITIALIZATION MODULE 3 | 4 | This module resisters all the plug & play software modules which will be used in the 5 | program on client side (The server has it's own initialization module). The module is a 6 | part of the CERN Common WWW Library. 7 | 8 | The initialization consists of two phases: Setting up the MIME type conversions and 9 | defining the relation between a basic set of file suffixes and MIME types. To override 10 | this, just copy it and link in your version before you link with the library. 11 | 12 | Implemented by HTInit.c by default. 13 | 14 | */ 15 | 16 | #include "HTUtils.h" 17 | #include "HTList.h" 18 | /* 19 | 20 | MIME Type Conversions 21 | 22 | Two default functions can be used to do the MIME type initialization. The first 23 | contains all MIME types the client can handle plus the types that can be handled using 24 | save and execute calls, e.g. to start a PostScript viewer. The second function only 25 | contains MIME type conversions that can be handled internally in the client. As an 26 | example, the latter is used when Line Mode Browser is started in Non-Interactive mode. 27 | 28 | */ 29 | 30 | PUBLIC void HTFormatInit PARAMS((HTList * conversions)); 31 | PUBLIC void HTFormatInitNIM PARAMS((HTList * conversions)); 32 | /* 33 | 34 | File Suffix Setup 35 | 36 | This functions defines a basic set of file suffixes and the corresponding MIME types. 37 | 38 | */ 39 | 40 | PUBLIC void HTFileInit NOPARAMS; 41 | /* 42 | 43 | End of HTInit Module. */ 44 | -------------------------------------------------------------------------------- /Library/Implementation/HTInit.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Initialization routines in libwww 4 | 5 | 6 | 7 |

Initialization Module

8 | 9 | This module resisters all the plug & play software modules which will 10 | be used in the program on client side (The server has it's own initialization 11 | module). The module is a part of the CERN Common WWW 12 | Library.

13 | 14 | The initialization consists of two phases: Setting up the MIME type conversions 15 | and defining the relation between a basic set of file suffixes and MIME types. 16 | To override this, just copy it and link in your version before you link 17 | with the library.

18 | 19 | Implemented by HTInit.c by default. 20 | 21 |

22 | #include "HTUtils.h"
23 | #include "HTList.h"
24 | 
25 | 26 |

MIME Type Conversions

27 | 28 | Two default functions can be used to do the MIME type initialization. The 29 | first contains all MIME types the client can handle plus the types 30 | that can be handled using save and execute calls, e.g. to start a PostScript 31 | viewer. The second function only contains MIME type conversions that can 32 | be handled internally in the client. As an example, the latter is used 33 | when 34 | Line Mode Browser is started in Non-Interactive mode. 35 | 36 |
37 | PUBLIC void HTFormatInit PARAMS((HTList * conversions));
38 | PUBLIC void HTFormatInitNIM PARAMS((HTList * conversions));
39 | 
40 | 41 |

File Suffix Setup

42 | 43 | This functions defines a basic set of file suffixes and the corresponding 44 | MIME types. 45 | 46 |
47 | PUBLIC void HTFileInit NOPARAMS;
48 | 
49 | 50 | End of HTInit Module. 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /Library/Implementation/HTList.h: -------------------------------------------------------------------------------- 1 | /* List object for libwww 2 | LIST OBJECT 3 | 4 | The list object is a generic container for storing collections of things in order. In 5 | principle it could be implemented in many ways, but in practice knowing that it is a 6 | linked list is important for speed. See also the traverse macro for example. 7 | 8 | */ 9 | 10 | #ifndef HTLIST_H 11 | #define HTLIST_H 12 | 13 | #include "HTUtils.h" /* for BOOL type and PARAMS and ARGS*/ 14 | 15 | typedef struct _HTList HTList; 16 | 17 | struct _HTList { 18 | void * object; 19 | HTList * next; 20 | }; 21 | 22 | #ifdef SHORT_NAMES 23 | #define HTList_new HTLiNew 24 | #define HTList_delete HTLiDele 25 | #define HTList_addObject HTLiAdOb 26 | #define HTList_removeObject HTLiReOb 27 | #define HTList_removeLastObject HTLiReLa 28 | #define HTList_removeFirstObject HTLiReFi 29 | #define HTList_count HTLiCoun 30 | #define HTList_indexOf HTLiInOf 31 | #define HTList_objectAt HTLiObAt 32 | #endif 33 | 34 | extern HTList * HTList_new NOPARAMS; 35 | extern void HTList_delete PARAMS((HTList *me)); 36 | 37 | /* 38 | 39 | ADD OBJECT TO START OF LIST 40 | 41 | */ 42 | 43 | extern void HTList_addObject PARAMS((HTList *me, void *newObject)); 44 | 45 | 46 | extern BOOL HTList_removeObject PARAMS((HTList *me, void *oldObject)); 47 | extern void * HTList_removeLastObject PARAMS((HTList *me)); 48 | extern void * HTList_removeFirstObject PARAMS((HTList *me)); 49 | #define HTList_isEmpty(me) (me ? me->next == NULL : YES) 50 | extern int HTList_count PARAMS((HTList *me)); 51 | extern int HTList_indexOf PARAMS((HTList *me, void *object)); 52 | #define HTList_lastObject(me) \ 53 | (me && me->next ? me->next->object : NULL) 54 | extern void * HTList_objectAt PARAMS((HTList *me, int position)); 55 | 56 | /* 57 | 58 | TRAVERSE LIST 59 | 60 | Fast macro to traverse the list. Call it first with copy of list header : it returns 61 | the first object and increments the passed list pointer. Call it with the same variable 62 | until it returns NULL. 63 | 64 | */ 65 | #define HTList_nextObject(me) \ 66 | (me && (me = me->next) ? me->object : NULL) 67 | 68 | /* 69 | 70 | FREE LIST 71 | 72 | */ 73 | #define HTList_free(x) free(x) 74 | 75 | #endif /* HTLIST_H */ 76 | 77 | /* 78 | 79 | end */ 80 | -------------------------------------------------------------------------------- /Library/Implementation/HTList.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | List object for libwww 4 | 5 | 6 | 7 |

List object

The list object is a generic container 8 | for storing collections of things 9 | in order. In principle it could 10 | be implemented in many ways, but 11 | in practice knowing that it is a 12 | linked list is important for speed. 13 | See also the traverse macro for 15 | example. 16 |
17 | #ifndef HTLIST_H
18 | #define HTLIST_H
19 | 
20 | #include "HTUtils.h"  /* for BOOL type and PARAMS and ARGS*/
21 | 
22 | typedef struct _HTList HTList;
23 | 
24 | struct _HTList {
25 |   void * object;
26 |   HTList * next;
27 | };
28 | 
29 | #ifdef SHORT_NAMES
30 | #define HTList_new 			HTLiNew
31 | #define HTList_delete			HTLiDele
32 | #define HTList_addObject		HTLiAdOb
33 | #define HTList_removeObject		HTLiReOb
34 | #define HTList_removeLastObject		HTLiReLa
35 | #define HTList_removeFirstObject	HTLiReFi
36 | #define HTList_count			HTLiCoun
37 | #define HTList_indexOf			HTLiInOf
38 | #define HTList_objectAt			HTLiObAt
39 | #endif
40 | 
41 | extern HTList *	HTList_new NOPARAMS;
42 | extern void	HTList_delete PARAMS((HTList *me));
43 | 
44 | 
45 |

Add object to START of list

46 |
47 | extern void	HTList_addObject PARAMS((HTList *me, void *newObject));
48 | 
49 | 
50 | extern BOOL	HTList_removeObject PARAMS((HTList *me, void *oldObject));
51 | extern void *	HTList_removeLastObject PARAMS((HTList *me));
52 | extern void *	HTList_removeFirstObject PARAMS((HTList *me));
53 | #define 	HTList_isEmpty(me) (me ? me->next == NULL : YES)
54 | extern int	HTList_count PARAMS((HTList *me));
55 | extern int	HTList_indexOf PARAMS((HTList *me, void *object));
56 | #define 	HTList_lastObject(me) \
57 |   (me && me->next ? me->next->object : NULL)
58 | extern void *	HTList_objectAt PARAMS((HTList *me, int position));
59 | 
60 | 
61 |

Traverse list

Fast macro to traverse the list. 63 | Call it first with copy of list header 64 | : it returns the first object and 65 | increments the passed list pointer. 66 | Call it with the same variable until 67 | it returns NULL. 68 |
#define HTList_nextObject(me) \
69 |   (me && (me = me->next) ? me->object : NULL)
70 | 
71 | 
72 |

Free list

73 |
#define HTList_free(x)  free(x)
74 | 
75 | #endif /* HTLIST_H */
76 | 
77 | 
end 78 | 79 | -------------------------------------------------------------------------------- /Library/Implementation/HTMIME.h: -------------------------------------------------------------------------------- 1 | /* HTMIME: Parser of MIME format for libwww 2 | MIME PARSER 3 | 4 | The MIME parser stream presents a MIME document. It recursively invokes the format 5 | manager to handle embedded formats. 6 | 7 | As well as stripping off and parsing the headers, the MIME parser has to parse any 8 | weirld MIME encodings it may meet within the body parts of messages, and must deal with 9 | multipart messages. 10 | 11 | This module is implemented to the level necessary for operation with WWW, but is not 12 | currently complete for any arbitrary MIME message. 13 | 14 | Check the source for latest additions to functionality. 15 | 16 | The MIME parser is complicated by the fact that WWW allows real binary to be sent, not 17 | ASCII encoded. Therefore the netascii decoding is included in this module. One cannot 18 | layer it by converting first from Net to local text, then decoding it. Of course, for 19 | local files, the net ascii decoding is not needed. There are therefore two creation 20 | routines. 21 | 22 | */ 23 | #ifndef HTMIME_H 24 | #define HTMIME_H 25 | 26 | #include "HTStream.h" 27 | #include "HTAnchor.h" 28 | /* 29 | 30 | CONVERTERS IN THIS MODULE 31 | 32 | */ 33 | 34 | #ifndef pyramid 35 | extern HTConverter HTMIMEConvert, HTNetMIME; 36 | #endif 37 | 38 | #endif 39 | /* 40 | 41 | End of HTMIME */ 42 | -------------------------------------------------------------------------------- /Library/Implementation/HTMIME.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | HTMIME: Parser of MIME format for libwww 4 | 5 | 6 | 7 |

MIME Parser

The MIME parser stream presents a 8 | MIME document. It recursively invokes 9 | the format manager to handle embedded 10 | formats.

11 | As well as stripping off and parsing 12 | the headers, the MIME parser has 13 | to parse any weirld MIME encodings 14 | it may meet within the body parts 15 | of messages, and must deal with multipart 16 | messages.

17 | This module is implemented to the 18 | level necessary for operation with 19 | WWW, but is not currently complete 20 | for any arbitrary MIME message.

21 | Check the source for latest additions 23 | to functionality.

24 | The MIME parser is complicated by 25 | the fact that WWW allows real binary 26 | to be sent, not ASCII encoded. Therefore 27 | the netascii decoding is included 28 | in this module. One cannot layer 29 | it by converting first from Net to 30 | local text, then decoding it. Of 31 | course, for local files, the net 32 | ascii decoding is not needed. There 33 | are therefore two creation routines. 34 |

#ifndef HTMIME_H
35 | #define HTMIME_H
36 | 
37 | #include "HTStream.h"
38 | #include "HTAnchor.h"
39 | 
40 | 41 |

Converters in this Module

42 | 43 |
44 | #ifndef pyramid
45 | extern HTConverter HTMIMEConvert, HTNetMIME;
46 | #endif
47 | 
48 | #endif
49 | 
50 | 51 | End of HTMIME 52 | 53 | 54 | -------------------------------------------------------------------------------- /Library/Implementation/HTMLGen.h: -------------------------------------------------------------------------------- 1 | /* HTML Generator 2 | HTML GENERATOR 3 | 4 | This module converts structed stream into stream. That is, given a stream to write to, 5 | it will give you a structured stream to 6 | 7 | */ 8 | 9 | #ifndef HTMLGEN_H 10 | #define HTMLGEN_H 11 | 12 | #include "HTML.h" 13 | #include "HTStream.h" 14 | 15 | /* Special Creation: */ 16 | extern HTStructured * HTMLGenerator PARAMS((HTStream * output)); 17 | 18 | #ifndef pyramid 19 | extern HTConverter HTPlainToHTML; 20 | #endif 21 | 22 | #endif 23 | 24 | 25 | /* 26 | 27 | */ 28 | -------------------------------------------------------------------------------- /Library/Implementation/HTMLGen.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | HTML Generator 4 | 5 | 6 | 7 |

HTML generator

8 | 9 | This module converts structed stream into stream. That is, given a 10 | stream to write to, it will give you a structured stream to 11 | 12 |
13 | #ifndef HTMLGEN_H
14 | #define HTMLGEN_H
15 | 
16 | #include "HTML.h"
17 | #include "HTStream.h"
18 | 
19 | /* Special Creation: */
20 | extern HTStructured * HTMLGenerator PARAMS((HTStream * output));
21 | 
22 | #ifndef pyramid
23 | extern HTConverter HTPlainToHTML;
24 | #endif
25 | 
26 | #endif
27 | 
28 | 
29 | 
30 | 31 | -------------------------------------------------------------------------------- /Library/Implementation/HTMulti.h: -------------------------------------------------------------------------------- 1 | /* Multiformat handling in libwww 2 | MULTIFORMAT HANDLING 3 | 4 | */ 5 | 6 | #ifndef HTMULTI_H 7 | #define HTMULTI_H 8 | 9 | #include "HTFile.h" 10 | 11 | /* 12 | ** Set default file name for welcome page on each directory. 13 | */ 14 | PUBLIC void HTAddWelcome PARAMS((char * welcome_name)); 15 | 16 | /* 17 | ** Perform multiformat handling 18 | */ 19 | PUBLIC char * HTMulti PARAMS((HTRequest * req, 20 | char * path, 21 | struct stat * stat_info)); 22 | 23 | #endif /* HTMULTI_H */ 24 | 25 | /* 26 | 27 | End of HTMulti. */ 28 | -------------------------------------------------------------------------------- /Library/Implementation/HTMulti.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Multiformat handling in libwww 4 | 5 | 6 |

Multiformat Handling

7 | 8 |
 9 | #ifndef HTMULTI_H
10 | #define HTMULTI_H
11 | 
12 | #include "HTFile.h"
13 | 
14 | /*
15 | **	Set default file name for welcome page on each directory.
16 | */
17 | PUBLIC void HTAddWelcome PARAMS((char * welcome_name));
18 | 
19 | /*
20 | **	Perform multiformat handling
21 | */
22 | PUBLIC char * HTMulti PARAMS((HTRequest *	req,
23 | 			      char *		path,
24 | 			      struct stat *	stat_info));
25 | 
26 | #endif /* HTMULTI_H */
27 | 
28 | 
29 | End of HTMulti. 30 | 31 | 32 | -------------------------------------------------------------------------------- /Library/Implementation/HTNews.h: -------------------------------------------------------------------------------- 1 | /* Network News Transfer protocol module for the WWW library 2 | HTNEWS 3 | 4 | */ 5 | /* History: 6 | ** 26 Sep 90 Written TBL in Objective-C 7 | ** 29 Nov 91 Downgraded to C, for portable implementation. 8 | */ 9 | 10 | #ifndef HTNEWS_H 11 | #define HTNEWS_H 12 | 13 | #include "HTAccess.h" 14 | #include "HTAnchor.h" 15 | 16 | GLOBALREF HTProtocol HTNews; 17 | 18 | extern void HTSetNewsHost PARAMS((CONST char *value)); 19 | extern CONST char * HTGetNewsHost NOPARAMS; 20 | extern char * HTNewsHost; 21 | 22 | #endif /* HTNEWS_H */ 23 | 24 | 25 | /* 26 | 27 | tbl */ 28 | -------------------------------------------------------------------------------- /Library/Implementation/HTNews.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Network News Transfer protocol module for the WWW library 4 | 5 |

HTNews

6 |
/* History:
 7 | **	26 Sep 90	Written TBL in Objective-C
 8 | **	29 Nov 91	Downgraded to C, for portable implementation.
 9 | */
10 | 
11 | #ifndef HTNEWS_H
12 | #define HTNEWS_H
13 | 
14 | #include "HTAccess.h"
15 | #include "HTAnchor.h"
16 | 
17 | GLOBALREF HTProtocol HTNews;
18 | 
19 | extern void HTSetNewsHost PARAMS((CONST char *value));
20 | extern CONST char * HTGetNewsHost NOPARAMS;
21 | extern char * HTNewsHost;
22 | 
23 | #endif /* HTNEWS_H */
24 | 
25 | 
26 | 
tbl 27 | 28 | -------------------------------------------------------------------------------- /Library/Implementation/HTPlain.c: -------------------------------------------------------------------------------- 1 | /* Plain text object HTWrite.c 2 | ** ================= 3 | ** 4 | ** This version of the stream object just writes to a socket. 5 | ** The socket is assumed open and left open. 6 | ** 7 | ** Bugs: 8 | ** strings written must be less than buffer size. 9 | */ 10 | #include "HTPlain.h" 11 | 12 | #define BUFFER_SIZE 4096; /* Tradeoff */ 13 | 14 | #include "HTUtils.h" 15 | #include "HText.h" 16 | #include "HTStyle.h" 17 | 18 | extern HTStyleSheet * styleSheet; 19 | 20 | 21 | 22 | /* HTML Object 23 | ** ----------- 24 | */ 25 | 26 | struct _HTStream { 27 | CONST HTStreamClass * isa; 28 | 29 | HText * text; 30 | }; 31 | 32 | /* Write the buffer out to the socket 33 | ** ---------------------------------- 34 | */ 35 | 36 | 37 | /*_________________________________________________________________________ 38 | ** 39 | ** A C T I O N R O U T I N E S 40 | */ 41 | 42 | /* Character handling 43 | ** ------------------ 44 | */ 45 | 46 | PRIVATE void HTPlain_put_character ARGS2(HTStream *, me, char, c) 47 | { 48 | HText_appendCharacter(me->text, c); 49 | } 50 | 51 | 52 | 53 | /* String handling 54 | ** --------------- 55 | ** 56 | */ 57 | PRIVATE void HTPlain_put_string ARGS2(HTStream *, me, CONST char*, s) 58 | { 59 | HText_appendText(me->text, s); 60 | } 61 | 62 | 63 | PRIVATE void HTPlain_write ARGS3(HTStream *, me, CONST char*, s, int, l) 64 | { 65 | CONST char* p; 66 | CONST char* e = s+l; 67 | for (p=s; ptext, *p); 68 | } 69 | 70 | 71 | 72 | /* Free an HTML object 73 | ** ------------------- 74 | ** 75 | ** Note that the SGML parsing context is freed, but the created object is not, 76 | ** as it takes on an existence of its own unless explicitly freed. 77 | */ 78 | PRIVATE void HTPlain_free ARGS1(HTStream *, me) 79 | { 80 | free(me); 81 | } 82 | 83 | /* End writing 84 | */ 85 | 86 | PRIVATE void HTPlain_abort ARGS2(HTStream *, me, HTError, e) 87 | { 88 | HTPlain_free(me); 89 | } 90 | 91 | 92 | 93 | /* Structured Object Class 94 | ** ----------------------- 95 | */ 96 | PUBLIC CONST HTStreamClass HTPlain = 97 | { 98 | "PlainText", 99 | HTPlain_free, 100 | HTPlain_abort, 101 | HTPlain_put_character, HTPlain_put_string, HTPlain_write, 102 | }; 103 | 104 | 105 | /* New object 106 | ** ---------- 107 | */ 108 | PUBLIC HTStream* HTPlainPresent ARGS5( 109 | HTRequest *, request, 110 | void *, param, 111 | HTFormat, input_format, 112 | HTFormat, output_format, 113 | HTStream *, output_stream) 114 | { 115 | 116 | HTStream* me = (HTStream*)malloc(sizeof(*me)); 117 | if (me == NULL) outofmem(__FILE__, "HTPlain_new"); 118 | me->isa = &HTPlain; 119 | 120 | me->text = HText_new2(request->anchor, output_stream); 121 | HText_beginAppend(me->text); 122 | HText_setStyle(me->text, HTStyleNamed(styleSheet, "Example")); 123 | 124 | return (HTStream*) me; 125 | } 126 | 127 | 128 | -------------------------------------------------------------------------------- /Library/Implementation/HTPlain.h: -------------------------------------------------------------------------------- 1 | /* /Net/dxcern/userd/timbl/hypertext/WWW/Library/Implementation/HTPlain.html 2 | PLAIN TEXT OBJECT 3 | 4 | What a small file! 5 | 6 | */ 7 | 8 | #ifndef HTPLAIN_H 9 | #define HTPLAIN_H 10 | 11 | #include "HTFormat.h" 12 | 13 | #ifndef pyramid 14 | extern HTConverter HTPlainPresent; 15 | #endif 16 | 17 | #endif 18 | /* 19 | 20 | End of definition module. */ 21 | -------------------------------------------------------------------------------- /Library/Implementation/HTPlain.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | /Net/dxcern/userd/timbl/hypertext/WWW/Library/Implementation/HTPlain.html 4 | 5 |

Plain text object

6 | 7 | What a small file! 8 | 9 |
10 | #ifndef HTPLAIN_H
11 | #define HTPLAIN_H
12 | 
13 | #include "HTFormat.h"
14 | 
15 | #ifndef pyramid
16 | extern HTConverter HTPlainPresent;
17 | #endif
18 | 
19 | #endif
20 | 
21 | 22 | End of definition module. 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /Library/Implementation/HTStream.h: -------------------------------------------------------------------------------- 1 | /* The Stream class definition -- libwww 2 | STREAM OBJECT DEFINITION 3 | 4 | A Stream object is something which accepts a stream of text. 5 | 6 | The creation methods will vary on the type of Stream Object. All creation methods 7 | return a pointer to the stream type below. 8 | 9 | As you can see, but the methods used to write to the stream and close it are pointed to 10 | be the object itself. 11 | 12 | */ 13 | #ifndef HTSTREAM_H 14 | #define HTSTREAM_H 15 | 16 | #include "HTUtils.h" 17 | 18 | typedef struct _HTStream HTStream; 19 | 20 | /* 21 | 22 | These are the common methods of all streams. They should be self-explanatory, except 23 | for end_document which must be called before free. It should be merged with free in 24 | fact: it should be dummy for new streams. 25 | 26 | The put_block method was write, but this upset systems whiuch had macros for write(). 27 | 28 | */ 29 | typedef struct _HTStreamClass { 30 | 31 | char* name; /* Just for diagnostics */ 32 | 33 | void (*_free) PARAMS(( 34 | HTStream* me)); 35 | 36 | void (*abort) PARAMS(( 37 | HTStream* me, 38 | HTError e)); 39 | 40 | void (*put_character) PARAMS(( 41 | HTStream* me, 42 | char ch)); 43 | 44 | void (*put_string) PARAMS(( 45 | HTStream* me, 46 | CONST char * str)); 47 | 48 | void (*put_block) PARAMS(( 49 | HTStream* me, 50 | CONST char * str, 51 | int len)); 52 | 53 | 54 | }HTStreamClass; 55 | 56 | #endif /* HTSTREAM_H */ 57 | 58 | /* 59 | 60 | end of HTStream.h */ 61 | -------------------------------------------------------------------------------- /Library/Implementation/HTStream.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | The Stream class definition -- libwww 4 | 5 |

Stream Object definition

A Stream object is something which 6 | accepts a stream of text.

7 | The creation methods will vary on 8 | the type of Stream Object. All 9 | creation methods return a pointer 10 | to the stream type below.

11 | As you can see, but the methods used 12 | to write to the stream and close 13 | it are pointed to be the object itself. 14 |

#ifndef HTSTREAM_H
15 | #define HTSTREAM_H
16 | 
17 | #include "HTUtils.h"
18 | 
19 | typedef struct _HTStream HTStream;
20 | 
21 | 
These are the common methods of all 22 | streams. They should be self-explanatory, 23 | except for end_document which must 24 | be called before free. It should 25 | be merged with free in fact: it 26 | should be dummy for new streams.

27 | The put_block method was write, but 28 | this upset systems whiuch had macros 29 | for write(). 30 |

typedef struct _HTStreamClass {
31 | 
32 | 	char*  name;				/* Just for diagnostics */
33 | 		
34 | 	void (*_free) PARAMS((
35 | 		HTStream*	me));
36 | 
37 | 	void (*abort) PARAMS((
38 | 		HTStream*	me,
39 | 		HTError		e));
40 | 		
41 | 	void (*put_character) PARAMS((
42 | 		HTStream*	me,
43 | 		char		ch));
44 | 				
45 | 	void (*put_string) PARAMS((
46 | 		HTStream*	me,
47 | 		CONST char *	str));
48 | 		
49 | 	void (*put_block) PARAMS((
50 | 		HTStream*	me,
51 | 		CONST char *	str,
52 | 		int		len));
53 | 		
54 | 		
55 | }HTStreamClass;
56 | 
57 | #endif /* HTSTREAM_H */
58 | 
59 | 
end of HTStream.h 60 | 61 | -------------------------------------------------------------------------------- /Library/Implementation/HTString.h: -------------------------------------------------------------------------------- 1 | /* String handling for libwww 2 | STRINGS 3 | 4 | Case-independent string comparison and allocations with copies etc 5 | 6 | */ 7 | 8 | #ifndef HTSTRING_H 9 | #define HTSTRING_H 10 | 11 | #include "HTUtils.h" 12 | 13 | extern CONST char * HTLibraryVersion; /* String for help screen etc */ 14 | 15 | /* 16 | 17 | Case-insensitive string comparison 18 | 19 | The usual routines (comp instead of cmp) had some problem. 20 | 21 | */ 22 | extern int strcasecomp PARAMS((CONST char *a, CONST char *b)); 23 | extern int strncasecomp PARAMS((CONST char *a, CONST char *b, int n)); 24 | 25 | /* 26 | 27 | Case-insensitive string inside another string 28 | 29 | This works like strstr() but is not case-sensitive. 30 | 31 | */ 32 | 33 | PUBLIC char * strcasestr PARAMS((char * s1, 34 | char * s2)); 35 | 36 | /* 37 | 38 | Malloced string manipulation 39 | 40 | */ 41 | #define StrAllocCopy(dest, src) HTSACopy (&(dest), src) 42 | #define StrAllocCat(dest, src) HTSACat (&(dest), src) 43 | extern char * HTSACopy PARAMS ((char **dest, CONST char *src)); 44 | extern char * HTSACat PARAMS ((char **dest, CONST char *src)); 45 | 46 | /* 47 | 48 | Next word or quoted string 49 | 50 | */ 51 | extern char * HTNextField PARAMS ((char** pstr)); 52 | 53 | 54 | #endif 55 | /* 56 | 57 | end 58 | 59 | */ 60 | -------------------------------------------------------------------------------- /Library/Implementation/HTString.html: -------------------------------------------------------------------------------- 1 |
2 | String handling for libwww
3 | 4 |

Strings

Case-independent string comparison 5 | and allocations with copies etc 6 |
 7 | #ifndef HTSTRING_H
 8 | #define HTSTRING_H
 9 | 
10 | #include "HTUtils.h"
11 | 
12 | extern CONST char * HTLibraryVersion;	/* String for help screen etc */
13 | 
14 | 
15 |

Case-insensitive string comparison

The usual routines (comp instead 16 | of cmp) had some problem. 17 |
extern int strcasecomp  PARAMS((CONST char *a, CONST char *b));
18 | extern int strncasecomp PARAMS((CONST char *a, CONST char *b, int n));
19 | 
20 | 
21 | 22 |

Case-insensitive string inside another string

23 | This works like strstr() but is not case-sensitive. 24 |
25 | PUBLIC char * strcasestr PARAMS((char *	s1,
26 | 				 char *	s2));
27 | 
28 | 
29 | 30 | 31 |

Malloced string manipulation

32 |
#define StrAllocCopy(dest, src) HTSACopy (&(dest), src)
33 | #define StrAllocCat(dest, src)  HTSACat  (&(dest), src)
34 | extern char * HTSACopy PARAMS ((char **dest, CONST char *src));
35 | extern char * HTSACat  PARAMS ((char **dest, CONST char *src));
36 | 
37 | 
38 |

Next word or quoted string

39 |
extern char * HTNextField PARAMS ((char** pstr));
40 | 
41 | 
42 | #endif
43 | 
end

44 | 45 | -------------------------------------------------------------------------------- /Library/Implementation/HTTP.h: -------------------------------------------------------------------------------- 1 | /* HTTP module for libwww 2 | HYPERTEXT TRANFER PROTOCOL MODULE 3 | 4 | This is the module that handles all communication with HTTP servers. The module is a 5 | part of the CERN Common WWW Library. 6 | 7 | */ 8 | 9 | #ifndef HTTP_H 10 | #define HTTP_H 11 | #include "HTAccess.h" 12 | /* 13 | 14 | Public Functions 15 | 16 | Theese are the public functions... 17 | 18 | ACCESSING HTTP-SERVER 19 | 20 | */ 21 | 22 | extern int HTLoadHTTP PARAMS((HTRequest * request)); 23 | /* 24 | 25 | Controlling Flags 26 | 27 | The following variables can change the behaviour of the module. 28 | 29 | CACHE CONTROL FLAG 30 | 31 | Note: This variable is now replaced by the (char *) HTCacheDir in HTAccess Module 32 | 33 | Turn this off if you don't want HTTP protocol fetches to leave cache files. extern 34 | BOOL HTCacheHTTP; 35 | 36 | REDIRECTIONS 37 | 38 | The maximum number of redirections is pr. default 10 and is set in the module. This 39 | prevents the library from going into an infinite loop. 40 | 41 | */ 42 | 43 | extern int HTMaxRedirections; 44 | /* 45 | 46 | DISABLE/ENABLE USER IDENTIFICATION IN HTTP REQUEST 47 | 48 | If a client want the user's email address to be send in the HTTP request as a From 49 | field then turn this flag on. The default is off because it might cause security 50 | problems from within a firewall. When enabled, the format used is user@host.domain. The 51 | value can be changed, see HTTCP Module. 52 | 53 | */ 54 | 55 | extern BOOL HTEnableFrom; 56 | /* 57 | 58 | */ 59 | 60 | #endif /* HTTP_H */ 61 | /* 62 | 63 | End of HTTP module definition. */ 64 | -------------------------------------------------------------------------------- /Library/Implementation/HTTP.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | HTTP module for libwww 4 | 5 |

HyperText Tranfer Protocol Module

6 | 7 | This is the module that handles all communication with HTTP servers. The module 8 | is a part of the CERN Common WWW Library. 9 | 10 |
11 | #ifndef HTTP_H
12 | #define HTTP_H
13 | #include "HTAccess.h"
14 | 
15 | 16 |

Public Functions

17 | 18 | Theese are the public functions... 19 | 20 |

Accessing HTTP-Server

21 | 22 |
23 | extern int HTLoadHTTP PARAMS((HTRequest * request));
24 | 
25 | 26 |

Controlling Flags

27 | 28 | The following variables can change the behaviour of the module. 29 | 30 |

Cache control flag

31 | 32 | Note: This variable is now replaced by the (char *) HTCacheDir in 33 | HTAccess Module

34 | 35 | Turn this off if you don't want HTTP protocol fetches to leave cache files. 36 | extern BOOL HTCacheHTTP; 37 | 38 |

Redirections

39 | 40 | The maximum number of redirections is pr. default 10 and is set in the module. 41 | This prevents the library from going into an infinite loop. 42 | 43 |
44 | extern int HTMaxRedirections;
45 | 
46 | 47 |

Disable/Enable User Identification in HTTP Request

48 | 49 | If a client want the user's email address to be send in the HTTP request 50 | as a From field 51 | then turn this flag on. The default is off because it might cause security 52 | problems from within a firewall. When enabled, the format used is 53 | user@host.domain. The value can be changed, see HTTCP Module. 54 | 55 |
56 | extern BOOL HTEnableFrom;
57 | 
58 | 59 |
60 | #endif /* HTTP_H */
61 | 
62 | 63 | End of HTTP module definition. 64 | 65 | 66 | -------------------------------------------------------------------------------- /Library/Implementation/HTTeXGen.h: -------------------------------------------------------------------------------- 1 | /* Latex Generation 2 | LATEX GENERATOR 3 | 4 | This module converts a structured stream from HTML into LaTeX format. The conversion is 5 | mostly a 1:1 translation, but as the LaTeX compiler is much more strict than a typical 6 | HTML converter some typographical constraints are put on the translation. Only text is 7 | translated for the moment. The module is a part of the CERN Common WWW Library. 8 | 9 | */ 10 | 11 | #ifndef HTTEXGEN_H 12 | #define HTTEXGEN_H 13 | 14 | #include "HTML.h" 15 | #include "HTStream.h" 16 | /* 17 | 18 | Conversion Module 19 | 20 | The conversion module is defined as 21 | 22 | */ 23 | 24 | extern HTStructured * HTTeXGenerator PARAMS((HTStream * output)); 25 | /* 26 | 27 | */ 28 | 29 | #endif 30 | /* 31 | 32 | End of module HTTeXGen */ 33 | -------------------------------------------------------------------------------- /Library/Implementation/HTTeXGen.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Latex Generation 4 | 5 | 6 |

LaTeX generator

7 | 8 | This module converts a structured stream from HTML into LaTeX format. The 9 | conversion is mostly a 1:1 translation, but as the LaTeX compiler is much 10 | more strict than a typical HTML converter some typographical constraints 11 | are put on the translation. Only text is translated for the moment. The 12 | module is a part of the CERN Common WWW Library. 13 | 14 |
15 | #ifndef HTTEXGEN_H
16 | #define HTTEXGEN_H
17 | 
18 | #include "HTML.h"
19 | #include "HTStream.h"
20 | 
21 | 22 |

Conversion Module

23 | 24 | The conversion module is defined as 25 | 26 |
27 | extern HTStructured * HTTeXGenerator PARAMS((HTStream * output));
28 | 
29 | 30 | 31 |
32 | #endif
33 | 
34 | 35 | End of module HTTeXGen 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /Library/Implementation/HTTee.c: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | ** T E E C L A S S 4 | ** 5 | ** The Tee class just writes to two streams. Easy. 6 | ** See also the Black Hole stream which is even easier. 7 | ** 8 | ** HISTORY: 9 | ** 8 Jul 94 FM Insulate free() from _free structure element. 10 | ** 11 | */ 12 | 13 | 14 | #include "HTTee.h" 15 | 16 | 17 | /* Stream Object 18 | ** ------------ 19 | */ 20 | 21 | struct _HTStream { 22 | CONST HTStreamClass * isa; 23 | 24 | HTStream * s1; 25 | HTStream * s2; 26 | }; 27 | 28 | 29 | PRIVATE void HTTee_put_character ARGS2(HTStream *, me, char, c) 30 | { 31 | (*me->s1->isa->put_character)(me->s1, c); 32 | (*me->s2->isa->put_character)(me->s2, c); 33 | } 34 | PRIVATE void HTTee_put_string ARGS2(HTStream *, me, CONST char*, s) 35 | { 36 | (*me->s1->isa->put_string)(me->s1, s); 37 | (*me->s2->isa->put_string)(me->s2, s); 38 | } 39 | PRIVATE void HTTee_write ARGS3(HTStream *, me, CONST char*, s, int, l) 40 | { 41 | (*me->s1->isa->put_block)(me->s1, s, l); 42 | (*me->s2->isa->put_block)(me->s2, s, l); 43 | } 44 | PRIVATE void HTTee_free ARGS1(HTStream *, me) 45 | { 46 | (*me->s1->isa->_free)(me->s1); 47 | (*me->s2->isa->_free)(me->s2); 48 | free(me); 49 | } 50 | PRIVATE void HTTee_abort ARGS2(HTStream *, me, HTError, e) 51 | { 52 | (*me->s1->isa->abort)(me->s1, e); 53 | (*me->s2->isa->abort)(me->s2, e); 54 | free(me); 55 | } 56 | 57 | 58 | /* Tee stream 59 | ** ---------- 60 | */ 61 | PRIVATE CONST HTStreamClass HTTeeClass = 62 | { 63 | "Tee", 64 | HTTee_free, 65 | HTTee_abort, 66 | HTTee_put_character, HTTee_put_string, 67 | HTTee_write 68 | }; 69 | 70 | 71 | /* Tee creation 72 | */ 73 | PUBLIC HTStream * HTTee ARGS2(HTStream *, s1,HTStream *, s2) 74 | { 75 | HTStream * me = (HTStream*)malloc(sizeof(*me)); 76 | if (!me) outofmem(__FILE__, "HTTee"); 77 | me->isa = &HTTeeClass; 78 | me->s1 = s1; 79 | me->s2 = s2; 80 | return me; 81 | } 82 | 83 | 84 | -------------------------------------------------------------------------------- /Library/Implementation/HTTee.h: -------------------------------------------------------------------------------- 1 | /* HTTee: Tee stream for libwww 2 | TEE STREAM 3 | 4 | This is part of libwww . The Tee stream just writes everything you put into it into 5 | two oter streams. 6 | 7 | One use (the only use?!) is for taking a cached copey on disk while loading the main 8 | copy, without having to wait for the disk copy to be finished and reread it. 9 | 10 | */ 11 | #include "HTStream.h" 12 | 13 | extern HTStream * HTTee PARAMS((HTStream* s1, HTStream* s2)); 14 | 15 | 16 | 17 | 18 | 19 | /* 20 | 21 | Tim BL 22 | 23 | */ 24 | -------------------------------------------------------------------------------- /Library/Implementation/HTTee.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | HTTee: Tee stream for libwww 4 | 5 | 6 | 7 |

Tee stream

This is part of libwww . The Tee 9 | stream just writes everything you 10 | put into it into two oter streams.

11 | One use (the only use?!) is for taking 12 | a cached copey on disk while loading 13 | the main copy, without having to 14 | wait for the disk copy to be finished 15 | and reread it. 16 |

#include "HTStream.h"
17 | 
18 | extern HTStream * HTTee PARAMS((HTStream* s1, HTStream* s2));
19 | 
20 | 
21 | 
22 | 
23 | 
24 | 
25 |
Tim BL 27 |
28 | 29 | -------------------------------------------------------------------------------- /Library/Implementation/HTTelnet.h: -------------------------------------------------------------------------------- 1 | /* /Net/dxcern/userd/timbl/hypertext/WWW/Library/Implementation/HTTelnet.html 2 | TELNET AND SIMILAR ACCESS METHODS 3 | 4 | */ 5 | 6 | #ifndef HTTELNET_H 7 | #define HTTELNET_H 8 | 9 | #include "HTAccess.h" 10 | 11 | GLOBALREF HTProtocol HTTelnet; 12 | GLOBALREF HTProtocol HTRlogin; 13 | GLOBALREF HTProtocol HTTn3270; 14 | 15 | #endif 16 | 17 | /* 18 | 19 | end */ 20 | -------------------------------------------------------------------------------- /Library/Implementation/HTTelnet.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | /Net/dxcern/userd/timbl/hypertext/WWW/Library/Implementation/HTTelnet.html 4 | 5 |

Telnet and similar access methods

6 |
 7 | #ifndef HTTELNET_H
 8 | #define HTTELNET_H
 9 | 
10 | #include "HTAccess.h"
11 | 
12 | GLOBALREF HTProtocol HTTelnet;
13 | GLOBALREF HTProtocol HTRlogin;
14 | GLOBALREF HTProtocol HTTn3270;
15 | 
16 | #endif
17 | 
18 | 
end 19 | 20 | -------------------------------------------------------------------------------- /Library/Implementation/HTUU.h: -------------------------------------------------------------------------------- 1 | /* ENCODING TO PRINTABLE CHARACTERS 2 | 3 | File module provides functions HTUU_encode() and HTUU_decode() which convert a buffer 4 | of bytes to/from RFC 1113 printable encoding format. This technique is similar to the 5 | familiar Unix uuencode format in that it maps 6 binary bits to one ASCII character (or 6 | more aptly, 3 binary bytes to 4 ASCII characters). However, RFC 1113 does not use the 7 | same mapping to printable characters as uuencode. 8 | 9 | */ 10 | 11 | #ifndef HTUU_H 12 | #define HTUU_H 13 | 14 | #include "HTUtils.h" 15 | 16 | PUBLIC int HTUU_encode PARAMS((unsigned char *bufin, 17 | unsigned int nbytes, 18 | char *bufcoded)); 19 | 20 | PUBLIC int HTUU_decode PARAMS((char *bufcoded, 21 | unsigned char *bufplain, 22 | int outbufsize)); 23 | 24 | #endif 25 | /* 26 | 27 | End of file. */ 28 | -------------------------------------------------------------------------------- /Library/Implementation/HTUU.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

Encoding to Printable Characters

6 | 7 | File module provides functions HTUU_encode() and 8 | HTUU_decode() which convert a buffer of bytes to/from RFC 9 | 1113 printable encoding format. 10 | 11 | This technique is similar to the familiar Unix uuencode format in that 12 | it maps 6 binary bits to one ASCII character (or more aptly, 3 binary 13 | bytes to 4 ASCII characters). However, RFC 1113 does not use the same 14 | mapping to printable characters as uuencode. 15 | 16 |
17 | #ifndef HTUU_H
18 | #define HTUU_H
19 | 
20 | #include "HTUtils.h"
21 | 
22 | PUBLIC int HTUU_encode PARAMS((unsigned char *bufin,
23 | 			       unsigned int nbytes,
24 | 			       char *bufcoded));
25 | 
26 | PUBLIC int HTUU_decode PARAMS((char *bufcoded,
27 | 			       unsigned char *bufplain,
28 | 			       int outbufsize));
29 | 
30 | #endif
31 | 
32 | End of file. 33 | 34 | -------------------------------------------------------------------------------- /Library/Implementation/HTWAIS.h: -------------------------------------------------------------------------------- 1 | /* WAIS protocol module for the W3 library 2 | WAIS PROTOCOL INTERFACE 3 | 4 | This module does not actually perform the WAIS protocol directly, but it does using one 5 | or more libraries of the freeWAIS distribution. The ui.a library came with the old free 6 | WAIS from TMC, the client.a and wais.a libraries are needed from the freeWAIS from 7 | CNIDR. 8 | 9 | Note: The current version suppored is freeWAIS-0.3, June 1994 10 | 11 | If you include this module in the library, you must also 12 | 13 | Register the HTWAIS protocol at initialisation (e.g. HTInit or HTSInit) by 14 | compiling it with -DDIRECT_WAIS 15 | 16 | Link with the WAIS libraries 17 | 18 | The wais source files are parsed by a separate and independent module, HTWSRC. You can 19 | include HTWSRC without including direct wais using this module, and your WWW code will 20 | be able to read source files, and access WAIS indexes through a gateway. 21 | 22 | A WAIS-WWW gateway is just a normal W3 server with a libwww compiled with this module. 23 | 24 | Anyways, this interface won't change much: 25 | 26 | */ 27 | 28 | #ifndef HTWAIS_H 29 | #define HTWAIS_H 30 | #include "HTUtils.h" 31 | #include "HTAccess.h" 32 | /* 33 | 34 | Control Flags 35 | 36 | The number of lines handled from a WAIS search is determined by this variable. The 37 | default value is 100 (this is defined in the module) 38 | 39 | */ 40 | 41 | extern int HTMaxWAISLines; 42 | 43 | GLOBALREF HTProtocol HTWAIS; 44 | /* 45 | 46 | End of Difinition module 47 | 48 | */ 49 | 50 | #endif 51 | 52 | /* 53 | 54 | Tim BL 55 | 56 | */ 57 | -------------------------------------------------------------------------------- /Library/Implementation/HTWAIS.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | WAIS protocol module for the W3 library 4 | 5 | 6 | 7 |

WAIS Protocol Interface

8 | 9 | This module does not actually perform the WAIS protocol directly, but it 10 | does using one or more libraries of the freeWAIS distribution. The 11 | ui.a library came with the old free WAIS from TMC, the client.a and 12 | wais.a libraries are needed from the freeWAIS from CNIDR.

13 | 14 | Note: The current version suppored is freeWAIS-0.3, June 1994

15 | 16 | If you include this module in the library, you must also 17 | 18 |

    19 |
  • Register the HTWAIS protocol at initialisation (e.g. HTInit or HTSInit) 20 | by compiling it with -DDIRECT_WAIS 21 |
  • Link with the WAIS libraries 22 |
23 | 24 | The wais source files are parsed by a separate and independent module, 25 | HTWSRC. You can include HTWSRC 26 | without including direct wais using this module, and your WWW code will 27 | be able to read source files, and access WAIS indexes through a gateway.

28 | 29 | A WAIS-WWW gateway 30 | is just a normal W3 server with a libwww compiled with this module.

31 | 32 | Anyways, this interface won't change much: 33 | 34 |

35 | #ifndef HTWAIS_H
36 | #define HTWAIS_H
37 | #include "HTUtils.h"
38 | #include "HTAccess.h"
39 | 
40 | 41 |

Control Flags

42 | 43 | The number of lines handled from a WAIS search is determined by this variable. 44 | The default value is 100 (this is defined in the module) 45 | 46 |
47 | extern int HTMaxWAISLines;
48 | 
49 | GLOBALREF HTProtocol HTWAIS;
50 | 
51 | 52 | End of Difinition module 53 | 54 |
55 | #endif
56 | 
57 | 
58 | 59 |
Tim BL 60 |
61 | 62 | 63 | -------------------------------------------------------------------------------- /Library/Implementation/HTWSRC.h: -------------------------------------------------------------------------------- 1 | /* A parser for WAIS source files 2 | WAIS SOURCE FILE PARSER 3 | 4 | This converter returns a stream object into which a WAIS source file can be written. 5 | The result is put via a structured stream into whatever format was required for the 6 | output stream. 7 | 8 | See also: HTWAIS protocol interface module 9 | 10 | */ 11 | #ifndef HTWSRC_H 12 | #define HTWSRC_H 13 | #include "HTUtils.h" 14 | 15 | #include "HTFormat.h" 16 | 17 | #ifndef pyramid 18 | extern HTConverter HTWSRCConvert; 19 | #endif 20 | 21 | /* 22 | 23 | Escaping Strings 24 | 25 | HTDeSlash takes out the invlaid characters in a URL path ELEMENT by converting them 26 | into hex-escaped characters. HTEnSlash does the reverse. 27 | 28 | Each returns a pointer to a newly allocated string which must eventually be freed by 29 | the caller. 30 | 31 | */ 32 | extern char * HTDeSlash PARAMS((CONST char * str)); 33 | 34 | extern char * HTEnSlash PARAMS((CONST char * str)); 35 | 36 | #endif 37 | 38 | /* 39 | 40 | Tim BL 41 | 42 | */ 43 | -------------------------------------------------------------------------------- /Library/Implementation/HTWSRC.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | A parser for WAIS source files 4 | 5 | 6 | 7 |

WAIS Source file parser

This converter returns a stream object 9 | into which a WAIS source file can 11 | be written. The result is put via 12 | a structured stream into whatever 14 | format was required for the output 15 | stream.

16 | See also: HTWAIS protocol interface 18 | module 19 |

#ifndef HTWSRC_H
20 | #define HTWSRC_H
21 | #include "HTUtils.h"
22 | 
23 | #include "HTFormat.h"
24 | 
25 | #ifndef pyramid
26 | extern  HTConverter HTWSRCConvert;
27 | #endif
28 | 
29 | 
30 |

Escaping Strings

HTDeSlash takes out the invlaid characters 31 | in a URL path ELEMENT by converting 32 | them into hex-escaped characters. 33 | HTEnSlash does the reverse.

34 | Each returns a pointer to a newly 35 | allocated string which must eventually 36 | be freed by the caller. 37 |

extern char * HTDeSlash PARAMS((CONST char * str));
38 | 
39 | extern char * HTEnSlash PARAMS((CONST char * str));
40 | 
41 | #endif
42 | 
43 | 
44 |
Tim BL 46 |
47 | 48 | -------------------------------------------------------------------------------- /Library/Implementation/HTWriter.c.patch2: -------------------------------------------------------------------------------- 1 | *** HTWriter.c Fri Jul 5 11:01:42 EDT 1996 2 | --- HTWriter.c.ORIG Fri Jul 5 10:56:44 EDT 1996 3 | *************** 4 | *** 50,65 **** 5 | #endif /* OLD_CODE */ 6 | status = NETWRITE(me->soc, read_pointer, write_pointer - read_pointer); 7 | if (status<0) { 8 | ! if (EINTR == errno) { 9 | ! status = 0; /* assume the write was interrupted, 10 | ! and no bytes were written */ 11 | ! } 12 | ! else { 13 | ! if(TRACE) fprintf(stderr, 14 | ! "HTWrite: Error: write() on socket returns %d (errno %d -- ``%s''!!!\n", 15 | ! status, errno, strerror(errno)); 16 | ! return; 17 | ! } 18 | } 19 | read_pointer += status; 20 | } 21 | --- 50,58 ---- 22 | #endif /* OLD_CODE */ 23 | status = NETWRITE(me->soc, read_pointer, write_pointer - read_pointer); 24 | if (status<0) { 25 | ! if(TRACE) fprintf(stderr, 26 | ! "HTWrite: Error: write() on socket returns %d !!!\n", status); 27 | ! return; 28 | } 29 | read_pointer += status; 30 | } 31 | -------------------------------------------------------------------------------- /Library/Implementation/HTWriter.c.patch2~: -------------------------------------------------------------------------------- 1 | *** HTWriter.c Fri Jul 5 11:01:42 EDT 1996 2 | --- HTWriter.c.ORIG Fri Jul 5 10:56:44 EDT 1996 3 | *************** 4 | *** 53,68 **** 5 | #endif /* OLD_CODE */ 6 | status = NETWRITE(me->soc, read_pointer, write_pointer - read_pointer); 7 | if (status<0) { 8 | ! if (EINTR == errno) { 9 | ! status = 0; /* assume the write was interrupted, 10 | ! and no bytes were written */ 11 | ! } 12 | ! else { 13 | ! if(TRACE) fprintf(stderr, 14 | ! "HTWrite: Error: write() on socket returns %d (errno %d -- ``%s''!!!\n", 15 | ! status, errno, strerror(errno)); 16 | ! return; 17 | ! } 18 | } 19 | read_pointer += status; 20 | } 21 | --- 50,58 ---- 22 | #endif /* OLD_CODE */ 23 | status = NETWRITE(me->soc, read_pointer, write_pointer - read_pointer); 24 | if (status<0) { 25 | ! if(TRACE) fprintf(stderr, 26 | ! "HTWrite: Error: write() on socket returns %d !!!\n", status); 27 | ! return; 28 | } 29 | read_pointer += status; 30 | } 31 | *************** 32 | *** 120,141 **** 33 | } 34 | #endif 35 | while (read_pointer < write_pointer) { 36 | ! int status; 37 | ! 38 | ! errno = 0; 39 | ! status = NETWRITE(me->soc, read_pointer, 40 | ! write_pointer - read_pointer); 41 | if (status<0) { 42 | ! if (EINTR == errno) { 43 | ! status = 0; /* assume the write was interrupted, 44 | ! and no bytes were written */ 45 | ! } 46 | ! else { 47 | ! if(TRACE) fprintf(stderr, 48 | ! "HTWriter_write: Error on socket output stream!!! (errno %d -- ``%s''\n", 49 | ! errno, strerror(errno)); 50 | ! return; 51 | ! } 52 | } 53 | read_pointer = read_pointer + status; 54 | } 55 | --- 110,121 ---- 56 | } 57 | #endif 58 | while (read_pointer < write_pointer) { 59 | ! int status = NETWRITE(me->soc, read_pointer, 60 | ! write_pointer - read_pointer); 61 | if (status<0) { 62 | ! if(TRACE) fprintf(stderr, 63 | ! "HTWriter_write: Error on socket output stream!!!\n"); 64 | ! return; 65 | } 66 | read_pointer = read_pointer + status; 67 | } 68 | -------------------------------------------------------------------------------- /Library/Implementation/HTWriter.c.rej: -------------------------------------------------------------------------------- 1 | *************** 2 | *** 50,65 **** 3 | #endif /* OLD_CODE */ 4 | status = NETWRITE(me->soc, read_pointer, write_pointer - read_pointer); 5 | if (status<0) { 6 | ! if (EINTR == errno) { 7 | ! status = 0; /* assume the write was interrupted, 8 | ! and no bytes were written */ 9 | ! } 10 | ! else { 11 | ! if(TRACE) fprintf(stderr, 12 | ! "HTWrite: Error: write() on socket returns %d (errno %d -- ``%s''!!!\n", 13 | ! status, errno, strerror(errno)); 14 | ! return; 15 | ! } 16 | } 17 | read_pointer += status; 18 | } 19 | --- 50,58 ---- 20 | #endif /* OLD_CODE */ 21 | status = NETWRITE(me->soc, read_pointer, write_pointer - read_pointer); 22 | if (status<0) { 23 | ! if(TRACE) fprintf(stderr, 24 | ! "HTWrite: Error: write() on socket returns %d !!!\n", status); 25 | ! return; 26 | } 27 | read_pointer += status; 28 | } 29 | -------------------------------------------------------------------------------- /Library/Implementation/HTWriter.c.rej.orig: -------------------------------------------------------------------------------- 1 | *************** 2 | *** 50,58 **** 3 | #endif /* OLD_CODE */ 4 | status = NETWRITE(me->soc, read_pointer, write_pointer - read_pointer); 5 | if (status<0) { 6 | ! if(TRACE) fprintf(stderr, 7 | ! "HTWrite: Error: write() on socket returns %d !!!\n", status); 8 | ! return; 9 | } 10 | read_pointer += status; 11 | } 12 | --- 53,68 ---- 13 | #endif /* OLD_CODE */ 14 | status = NETWRITE(me->soc, read_pointer, write_pointer - read_pointer); 15 | if (status<0) { 16 | ! if (EINTR == errno) { 17 | ! status = 0; /* assume the write was interrupted, 18 | ! and no bytes were written */ 19 | ! } 20 | ! else { 21 | ! if(TRACE) fprintf(stderr, 22 | ! "HTWrite: Error: write() on socket returns %d (errno %d -- ``%s''!!!\n", 23 | ! status, errno, strerror(errno)); 24 | ! return; 25 | ! } 26 | } 27 | read_pointer += status; 28 | } 29 | *************** 30 | *** 110,121 **** 31 | } 32 | #endif 33 | while (read_pointer < write_pointer) { 34 | ! int status = NETWRITE(me->soc, read_pointer, 35 | ! write_pointer - read_pointer); 36 | if (status<0) { 37 | ! if(TRACE) fprintf(stderr, 38 | ! "HTWriter_write: Error on socket output stream!!!\n"); 39 | ! return; 40 | } 41 | read_pointer = read_pointer + status; 42 | } 43 | --- 120,141 ---- 44 | } 45 | #endif 46 | while (read_pointer < write_pointer) { 47 | ! int status; 48 | ! 49 | ! errno = 0; 50 | ! status = NETWRITE(me->soc, read_pointer, 51 | ! write_pointer - read_pointer); 52 | if (status<0) { 53 | ! if (EINTR == errno) { 54 | ! status = 0; /* assume the write was interrupted, 55 | ! and no bytes were written */ 56 | ! } 57 | ! else { 58 | ! if(TRACE) fprintf(stderr, 59 | ! "HTWriter_write: Error on socket output stream!!! (errno %d -- ``%s''\n", 60 | ! errno, strerror(errno)); 61 | ! return; 62 | ! } 63 | } 64 | read_pointer = read_pointer + status; 65 | } 66 | -------------------------------------------------------------------------------- /Library/Implementation/HTWriter.h: -------------------------------------------------------------------------------- 1 | /* Socket writer for libwww 2 | UNIX FILE DESCRIPTOR OR SOCKET WRITER 3 | 4 | This version of the stream object just writes to a socket. The socket is assumed open 5 | and closed afterward.There are two versions (identical on ASCII machines) one of which 6 | converts to ASCII on output. 7 | 8 | Part of libwww. See also HTFWriter for writing to C files. 9 | 10 | BUGS: 11 | 12 | strings written must be less than buffer size. 13 | 14 | */ 15 | #ifndef HTWRITE_H 16 | #define HTWRITE_H 17 | 18 | #include "HTStream.h" 19 | 20 | extern HTStream * HTWriter_new PARAMS((int soc)); 21 | extern HTStream * HTWriter_newNoClose PARAMS((int soc)); 22 | 23 | extern HTStream * HTASCIIWriter PARAMS((int soc)); 24 | 25 | #endif 26 | 27 | /* 28 | 29 | end */ 30 | -------------------------------------------------------------------------------- /Library/Implementation/HTWriter.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Socket writer for libwww 4 | 5 | 6 | 7 |

Unix File descriptor or Socket Writer

This version of the stream object 8 | just writes to a socket. The socket 9 | is assumed open and closed afterward.There are two versions (identical 10 | on ASCII machines) one of which converts 11 | to ASCII on output.

12 | Part of libwww. See also HTFWriter 15 | for writing to C files. 16 |

Bugs:

17 |
    18 |
  • strings written must be less than 19 | buffer size. 20 |
21 |
#ifndef HTWRITE_H
22 | #define HTWRITE_H
23 | 
24 | #include "HTStream.h"
25 | 
26 | extern HTStream * HTWriter_new PARAMS((int soc));
27 | extern HTStream * HTWriter_newNoClose PARAMS((int soc));
28 | 
29 | extern HTStream * HTASCIIWriter PARAMS((int soc));
30 | 
31 | #endif
32 | 
33 | 
end 34 | 35 | -------------------------------------------------------------------------------- /Library/Implementation/README: -------------------------------------------------------------------------------- 1 | 2 | This is the README file which seems to be empty... 3 | 4 | -------------------------------------------------------------------------------- /Library/Implementation/Version.make: -------------------------------------------------------------------------------- 1 | VC = 2.17 2 | -------------------------------------------------------------------------------- /Library/Implementation/WWW.html: -------------------------------------------------------------------------------- 1 |
 2 | /*	Include file for WorldWideWeb project-wide definitions
 3 | */
 4 | 
 5 | /*	Formats:
 6 | */
 7 | 
 8 | #ifndef WWW_H
 9 | #define WWW_H
10 | 
11 | /*	Bit fields describing the capabilities for a node:
12 | */
13 | #define WWW_READ					1
14 | #define WWW_WRITE					2
15 | #define WWW_LINK_TO_NODE		4
16 | #define WWW_LINK_TO_PART		8
17 | #define WWW_LINK_FROM_NODE	  16
18 | #define WWW_LINK_FROM_PART	  32
19 | #define WWW_DO_ANYTHING	     63
20 | 
21 | #endif /* WWW_H */
22 | 
23 | -------------------------------------------------------------------------------- /Library/Implementation/vms/CVS/Entries: -------------------------------------------------------------------------------- 1 | /COPYING.LIB/1.1/Tue Nov 16 14:20:18 1993//Tcern-update 2 | /HTVMSUtils.c/1.3/Fri Aug 12 10:32:17 1994//Tcern-update 3 | /HTVMSUtils.h/1.3/Fri Aug 12 10:32:18 1994//Tcern-update 4 | /build_multinet.com/1.4/Fri Aug 12 10:32:19 1994//Tcern-update 5 | /build_multinet.com_alpha/1.3/Fri Aug 12 10:32:20 1994//Tcern-update 6 | /build_ucx.com/1.2/Fri Aug 12 10:32:21 1994//Tcern-update 7 | /build_ucx.com_alpha/1.2/Fri Aug 12 10:32:22 1994//Tcern-update 8 | /crypt.c/1.1/Tue Nov 16 14:20:28 1993//Tcern-update 9 | /crypt_util.c/1.1/Tue Nov 16 14:20:30 1993//Tcern-update 10 | /descrip.mms/1.4/Fri Aug 12 10:32:22 1994//Tcern-update 11 | /dirent.c/1.2/Fri Aug 12 10:32:23 1994//Tcern-update 12 | /dirent.h/1.1/Thu Mar 10 15:55:42 1994//Tcern-update 13 | /getline.c/1.2/Fri Aug 12 10:32:23 1994//Tcern-update 14 | /getpass.c/1.2/Fri Aug 12 10:32:24 1994//Tcern-update 15 | /grpread.c/1.1/Fri Jun 21 17:45:58 1996//Tcern-update 16 | /multinet.opt/1.2/Tue Mar 1 10:34:31 1994//Tcern-update 17 | /multinet.opt_alpha/1.1/Tue Mar 1 10:34:34 1994//Tcern-update 18 | /patchlevel.h/1.1/Tue Nov 16 14:20:54 1993//Tcern-update 19 | /sys_dirent.h/1.1/Thu Mar 10 15:55:44 1994//Tcern-update 20 | /ucx.opt/1.1/Thu Mar 10 15:55:47 1994//Tcern-update 21 | /ucx.opt_alpha/1.1/Thu Mar 10 15:55:50 1994//Tcern-update 22 | /ufc-crypt.h/1.1/Tue Nov 16 14:21:02 1993//Tcern-update 23 | -------------------------------------------------------------------------------- /Library/Implementation/vms/CVS/Repository: -------------------------------------------------------------------------------- 1 | /afs/w3.org/pub/WWW/Library/Repository/src/vms 2 | -------------------------------------------------------------------------------- /Library/Implementation/vms/CVS/Root: -------------------------------------------------------------------------------- 1 | /afs/w3.org/pub/WWW 2 | -------------------------------------------------------------------------------- /Library/Implementation/vms/CVS/Tag: -------------------------------------------------------------------------------- 1 | Tcern-update 2 | -------------------------------------------------------------------------------- /Library/Implementation/vms/dirent.h: -------------------------------------------------------------------------------- 1 | /* file changed to make it VMS compatible. NOT ALL UNIX FEATURES WORK */ 2 | /* NOTE: the routines are NOT re-entrant... */ 3 | 4 | /* 5 | * Filesystem-independent directory information. 6 | */ 7 | 8 | #ifndef __dirent_h 9 | #define __dirent_h 10 | 11 | #include 12 | 13 | #ifndef _POSIX_SOURCE 14 | #define d_ino d_fileno /* compatability */ 15 | #ifndef NULL 16 | #define NULL 0 17 | #endif 18 | #endif /* !_POSIX_SOURCE */ 19 | 20 | /* 21 | * Definitions for library routines operating on directories. 22 | */ 23 | #include 24 | 25 | typedef struct __dirdesc { 26 | #if 0 27 | int dd_fd; /* file descriptor */ 28 | long dd_loc; /* buf offset of entry from last readddir() */ 29 | long dd_size; /* amount of valid data in buffer */ 30 | long dd_bsize; /* amount of entries read at a time */ 31 | long dd_off; /* Current offset in dir (for telldir) */ 32 | char *dd_buf; /* directory data buffer */ 33 | #endif 34 | long context; /* context descriptor for LIB$FIND_FILE calls */ 35 | char dirname[255+1]; /* keeps the directory name, including *.* */ 36 | struct dsc$descriptor_s dirname_desc; /* descriptor of dirname */ 37 | } DIR; 38 | 39 | extern DIR *opendir(char *dirname); 40 | extern struct dirent *readdir(DIR *dirp); 41 | extern int closedir(DIR *dirp); 42 | #if 0 43 | #ifndef _POSIX_SOURCE 44 | extern void seekdir(/* DIR *dirp, int loc */); 45 | extern long telldir(/* DIR *dirp */); 46 | #endif /* POSIX_SOURCE */ 47 | extern void rewinddir(/* DIR *dirp */); 48 | 49 | #ifndef lint 50 | #define rewinddir(dirp) seekdir((dirp), (long)0) 51 | #endif 52 | #endif /* not defined for VMS */ 53 | 54 | #include "sys_dirent.h" 55 | 56 | #endif /* !__dirent_h */ 57 | -------------------------------------------------------------------------------- /Library/Implementation/vms/getline.c: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 1991 Free Software Foundation, Inc. 2 | This file is part of the GNU C Library. 3 | 4 | The GNU C Library is free software; you can redistribute it and/or 5 | modify it under the terms of the GNU Library General Public License as 6 | published by the Free Software Foundation; either version 2 of the 7 | License, or (at your option) any later version. 8 | 9 | The GNU C Library is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | Library General Public License for more details. 13 | 14 | You should have received a copy of the GNU Library General Public 15 | License along with the GNU C Library; see the file COPYING.LIB. If 16 | not, write to the Free Software Foundation, Inc., 675 Mass Ave, 17 | Cambridge, MA 02139, USA. */ 18 | 19 | /* CHANGED FOR VMS */ 20 | 21 | /* 22 | * 23 | ** 24 | ** HISTORY: 25 | ** 8 Jul 94 FM Include "HTUtils.h" for memory allocation and free() 26 | ** substitutions with VAXC on VMS. 27 | ** 28 | */ 29 | 30 | #include 31 | #include 32 | #include 33 | #include 34 | #include "HTUtils.h" 35 | 36 | /* Read up to (and including) a newline from STREAM into *LINEPTR 37 | (and null-terminate it). *LINEPTR is a pointer returned from malloc (or 38 | NULL), pointing to *N characters of space. It is realloc'd as 39 | necessary. Returns the number of characters read (not including the 40 | null terminator), or -1 on error or EOF. */ 41 | 42 | int getline(char **lineptr, size_t *n, FILE *stream) 43 | { 44 | static char line[256]; 45 | char *ptr; 46 | unsigned int len; 47 | 48 | if (lineptr == NULL || n == NULL) 49 | { 50 | errno = EINVAL; 51 | return -1; 52 | } 53 | 54 | if (ferror (stream)) 55 | return -1; 56 | 57 | if (feof(stream)) 58 | return -1; 59 | 60 | fgets(line,256,stream); 61 | 62 | ptr = strchr(line,'\n'); 63 | if (ptr) 64 | *ptr = '\0'; 65 | 66 | len = strlen(line); 67 | 68 | if ((len+1) < 256) 69 | { 70 | ptr = realloc(*lineptr, 256); 71 | if (ptr == NULL) 72 | return(-1); 73 | *lineptr = ptr; 74 | *n = 256; 75 | } 76 | 77 | strcpy(*lineptr,line); 78 | return(len); 79 | } 80 | -------------------------------------------------------------------------------- /Library/Implementation/vms/getpass.c: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 1991 Free Software Foundation, Inc. 2 | This file is part of the GNU C Library. 3 | 4 | The GNU C Library is free software; you can redistribute it and/or 5 | modify it under the terms of the GNU Library General Public License as 6 | published by the Free Software Foundation; either version 2 of the 7 | License, or (at your option) any later version. 8 | 9 | The GNU C Library is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | Library General Public License for more details. 13 | 14 | You should have received a copy of the GNU Library General Public 15 | License along with the GNU C Library; see the file COPYING.LIB. If 16 | not, write to the Free Software Foundation, Inc., 675 Mass Ave, 17 | Cambridge, MA 02139, USA. */ 18 | 19 | /* CHANGED FOR VMS */ 20 | 21 | /* 22 | * 23 | ** 24 | ** HISTORY: 25 | ** 8 Jul 94 FM Include "HTUtils.h" for memory allocation and free() 26 | ** substitutions with VAXC on VMS. 27 | ** 28 | */ 29 | 30 | #include 31 | #include 32 | #include 33 | #include 34 | #include "HTUtils.h" 35 | 36 | char *getpass (const char *prompt) 37 | { 38 | static char *buf; 39 | 40 | int result; 41 | $DESCRIPTOR(devnam,"SYS$INPUT"); 42 | int chan; 43 | int promptlen; 44 | struct { 45 | short result; 46 | short count; 47 | int info; 48 | } iosb; 49 | 50 | promptlen = strlen(prompt); 51 | 52 | buf = malloc(256); 53 | if (buf == NULL) 54 | return(NULL); 55 | 56 | result = SYS$ASSIGN(&devnam, &chan, PSL$C_USER, 0, 0); 57 | 58 | result = SYS$QIOW(0, chan, IO$_READPROMPT | IO$M_PURGE |IO$M_NOECHO, &iosb, 0, 0, 59 | buf, 255, 0, 0, prompt, promptlen); 60 | 61 | buf[iosb.count] = '\0'; 62 | 63 | result = SYS$DASSGN(chan); 64 | 65 | return buf; 66 | } 67 | -------------------------------------------------------------------------------- /Library/Implementation/vms/multinet.opt: -------------------------------------------------------------------------------- 1 | MULTINET:MULTINET_SOCKET_LIBRARY/share 2 | sys$share:vaxcrtl/share 3 | -------------------------------------------------------------------------------- /Library/Implementation/vms/multinet.opt_alpha: -------------------------------------------------------------------------------- 1 | MULTINET:MULTINET_SOCKET_LIBRARY/share 2 | -------------------------------------------------------------------------------- /Library/Implementation/vms/patchlevel.h: -------------------------------------------------------------------------------- 1 | /* 2 | * UFC-crypt: ultra fast crypt(3) implementation 3 | * 4 | * Copyright (C) 1991, 1992, Free Software Foundation, Inc. 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Library General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Library General Public License for more details. 15 | 16 | * You should have received a copy of the GNU Library General Public 17 | * License along with this library; if not, write to the Free 18 | * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 19 | * 20 | * @(#)patchlevel.h 1.11 7/15/92 21 | * 22 | */ 23 | 24 | #define PATCHLEVEL "UFC-crypt, patchlevel 1e, @(#)patchlevel.h 1.11 7/15/92" 25 | -------------------------------------------------------------------------------- /Library/Implementation/vms/sys_dirent.h: -------------------------------------------------------------------------------- 1 | /* this file was adapted for VMS. NOT ALL UNIX FEATURES WORK */ 2 | 3 | /* 4 | *------> THE DESCRIPTION BELOW IS FOR UNIX... <----- 5 | * Filesystem-independent directory information. 6 | * Directory entry structures are of variable length. 7 | * Each directory entry is a struct dirent containing its file number, the 8 | * offset of the next entry (a cookie interpretable only the filesystem 9 | * type that generated it), the length of the entry, and the length of the 10 | * name contained in the entry. These are followed by the name. The 11 | * entire entry is padded with null bytes to a 4 byte boundary. All names 12 | * are guaranteed null terminated. The maximum length of a name in a 13 | * directory is MAXNAMLEN, plus a null byte. 14 | *------> THE DESCRIPTION BELOW IS FOR VMS... <----- 15 | * for VMS only d_name, d_namlen and d_ino are defined. 16 | * d_fileno is a nonzero number to make you think the file is there. The number 17 | * has no other meaning. 18 | */ 19 | 20 | #ifndef __sys_dirent_h 21 | #define __sys_dirent_h 22 | 23 | struct dirent { 24 | #if 0 25 | off_t d_off; /* offset of next disk dir entry */ 26 | #endif 27 | unsigned long d_fileno; /* file number of entry */ 28 | #if 0 29 | unsigned short d_reclen; /* length of this record */ 30 | #endif 31 | unsigned short d_namlen; /* length of string in d_name */ 32 | char d_name[255+1]; /* name (up to MAXNAMLEN + 1) */ 33 | }; 34 | 35 | #ifndef _POSIX_SOURCE 36 | /* 37 | * It's unlikely to change, but make sure that sizeof d_name above is 38 | * at least MAXNAMLEN + 1 (more may be added for padding). 39 | */ 40 | #define MAXNAMLEN 255 41 | /* 42 | * The macro DIRSIZ(dp) gives the minimum amount of space required to represent 43 | * a directory entry. For any directory entry dp->d_reclen >= DIRSIZ(dp). 44 | * Specific filesystem types may use this macro to construct the value 45 | * for d_reclen. 46 | */ 47 | #undef DIRSIZ 48 | #define DIRSIZ(dp) \ 49 | (((sizeof(struct dirent) - (MAXNAMLEN+1) + ((dp)->d_namlen+1)) +3) & ~3) 50 | 51 | #endif /* !_POSIX_SOURCE */ 52 | #endif /* !__sys_dirent_h */ 53 | -------------------------------------------------------------------------------- /Library/Implementation/vms/ucx.opt: -------------------------------------------------------------------------------- 1 | sys$library:ucx$ipc/lib 2 | sys$share:vaxcrtl/share 3 | -------------------------------------------------------------------------------- /Library/Implementation/vms/ucx.opt_alpha: -------------------------------------------------------------------------------- 1 | sys$share:ucx$ipc_shr/share 2 | -------------------------------------------------------------------------------- /Library/Implementation/vms/ufc-crypt.h: -------------------------------------------------------------------------------- 1 | /* 2 | * UFC-crypt: ultra fast crypt(3) implementation 3 | * 4 | * Copyright (C) 1991, 1992, Free Software Foundation, Inc. 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Library General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Library General Public License for more details. 15 | 16 | * You should have received a copy of the GNU Library General Public 17 | * License along with this library; if not, write to the Free 18 | * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 19 | * 20 | * @(#)ufc-crypt.h 1.16 09/21/92 21 | * 22 | * Definitions of datatypes 23 | * 24 | */ 25 | 26 | /* 27 | * Requirements for datatypes: 28 | * 29 | * A datatype 'ufc_long' of at least 32 bit 30 | * *and* 31 | * A type 'long32' of exactly 32 bits (_UFC_32_) 32 | * *or* 33 | * A type 'long64' of exactly 64 bits (_UFC_64_) 34 | * 35 | * 'int' is assumed to be at least 8 bit 36 | */ 37 | 38 | /* 39 | * #ifdef's for various architectures 40 | */ 41 | 42 | #ifdef cray 43 | /* thanks to (Tom Hutton) for testing */ 44 | typedef unsigned long ufc_long; 45 | typedef unsigned long long64; 46 | #define _UFC_64_ 47 | #endif 48 | 49 | #ifdef convex 50 | /* thanks to pcl@convex.oxford.ac.uk (Paul Leyland) for testing */ 51 | typedef unsigned long ufc_long; 52 | typedef long long long64; 53 | #define _UFC_64_ 54 | #endif 55 | 56 | #ifdef ksr 57 | /* 58 | * Note - the KSR machine does not define a unique symbol 59 | * which we can check. So you MUST add '-Dksr' to your Makefile. 60 | * Thanks to lijewski@theory.tc.cornell.edu (Mike Lijewski) for 61 | * the patch. 62 | */ 63 | typedef unsigned long ufc_long; 64 | typedef unsigned long long64; 65 | #define _UFC_64_ 66 | #endif 67 | 68 | /* 69 | * For debugging 64 bit code etc with 'gcc' 70 | */ 71 | 72 | #ifdef GCC3232 73 | typedef unsigned long ufc_long; 74 | typedef unsigned long long32; 75 | #define _UFC_32_ 76 | #endif 77 | 78 | #ifdef GCC3264 79 | typedef unsigned long ufc_long; 80 | typedef long long long64; 81 | #define _UFC_64_ 82 | #endif 83 | 84 | #ifdef GCC6432 85 | typedef long long ufc_long; 86 | typedef unsigned long long32; 87 | #define _UFC_32_ 88 | #endif 89 | 90 | #ifdef GCC6464 91 | typedef long long ufc_long; 92 | typedef long long long64; 93 | #define _UFC_64_ 94 | #endif 95 | 96 | /* 97 | * Catch all for 99.95% of all UNIX machines 98 | */ 99 | 100 | #ifndef _UFC_64_ 101 | #ifndef _UFC_32_ 102 | #define _UFC_32_ 103 | typedef unsigned long ufc_long; 104 | typedef unsigned long long32; 105 | #endif 106 | #endif 107 | 108 | 109 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | # Make basic WWW distribution 2 | # 3 | # See the README and the documentation on the web. 4 | # When you have done BUILD you will have www so you will be able to 5 | # read the documentation online. 6 | # 7 | all : 8 | ./BUILD 9 | 10 | purify: 11 | (cd Daemon/sun4; make purify) 12 | 13 | clean: 14 | rm -f *[~#] */*[~#] */*/*[~#] 15 | rm -f *.o */*.o */*/*.o 16 | rm -f *.old */*.old */*/*.old 17 | 18 | clobber: clean 19 | rm -f Library/[a-z0-9]*/libwww.a 20 | rm -f LineMode/[a-z0-9]*/www* 21 | rm -f Daemon/[a-z0-9]*/httpd* 22 | rm -f Daemon/[a-z0-9]*/htimage 23 | rm -f Daemon/[a-z0-9]*/htadm 24 | rm -f Daemon/[a-z0-9]*/cgiparse 25 | rm -f Daemon/[a-z0-9]*/cgiutils 26 | 27 | -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- 1 | 2 | This is a small upgrade release of the CERN server (a.k.a. W3C 3 | httpd). It includes a set of bug fixes and some improvements. The 4 | release comes ASIS - that is - there is _no_ support available. Take 5 | it or leave it :-) 6 | 7 | The release does only include source code, you must compile the binary 8 | yourself. 9 | 10 | THIS PACKAGE INCLUDES: 11 | * source code under the WWW directory [where this README file is] 12 | To compile just type 13 | 14 | make 15 | 16 | and binaries will appear in Daemon/xxx where xxx is your host's 17 | architecture, like sun4 or next. 18 | 19 | * README-SOCKS explaining how to compile and use SOCKSified httpd 20 | * server_root/ directory containing: 21 | * Sample configuration files for httpd in config/ 22 | - httpd.conf for normal use as HTTP server 23 | - prot.conf for normal use as HTTP server with access control 24 | - proxy.conf for proxy use without caching 25 | - caching.conf for proxy use with caching 26 | - all.conf that contains all the configuration directives 27 | understood by httpd 28 | 29 | * Sample icons in icons/ 30 | - to be used for directory listings, and also for ftp listings 31 | when using httpd as a proxy 32 | - simplist way to make use of the icons is to define the 33 | server root directory to be server_root under this current 34 | directory [where this README file sits], by specifying in 35 | the configuration file: 36 | 37 | ServerRoot /what/ever/server_root 38 | 39 | 40 | ONLINE DOCUMENTATION for this software is in: 41 | 42 | http://www.w3.org/pub/WWW/Daemon/ 43 | 44 | Security bugs can be sent to 45 | 46 | httpd@w3.org 47 | 48 | Remember to run httpd in VERBOSE MODE [with the -v or -vv command line 49 | option] when things seem to be going wrong and attach the output to 50 | your mail message. This will make our job a lot easier. 51 | 52 | If httpd crashes and a core image is generated, run "dbx /path/httpd" 53 | and say "where" to see where the execution was when the program 54 | crashed. 55 | 56 | Have fun! 57 | -------------------------------------------------------------------------------- /server_root/config/caching.conf: -------------------------------------------------------------------------------- 1 | # 2 | # Sample configuration file for cern_httpd for running it 3 | # as a proxy server WITH caching. 4 | # 5 | # See: 6 | # 7 | # 8 | # for more information. 9 | # 10 | # Written by: 11 | # Ari Luotonen April 1994 12 | # 13 | 14 | # 15 | # Set this to point to the directory where you unpacked this 16 | # distribution, or wherever you want httpd to have its "home" 17 | # 18 | ServerRoot /where/ever/server_root 19 | 20 | # 21 | # Set the port for proxy to listen to 22 | # 23 | Port 8080 24 | 25 | # 26 | # General setup; on some systems, like HP, nobody is defined so 27 | # that setuid() fails; in those cases use a different user id. 28 | # 29 | UserId nobody 30 | GroupId nogroup 31 | 32 | # 33 | # Logging; if you want logging uncomment these lines and specify 34 | # locations for your access and error logs 35 | # 36 | # AccessLog /where/ever/proxy-log 37 | # ErrorLog /where/ever/proxy-errors 38 | LogFormat Common 39 | LogTime LocalTime 40 | 41 | # 42 | # Proxy protections; if you want only certain domains to use 43 | # your proxy, uncomment these lines and specify the Mask 44 | # with hostname templates or IP number templates: 45 | # 46 | # Protection PROXY-PROT { 47 | # ServerId YourProxyName 48 | # Mask @(*.cern.ch, 128.141.*.*, *.ncsa.uiuc.edu) 49 | # } 50 | # Protect * PROXY-PROT 51 | 52 | # 53 | # Pass the URLs that this proxy is willing to forward. 54 | # 55 | Pass http:* 56 | Pass ftp:* 57 | Pass gopher:* 58 | Pass wais:* 59 | 60 | # 61 | # Enable caching, specify cache root directory, and cache size 62 | # in megabytes 63 | # 64 | Caching On 65 | CacheRoot /your/cache/root/dir 66 | CacheSize 5 67 | 68 | # 69 | # Specify absolute maximum for caching time 70 | # 71 | CacheClean * 2 months 72 | 73 | # 74 | # Specify the maximum time to be unused 75 | # 76 | CacheUnused http:* 2 weeks 77 | CacheUnused ftp:* 1 week 78 | CacheUnused gopher:* 1 week 79 | 80 | # 81 | # Specify default expiry times for ftp and gopher; 82 | # NEVER specify it for HTTP, otherwise documents generated by 83 | # scripts get cached which is usually a bad thing. 84 | # 85 | CacheDefaultExpiry ftp:* 10 days 86 | CacheDefaultExpiry gopher:* 2 days 87 | 88 | # 89 | # Garbage collection controls; daily garbage collection at 3am; 90 | # 91 | Gc On 92 | GcDailyGc 3:00 93 | 94 | -------------------------------------------------------------------------------- /server_root/config/httpd.conf: -------------------------------------------------------------------------------- 1 | # 2 | # Sample configuration file for cern_httpd for running it 3 | # as a normal HTTP server. 4 | # 5 | # See: 6 | # 7 | # 8 | # for more information. 9 | # 10 | # Written by: 11 | # Ari Luotonen April 1994 12 | # 13 | 14 | # 15 | # Set this to point to the directory where you unpacked this 16 | # distribution, or wherever you want httpd to have its "home" 17 | # 18 | ServerRoot /where/ever/server_root 19 | 20 | # 21 | # The default port for HTTP is 80; if you are not root you have 22 | # to use a port above 1024; good defaults are 8000, 8001, 8080 23 | # 24 | Port 80 25 | 26 | # 27 | # General setup; on some systems, like HP, nobody is defined so 28 | # that setuid() fails; in those cases use a different user id. 29 | # 30 | UserId nobody 31 | GroupId nogroup 32 | 33 | # 34 | # Logging; if you want logging uncomment these lines and specify 35 | # locations for your access and error logs 36 | # 37 | # AccessLog /where/ever/httpd-log 38 | # ErrorLog /where/ever/httpd-errors 39 | LogFormat Common 40 | LogTime LocalTime 41 | 42 | # 43 | # User-supported directories under ~/public_html 44 | # 45 | UserDir public_html 46 | 47 | # 48 | # Scripts; URLs starting with /cgi-bin/ will be understood as 49 | # script calls in the directory /your/script/directory 50 | # 51 | Exec /cgi-bin/* /your/script/directory/* 52 | 53 | # 54 | # URL translation rules; If your documents are under /local/Web 55 | # then this single rule does the job: 56 | # 57 | Pass /* /local/Web/* 58 | 59 | -------------------------------------------------------------------------------- /server_root/config/prot.conf: -------------------------------------------------------------------------------- 1 | # 2 | # Sample configuration file for cern_httpd for running it 3 | # as a normal HTTP server WITH access control. 4 | # 5 | # See: 6 | # 7 | # 8 | # for more information. 9 | # 10 | # Written by: 11 | # Ari Luotonen April 1994 12 | # 13 | 14 | # 15 | # Set this to point to the directory where you unpacked this 16 | # distribution, or wherever you want httpd to have its "home" 17 | # 18 | ServerRoot /where/ever/server_root 19 | 20 | # 21 | # The default port for HTTP is 80; if you are not root you have 22 | # to use a port above 1024; good defaults are 8000, 8001, 8080 23 | # 24 | Port 80 25 | 26 | # 27 | # General setup; on some systems, like HP, nobody is defined so 28 | # that setuid() fails; in those cases use a different user id. 29 | # 30 | UserId nobody 31 | GroupId nogroup 32 | 33 | # 34 | # Logging; if you want logging uncomment these lines and specify 35 | # locations for your access and error logs 36 | # 37 | # AccessLog /where/ever/httpd-log 38 | # ErrorLog /where/ever/httpd-errors 39 | LogFormat Common 40 | LogTime LocalTime 41 | 42 | # 43 | # User-supported directories under ~/public_html 44 | # 45 | UserDir public_html 46 | 47 | # 48 | # Protection setup by usernames; specify groups in the group 49 | # file [if you need groups]; create and maintain password file 50 | # with the htadm program 51 | # 52 | Protection PROT-SETUP-USERS { 53 | UserId nobody 54 | GroupId nogroup 55 | ServerId YourServersFancyName 56 | AuthType Basic 57 | PasswdFile /where/ever/passwd 58 | GroupFile /where/ever/group 59 | GET-Mask user, user, group, group, user 60 | } 61 | 62 | # 63 | # Protection setup by hosts; you can use both domain name 64 | # templates and IP number templates 65 | # 66 | Protection PROT-SETUP-HOSTS { 67 | UserId nobody 68 | GroupId nogroup 69 | ServerId YourServersFancyName 70 | AuthType Basic 71 | PasswdFile /where/ever/passwd 72 | GroupFile /where/ever/group 73 | GET-Mask @(*.cern.ch, 128.141.*.*, *.ncsa.uiuc.edu) 74 | } 75 | 76 | Protect /very/secret/URL/* PROT-SETUP-USERS 77 | Protect /another/secret/URL/* PROT-SETUP-HOSTS 78 | 79 | # 80 | # Scripts; URLs starting with /cgi-bin/ will be understood as 81 | # script calls in the directory /your/script/directory 82 | # 83 | Exec /cgi-bin/* /your/script/directory/* 84 | 85 | # 86 | # URL translation rules; If your documents are under /local/Web 87 | # then this single rule does the job: 88 | # 89 | Pass /* /local/Web/* 90 | 91 | -------------------------------------------------------------------------------- /server_root/config/proxy.conf: -------------------------------------------------------------------------------- 1 | # 2 | # Sample configuration file for cern_httpd for running it 3 | # as a proxy server WITHOUT caching. 4 | # 5 | # See: 6 | # 7 | # 8 | # for more information. 9 | # 10 | # Written by: 11 | # Ari Luotonen April 1994 12 | # 13 | 14 | # 15 | # Set this to point to the directory where you unpacked this 16 | # distribution, or wherever you want httpd to have its "home" 17 | # 18 | ServerRoot /where/ever/server_root 19 | 20 | # 21 | # Set the port for proxy to listen to 22 | # 23 | Port 8080 24 | 25 | # 26 | # General setup; on some systems, like HP, nobody is defined so 27 | # that setuid() fails; in those cases use a different user id. 28 | # 29 | UserId nobody 30 | GroupId nogroup 31 | 32 | # 33 | # Logging; if you want logging uncomment these lines and specify 34 | # locations for your access and error logs 35 | # 36 | # AccessLog /where/ever/proxy-log 37 | # ErrorLog /where/ever/proxy-errors 38 | LogFormat Common 39 | LogTime LocalTime 40 | 41 | # 42 | # Proxy protections; if you want only certain domains to use 43 | # your proxy, uncomment these lines and specify the Mask 44 | # with hostname templates or IP number templates: 45 | # 46 | # Protection PROXY-PROT { 47 | # ServerId YourProxyName 48 | # Mask @(*.cern.ch, 128.141.*.*, *.ncsa.uiuc.edu) 49 | # } 50 | # Protect * PROXY-PROT 51 | 52 | # 53 | # Pass the URLs that this proxy is willing to forward. 54 | # 55 | Pass http:* 56 | Pass ftp:* 57 | Pass gopher:* 58 | Pass wais:* 59 | 60 | -------------------------------------------------------------------------------- /server_root/icons/back.xbm: -------------------------------------------------------------------------------- 1 | #define back_width 20 2 | #define back_height 23 3 | static char back_bits[] = { 4 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x0f,0x00,0x80,0x0f, 5 | 0x00,0x80,0x0f,0x00,0x80,0x0f,0x00,0x80,0x0f,0x00,0x80,0x0f,0x60,0x80,0x0f, 6 | 0x70,0x80,0x0f,0x78,0x00,0x00,0xfc,0xff,0x0f,0xfe,0xff,0x07,0xff,0xff,0x03, 7 | 0xfe,0xff,0x01,0xfc,0xff,0x00,0x78,0x00,0x00,0x70,0x00,0x00,0x60,0x00,0x00, 8 | 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; 9 | -------------------------------------------------------------------------------- /server_root/icons/binary.xbm: -------------------------------------------------------------------------------- 1 | #define binary_width 20 2 | #define binary_height 23 3 | static char binary_bits[] = { 4 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x3f, 0x00, 0x01, 0x60, 0x00, 5 | 0x01, 0xa0, 0x00, 0x71, 0x26, 0x01, 0xd9, 0x26, 0x02, 0xd9, 0xe6, 0x07, 6 | 0xd9, 0xc6, 0x0f, 0xd9, 0x06, 0x0c, 0x71, 0x06, 0x0c, 0x01, 0x00, 0x0c, 7 | 0x99, 0x03, 0x0c, 0xd9, 0x06, 0x0c, 0xd9, 0x06, 0x0c, 0xd9, 0x06, 0x0c, 8 | 0xd9, 0x06, 0x0c, 0x99, 0x03, 0x0c, 0x01, 0x00, 0x0c, 0xff, 0xff, 0x0f, 9 | 0xfe, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; 10 | -------------------------------------------------------------------------------- /server_root/icons/binhex.xbm: -------------------------------------------------------------------------------- 1 | #define binhex_width 20 2 | #define binhex_height 23 3 | static char binhex_bits[] = { 4 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x3f, 0x00, 0x01, 0x60, 0x00, 5 | 0x01, 0xa0, 0x00, 0x01, 0x20, 0x01, 0x01, 0x20, 0x02, 0x01, 0xe0, 0x07, 6 | 0x01, 0xc0, 0x0f, 0x01, 0x00, 0x0c, 0x6d, 0xb7, 0x0d, 0x6d, 0xb7, 0x0d, 7 | 0x6d, 0xb3, 0x0d, 0x7d, 0xf7, 0x0d, 0x7d, 0xe7, 0x0c, 0x6d, 0xb3, 0x0d, 8 | 0x6d, 0xb7, 0x0d, 0x6d, 0xb7, 0x0d, 0x01, 0x00, 0x0c, 0xff, 0xff, 0x0f, 9 | 0xfe, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; 10 | -------------------------------------------------------------------------------- /server_root/icons/blank.xbm: -------------------------------------------------------------------------------- 1 | #define blank_width 20 2 | #define blank_height 23 3 | static char blank_bits[] = { 4 | 0x00,0x00,0xf0,0x00,0x00,0xf0,0x00,0x00,0xf0,0x00,0x00,0xf0,0x00,0x00,0xf0, 5 | 0x00,0x00,0xf0,0x00,0x00,0xf0,0x00,0x00,0xf0,0x00,0x00,0xf0,0x00,0x00,0xf0, 6 | 0x00,0x00,0xf0,0x00,0x00,0xf0,0x00,0x00,0xf0,0x00,0x00,0xf0,0x00,0x00,0xf0, 7 | 0x00,0x00,0xf0,0x00,0x00,0xf0,0x00,0x00,0xf0,0x00,0x00,0xf0,0x00,0x00,0xf0, 8 | 0x00,0x00,0xf0,0x00,0x00,0xf0,0x00,0x00,0xf0}; 9 | -------------------------------------------------------------------------------- /server_root/icons/compressed.xbm: -------------------------------------------------------------------------------- 1 | #define compressed_width 20 2 | #define compressed_height 23 3 | static char compressed_bits[] = { 4 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x20, 0x0c, 0x00, 5 | 0x20, 0x14, 0x00, 0x20, 0x24, 0x00, 0x20, 0x7c, 0x00, 0x20, 0x78, 0x00, 6 | 0x20, 0x60, 0x00, 0x21, 0x60, 0x08, 0x23, 0x60, 0x0c, 0x27, 0x60, 0x0e, 7 | 0x2f, 0x60, 0x0f, 0x27, 0x60, 0x0e, 0x23, 0x60, 0x0c, 0x21, 0x60, 0x08, 8 | 0x20, 0x60, 0x00, 0x20, 0x60, 0x00, 0x20, 0x60, 0x00, 0xe0, 0x7f, 0x00, 9 | 0xc0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; 10 | -------------------------------------------------------------------------------- /server_root/icons/dir.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hackervera/cern-httpd/a709a028c11b486c58cad53a09658d30ba327694/server_root/icons/dir.gif -------------------------------------------------------------------------------- /server_root/icons/directory.xbm: -------------------------------------------------------------------------------- 1 | #define directory_width 20 2 | #define directory_height 23 3 | static char directory_bits[] = { 4 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x04, 0x02, 0x00, 5 | 0x02, 0x04, 0x00, 0x01, 0xf8, 0x01, 0x01, 0x00, 0x02, 0x01, 0x00, 0x04, 6 | 0x01, 0x00, 0x0e, 0x01, 0x00, 0x0d, 0x01, 0x00, 0x0e, 0x01, 0x00, 0x0d, 7 | 0x01, 0x00, 0x0e, 0x01, 0x00, 0x0d, 0x01, 0x00, 0x0e, 0x01, 0x00, 0x0d, 8 | 0x01, 0x00, 0x0e, 0x55, 0x55, 0x0d, 0xaa, 0xaa, 0x0e, 0xfc, 0xff, 0x07, 9 | 0xf8, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; 10 | -------------------------------------------------------------------------------- /server_root/icons/doc.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hackervera/cern-httpd/a709a028c11b486c58cad53a09658d30ba327694/server_root/icons/doc.gif -------------------------------------------------------------------------------- /server_root/icons/doc.xbm: -------------------------------------------------------------------------------- 1 | #define doc_width 20 2 | #define doc_height 23 3 | static unsigned char doc_bits[] = { 4 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x3f, 0x00, 0x01, 0x60, 0x00, 5 | 0x01, 0xa0, 0x00, 0xa9, 0x2a, 0x01, 0xf9, 0x2f, 0x02, 0x01, 0xe0, 0x07, 6 | 0xf9, 0x1f, 0x0f, 0x01, 0x00, 0x0c, 0xf9, 0xff, 0x0c, 0x01, 0x00, 0x0c, 7 | 0xf9, 0x7f, 0x0c, 0x01, 0x00, 0x0c, 0xf9, 0x3f, 0x0c, 0x01, 0x00, 0x0c, 8 | 0xf9, 0x7f, 0x0c, 0x01, 0x00, 0x0c, 0x01, 0x00, 0x0c, 0xff, 0xff, 0x0f, 9 | 0xfe, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; 10 | -------------------------------------------------------------------------------- /server_root/icons/dummy.xbm: -------------------------------------------------------------------------------- 1 | #define dummy_width 20 2 | #define dummy_height 23 3 | static char dummy_bits[] = { 4 | 0x00,0x00,0xf0,0x00,0x00,0xf0,0x00,0x00,0xf0,0x00,0x00,0xf0,0x00,0x00,0xf0, 5 | 0x00,0x00,0xf0,0x00,0x00,0xf0,0x00,0x00,0xf0,0x00,0x00,0xf0,0x00,0x00,0xf0, 6 | 0x00,0x00,0xf0,0x00,0x00,0xf0,0x00,0x00,0xf0,0x00,0x00,0xf0,0x00,0x00,0xf0, 7 | 0x00,0x00,0xf0,0x00,0x00,0xf0,0x00,0x00,0xf0,0x00,0x00,0xf0,0x00,0x00,0xf0, 8 | 0x00,0x00,0xf0,0x00,0x00,0xf0,0x00,0x00,0xf0}; 9 | -------------------------------------------------------------------------------- /server_root/icons/ftp.xbm: -------------------------------------------------------------------------------- 1 | #define ftp_width 20 2 | #define ftp_height 23 3 | static char ftp_bits[] = { 4 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x07, 0x02, 0x00, 0x0c, 5 | 0xba, 0xf7, 0x0c, 0xba, 0xf7, 0x0d, 0x1a, 0xb3, 0x0d, 0x3a, 0xb3, 0x0d, 6 | 0x3a, 0xf3, 0x0d, 0x1a, 0xf3, 0x0c, 0x1a, 0x33, 0x0c, 0x1a, 0x33, 0x0c, 7 | 0x02, 0x00, 0x0c, 0xfe, 0xff, 0x0f, 0xfc, 0xff, 0x0f, 0x00, 0x00, 0x00, 8 | 0x04, 0x00, 0x02, 0xfe, 0xff, 0x07, 0xff, 0xff, 0x0f, 0xfe, 0xff, 0x07, 9 | 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; 10 | -------------------------------------------------------------------------------- /server_root/icons/gzip.xbm: -------------------------------------------------------------------------------- 1 | #define gzip_width 20 2 | #define gzip_height 23 3 | static unsigned char gzip_bits[] = { 4 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x40, 0x06, 0x00, 5 | 0x40, 0x0a, 0x00, 0x40, 0x12, 0x00, 0x40, 0x3e, 0x00, 0x40, 0x3c, 0x00, 6 | 0x40, 0x30, 0x00, 0x41, 0x30, 0x08, 0x43, 0x30, 0x0c, 0x47, 0x30, 0x0e, 7 | 0x4f, 0x30, 0x0f, 0x47, 0x30, 0x0e, 0x43, 0x30, 0x0c, 0x41, 0x30, 0x08, 8 | 0x40, 0x30, 0x00, 0x40, 0x30, 0x00, 0x40, 0x30, 0x00, 0xc0, 0x3f, 0x00, 9 | 0x80, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; 10 | -------------------------------------------------------------------------------- /server_root/icons/image.xbm: -------------------------------------------------------------------------------- 1 | #define image_width 20 2 | #define image_height 23 3 | static char image_bits[] = { 4 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x01, 0x00, 0x0c, 5 | 0x01, 0x1c, 0x0c, 0x01, 0x22, 0x0c, 0x01, 0x26, 0x0c, 0x01, 0x29, 0x0c, 6 | 0x01, 0x19, 0x0c, 0x81, 0x10, 0x0c, 0x81, 0x0c, 0x0c, 0x41, 0x08, 0x0c, 7 | 0x41, 0x06, 0x0c, 0xc1, 0x04, 0x0c, 0xc1, 0x03, 0x0c, 0xc1, 0x01, 0x0c, 8 | 0xc1, 0x00, 0x0c, 0x41, 0x00, 0x0c, 0x01, 0x00, 0x0c, 0xff, 0xff, 0x0f, 9 | 0xfe, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; 10 | -------------------------------------------------------------------------------- /server_root/icons/index.xbm: -------------------------------------------------------------------------------- 1 | #define index2_width 20 2 | #define index2_height 23 3 | static char index2_bits[] = { 4 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x01, 0x00, 0x0c, 5 | 0xe1, 0x03, 0x0c, 0x31, 0x06, 0x0c, 0x99, 0x0c, 0x0c, 0xc9, 0x09, 0x0c, 6 | 0x09, 0x0a, 0x0c, 0x09, 0x08, 0x0c, 0x19, 0x0c, 0x0c, 0x31, 0x16, 0x0c, 7 | 0xe1, 0x2f, 0x0c, 0x01, 0x5c, 0x0c, 0x01, 0xb8, 0x0c, 0x01, 0x70, 0x0d, 8 | 0x01, 0xe0, 0x0d, 0x01, 0xe0, 0x0c, 0x01, 0x00, 0x0c, 0xff, 0xff, 0x0f, 9 | 0xfe, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; 10 | -------------------------------------------------------------------------------- /server_root/icons/index2.xbm: -------------------------------------------------------------------------------- 1 | #define index_width 20 2 | #define index_height 23 3 | static char index_bits[] = { 4 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x01, 0x00, 0x0c, 5 | 0x81, 0x0f, 0x0c, 0x41, 0x18, 0x0c, 0x21, 0x33, 0x0c, 0xa1, 0x25, 0x0c, 6 | 0xc1, 0x24, 0x0c, 0x01, 0x32, 0x0c, 0x01, 0x19, 0x0c, 0x81, 0x0c, 0x0c, 7 | 0x81, 0x06, 0x0c, 0x01, 0x07, 0x0c, 0x01, 0x07, 0x0c, 0x81, 0x0c, 0x0c, 8 | 0x81, 0x0e, 0x0c, 0x01, 0x07, 0x0c, 0x01, 0x00, 0x0c, 0xff, 0xff, 0x0f, 9 | 0xfe, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; 10 | -------------------------------------------------------------------------------- /server_root/icons/movie.xbm: -------------------------------------------------------------------------------- 1 | #define movie_width 20 2 | #define movie_height 23 3 | static char movie_bits[] = { 4 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0xf9, 0xff, 0x0c, 5 | 0x19, 0xe0, 0x0c, 0x1f, 0xc0, 0x0f, 0x19, 0xe0, 0x0c, 0x19, 0xc0, 0x0c, 6 | 0x1f, 0xe0, 0x0f, 0x59, 0xd5, 0x0c, 0xf9, 0xff, 0x0c, 0xff, 0xff, 0x0f, 7 | 0x19, 0xe0, 0x0c, 0x19, 0xc0, 0x0c, 0x1f, 0xe0, 0x0f, 0x19, 0xc0, 0x0c, 8 | 0x19, 0xe0, 0x0c, 0x5f, 0xd5, 0x0f, 0xf9, 0xff, 0x0c, 0xff, 0xff, 0x0f, 9 | 0xfe, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; 10 | -------------------------------------------------------------------------------- /server_root/icons/sound.xbm: -------------------------------------------------------------------------------- 1 | #define sound_width 20 2 | #define sound_height 23 3 | static char sound_bits[] = { 4 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x01, 0x00, 0x0c, 5 | 0x01, 0x40, 0x0c, 0x01, 0x91, 0x0c, 0x81, 0x21, 0x0d, 0x41, 0x49, 0x0d, 6 | 0x3d, 0x51, 0x0d, 0x05, 0x55, 0x0d, 0x05, 0x55, 0x0d, 0x05, 0x55, 0x0d, 7 | 0x3d, 0x55, 0x0d, 0x7d, 0x51, 0x0d, 0xc1, 0x49, 0x0d, 0x81, 0x21, 0x0d, 8 | 0x01, 0x91, 0x0c, 0x01, 0x40, 0x0c, 0x01, 0x00, 0x0c, 0xff, 0xff, 0x0f, 9 | 0xfe, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; 10 | -------------------------------------------------------------------------------- /server_root/icons/tar.xbm: -------------------------------------------------------------------------------- 1 | #define tar_width 20 2 | #define tar_height 23 3 | static char tar_bits[] = { 4 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x3f, 0x00, 0x01, 0x60, 0x00, 5 | 0x01, 0xa0, 0x00, 0x01, 0x20, 0x01, 0x01, 0x20, 0x02, 0x01, 0xe0, 0x07, 6 | 0x01, 0xc0, 0x0f, 0x01, 0x00, 0x0c, 0xbd, 0xf3, 0x0c, 0xbd, 0xf3, 0x0d, 7 | 0xd9, 0xb6, 0x0d, 0xd9, 0xb6, 0x0d, 0xd9, 0xf7, 0x0c, 0xd9, 0xf7, 0x0d, 8 | 0xd9, 0xb6, 0x0d, 0xd9, 0xb6, 0x0d, 0x01, 0x00, 0x0c, 0xff, 0xff, 0x0f, 9 | 0xfe, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; 10 | -------------------------------------------------------------------------------- /server_root/icons/telnet.xbm: -------------------------------------------------------------------------------- 1 | #define telnet_width 20 2 | #define telnet_height 23 3 | static char telnet_bits[] = { 4 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x07, 0x02, 0x00, 0x0c, 5 | 0x7a, 0x37, 0x0c, 0x7a, 0x37, 0x0c, 0x32, 0x33, 0x0c, 0x32, 0x37, 0x0c, 6 | 0x32, 0x37, 0x0c, 0x32, 0x33, 0x0c, 0x32, 0xf7, 0x0c, 0x32, 0xf7, 0x0c, 7 | 0x02, 0x00, 0x0c, 0xfe, 0xff, 0x0f, 0xfc, 0xff, 0x0f, 0x00, 0x00, 0x00, 8 | 0x04, 0x00, 0x02, 0xfe, 0xff, 0x07, 0xff, 0xff, 0x0f, 0xfe, 0xff, 0x07, 9 | 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; 10 | -------------------------------------------------------------------------------- /server_root/icons/text.xbm: -------------------------------------------------------------------------------- 1 | #define text_width 20 2 | #define text_height 23 3 | static char text_bits[] = { 4 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x3f, 0x00, 0x01, 0x60, 0x00, 5 | 0x01, 0xa0, 0x00, 0xf9, 0x27, 0x01, 0x01, 0x20, 0x02, 0xf1, 0xe7, 0x07, 6 | 0x01, 0xc0, 0x0f, 0xf9, 0x07, 0x0c, 0x01, 0x00, 0x0c, 0xe1, 0x07, 0x0c, 7 | 0x01, 0x00, 0x0c, 0xf9, 0x07, 0x0c, 0x01, 0x00, 0x0c, 0xe1, 0x07, 0x0c, 8 | 0x01, 0x00, 0x0c, 0xf9, 0x07, 0x0c, 0x01, 0x00, 0x0c, 0xff, 0xff, 0x0f, 9 | 0xfe, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; 10 | -------------------------------------------------------------------------------- /server_root/icons/unknown.doc.xbm: -------------------------------------------------------------------------------- 1 | #define unknown_width 20 2 | #define unknown_height 23 3 | static char unknown_bits[] = { 4 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x3f, 0x00, 0x01, 0x60, 0x00, 5 | 0x01, 0xa0, 0x00, 0x01, 0x20, 0x01, 0x01, 0x20, 0x02, 0x01, 0xe0, 0x07, 6 | 0x01, 0xc0, 0x0f, 0x01, 0x00, 0x0c, 0x01, 0x00, 0x0c, 0x01, 0x00, 0x0c, 7 | 0x01, 0x00, 0x0c, 0x01, 0x00, 0x0c, 0x01, 0x00, 0x0c, 0x01, 0x00, 0x0c, 8 | 0x01, 0x00, 0x0c, 0x01, 0x00, 0x0c, 0x01, 0x00, 0x0c, 0xff, 0xff, 0x0f, 9 | 0xfe, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; 10 | -------------------------------------------------------------------------------- /server_root/icons/unknown.old.xbm: -------------------------------------------------------------------------------- 1 | #define unknown_width 20 2 | #define unknown_height 23 3 | static char unknown_bits[] = { 4 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x3f, 0x00, 0x01, 0x60, 0x00, 5 | 0x01, 0xa0, 0x00, 0x01, 0x20, 0x01, 0x01, 0x20, 0x02, 0x01, 0xe0, 0x07, 6 | 0x01, 0xc0, 0x0f, 0x01, 0x00, 0x0c, 0x01, 0x00, 0x0c, 0x01, 0x00, 0x0c, 7 | 0x01, 0x00, 0x0c, 0x01, 0x00, 0x0c, 0x01, 0x00, 0x0c, 0x01, 0x00, 0x0c, 8 | 0x01, 0x00, 0x0c, 0x01, 0x00, 0x0c, 0x01, 0x00, 0x0c, 0xff, 0xff, 0x0f, 9 | 0xfe, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; 10 | -------------------------------------------------------------------------------- /server_root/icons/unknown.xbm: -------------------------------------------------------------------------------- 1 | #define unknown.doc_width 20 2 | #define unknown.doc_height 23 3 | static unsigned char unknown.doc_bits[] = { 4 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x3f, 0x00, 0x01, 0x60, 0x00, 5 | 0x01, 0xa0, 0x00, 0x01, 0x20, 0x01, 0x01, 0x20, 0x02, 0x81, 0xe7, 0x07, 6 | 0xc1, 0xcc, 0x0f, 0xc1, 0x0c, 0x0c, 0x01, 0x06, 0x0c, 0x01, 0x03, 0x0c, 7 | 0x01, 0x03, 0x0c, 0x01, 0x00, 0x0c, 0x01, 0x03, 0x0c, 0x01, 0x03, 0x0c, 8 | 0x01, 0x00, 0x0c, 0x01, 0x00, 0x0c, 0x01, 0x00, 0x0c, 0xff, 0xff, 0x0f, 9 | 0xfe, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; 10 | -------------------------------------------------------------------------------- /server_root/icons/uu.xbm: -------------------------------------------------------------------------------- 1 | #define uu_width 20 2 | #define uu_height 23 3 | static char uu_bits[] = { 4 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x3f, 0x00, 0x01, 0x60, 0x00, 5 | 0x01, 0xa0, 0x00, 0x01, 0x20, 0x01, 0x01, 0x20, 0x02, 0x01, 0xe0, 0x07, 6 | 0x01, 0xc0, 0x0f, 0x01, 0x00, 0x0c, 0xb1, 0x6d, 0x0c, 0xb1, 0x6d, 0x0c, 7 | 0xb1, 0x6d, 0x0c, 0xb1, 0x6d, 0x0c, 0xb1, 0x6d, 0x0c, 0xb1, 0x6d, 0x0c, 8 | 0xf1, 0x7d, 0x0c, 0xe1, 0x38, 0x0c, 0x01, 0x00, 0x0c, 0xff, 0xff, 0x0f, 9 | 0xfe, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; 10 | --------------------------------------------------------------------------------