Conventions used in this book
JavaScript
Server plug-in API
Server plug-in API
Java and JavaScript Server APIs
The server creates the CGI process
The server assigns variables and opens data paths
The CGI program responds to the client
Security concerns about CGI
Accepting user input from URLs
Input to an ISINDEX search dialog
ISMAP or imagemaps
Using C or C++
Using Perl
Using the Bourne shell
Using the C shell
SERVER_NAME
SERVER_URL
GATEWAY_INTERFACE
SERVER_PROTOCOL
SERVER_PORT
REQUEST_METHOD
PATH_INFO
PATH_TRANSLATED
SCRIPT_NAME
QUERY_STRING
REMOTE_HOST
REMOTE_ADDR
AUTH_TYPE
REMOTE_USER
CONTENT_TYPE
CONTENT_LENGTH
HTTPS_KEYSIZE
HTTPS_SECRETKEYSIZE
HTTP_USER_AGENT
HTTP_IF_MODIFIED_SINCE
Sending command-line arguments
CGI generic headers
Content-type
Expires
Content-encoding
Status
Customizing server-parsed HTML
Server-parsed HTML commands
The include command
The echo command
The fsize command
The flastmod command
The exec command
Adding signatures (trailers) to files
A sample CGI program in Perl
A more detailed Perl example
A sample CGI program as a Java Applet
A sample CGI program in ANSI C
Required objects for obj.conf
Details for each directive/step
NameTrans
PathCheck
ObjectType
Service
Some new features in version 2.0
Caching
Software multihoming
Writing plug-in functions
Getting data from the server: the parameter block
Passing parameters to server application functions
Data structures and data access functions
Application function status codes
Loading your shared object
Using your plug-in functions
condvar_init base/crit.h
condvar_notify base/crit.h
condvar_terminate base/crit.h
condvar_wait base/crit.h
crit_enter base/crit.h
crit_exit base/crit.h
crit_init base/crit.h
crit_terminate base/crit.h
daemon_atrestart netsite.h
filebuf_buf2sd base/buffer.h
filebuf_close base/buffer.h
filebuf_getc base/buffer.h
filebuf_open base/buffer.h
filebuf_open_nostat base/buffer.h
FREE netsite.h
func_exec frame/func.h
func_find frame/func.h
log_error frame/log.h
magnus_atrestart netsite.h
MALLOC netsite.h
net_ip2host base/net.h
net_read base/net.h
net_socket base/net.h
net_write base/net.h
netbuf_buf2sd base/buffer.h
netbuf_close base/buffer.h
netbuf_getc base/buffer.h
netbuf_grab base/buffer.h
netbuf_open base/buffer.h
param_create base/pblock.h
param_free base/pblock.h
pblock_copy base/pblock.h
pblock_create base/pblock.h
pblock_dup base/pblock.h
pblock_find base/pblock.h
pblock_findval base/pblock.h
pblock_free base/pblock.h
pblock_nninsert base/pblock.h
pblock_nvinsert base/pblock.h
pblock_pb2env base/pblock.h
pblock_pblock2str base/pblock.h
pblock_pinsert base/pblock.h
pblock_remove base/pblock.h
pblock_str2pblock base/pblock.h
PERM_FREE netsite.h
PERM_MALLOC netsite.h
PERM_STRDUP netsite.h
protocol_dump822 frame/protocol.h
protocol_set_finfo frame/protocol.h
protocol_start_response frame/protocol.h
protocol_status frame/protocol.h
protocol_uri2url frame/protocol.h
protocol_uri2url_dynamic frame/protocol.h
REALLOC netsite.h
request_create frame/req.h
request_free frame/req.h
request_header frame/req.h
request_stat_path frame/req.h
request_translate_uri frame/req.h
sem_grab base/sem.h
sem_init base/sem.h
sem_release base/sem.h
sem_terminate base/sem.h
sem_tgrab base/sem.h
session_create base/session.h
session_free base/session.h
session_maxdns base/session.h
shexp_casecmp base/shexp.h
shexp_cmp base/shexp.h
shexp_match base/shexp.h
shexp_valid base/shexp.h
shmem_alloc base/shmem.h
shmem_free base/shmem.h
STRDUP netsite.h
system_errmsg base/file.h
system_fclose base/file.h
system_flock base/file.h
system_fopenRO base/file.h
system_fopenRW base/file.h
system_fopenWA base/file.h
system_fread base/file.h
system_fwrite base/file.h
system_fwrite_atomic base/file.h
system_gmtime base/file.h
system_localtime base/file.h
system_lseek base/file.h
system_rename base/file.h
system_ulock base/file.h
system_unix2local base/file.h
systhread_current base/systhr.h
systhread_getdata base/systhr.h
systhread_newkey base/systhr.h
systhread_setdata base/systhr.h
systhread_sleep base/systhr.h
systhread_start base/systhr.h
systhread_terminate base/systhr.h
systhread_timerset base/systhr.h
util_can_exec base/util.h
util_chdir2path base/util.h
util_env_create base/util.h
util_env_find base/util.h
util_env_free base/util.h
util_env_replace base/util.h
util_env_str base/util.h
util_getline base/util.h
util_hostname base/util.h
util_is_mozilla base/util.h
util_is_url base/util.h
util_itoa base/util.h
util_later_than base/util.h
util_sh_escape base/util.h
util_snprintf base/util.h
util_sprintf base/util.h
util_strcasecmp base/systems.h
util_strftime base/util.h
util_strncasecmp base/systems.h
util_uri_escape base/util.h
util_uri_is_evil base/util.h
util_uri_parse base/util.h
util_uri_unescape base/util.h
util_vsnprintf base/util.h
util_vsprintf base/util.h
boundaryCount
boundaryGen
boundaryStack
FORBIDDEN
formData
NO_RESPONSE
NOT_FOUND
NOT_IMPLEMENTED
NOT_MODIFIED
OK
REDIRECT
SERVER_ERROR
UNAUTHORIZED
getURI
getProtocol
getQuery
getPath
setContentType
getURL
returnNormalResponse--one parameter
returnNormalResponse--two parameters
returnFile--two parameters
returnFile--one parameter
returnErrorResponse--three parameters
returnErrorResponse--two parameters
returnMultipartResponse--one parameter
returnMultipartResponse--two parameters
endMultipartResponse
startResponse
setStatus--two parameters
setStatus--one parameter
setFileInfo
translateURI
uri2url
getFormData
getFormField
handleRequest
Methods
getListeningAddress
getListeningPort
securityActive
EXIT
name
NOACTION
PROCEED
responseStarted
socket
getClientProperty
getConfigProperty
getHeader
getInputStream
getOutputStream
getRequestProperty
getResponseProperty
getServer
getServerProperty
handleRequest
inform
reportMisconfiguration
reportCatastrophe
reportFailure
reportSecurity
run
setResponseProperty
warn
Methods
splitFormData
uriEscape
urlEscape
urlUnescape
The Client parameter block
The stat data structure
The shared memory structure shmem_s
The netbuf data structure
The filebuffer data structure
The cinfo data structure
The SYS_NETFD data structure
The SYS_FILE data structure
The SEMAPHORE data structure
The sockaddr_in data structure
The CONDVAR data structure
The CRITICAL data structure
The SYS_THREAD data structure
Separators
Quotes
Spaces
Comments
Line continuation
Port directive
User directive
MaxProcs directive
MinThreads directive
MaxThreads directive
ErrorLog directive
PidLog directive
LoadObjects directive
RootObject directive
Chroot directive
DNS directive
Security directive
SSL2 directive
SSL3 directive
ServerKey directive
ServerCert directive
Ciphers directive
SSL3Ciphers directive
ACLFile directive
SSLSessionTimeout directive
SSL3SessionTimeout directive
SSLClientAuth directive
Init directive
init-clf
flex-init function
init-uhome function
cindex-init function
pool-init function
cache-init function
dns-cache-init function
init-cgi function
basic-ncsa function
unix-home function
document-root function
redirect function
mozilla-redirect function
home-page function
assign-name function
find-index function
require-auth function
load-config function
deny-existence function
find-links function
find-pathinfo function
check-acl function
get-client-cert function
cert2user function
image-switch function
type-by-exp function
force-type function
shtml-hacktype function
send-error function
send-range function
append-trailer function
send-cgi function
query-handler function
imagemap function
index-simple function
index-common function
parse-html function
upload-file function
remove-file function
list-dir function
make-dir function
remove-dir function
rename-file function
key-toosmall function
flex-log function
record-useragent function
The admpw file