Index     DocHome     Next     
iPlanet Web Server, Enterprise Edition NSAPI Programmer's Guide



Contents


About This Book

Chapter 1 Basics of Server Operation
Configuration Files
magnus.conf
server.xml
obj.conf
mime.types
Dynamic Reconfiguration
How the Server Handles Requests from Clients
HTTP Basics
Steps in the Request Handling Process
Directives for Handling Requests
Writing New Server Application Functions


Chapter 2 Syntax and Use of obj.conf
Server Instructions in obj.conf
Summary of the Directives
The Object Tag
Objects that Use the name Attribute
Object that Use the ppath Attribute
Variables Defined in server.xml
Flow of Control in obj.conf
AuthTrans
NameTrans
PathCheck
ObjectType
Service
AddLog
Error
Syntax Rules for Editing obj.conf
Order of Directives
Parameters
Case Sensitivity
Separators
Quotes
Spaces
Line Continuation
Path Names
Comments
About obj.conf Directive Examples


Chapter 3 Predefined SAFs and the Request Handling Process
The bucket Parameter
AuthTrans Stage
basic-auth
basic-ncsa
get-sslid
qos-handler
NameTrans Stage
assign-name
document-root
home-page
pfx2dir
redirect
strip-params
unix-home
PathCheck Stage
check-acl
deny-existence
find-index
find-links
find-pathinfo
get-client-cert
load-config
nt-uri-clean
ntcgicheck
require-auth
set-virtual-index
ssl-check
ssl-logout
unix-uri-clean
ObjectType Stage
force-type
set-default-type
shtml-hacktype
type-by-exp
type-by-extension
Service Stage
add-footer
add-header
append-trailer
imagemap
index-common
index-simple
key-toosmall
list-dir
make-dir
query-handler
remove-dir
remove-file
rename-file
send-cgi
send-file
send-range
send-shellcgi
send-wincgi
service-dump
shtml_send
stats-xml
upload-file
AddLog Stage
common-log
flex-log
record-useragent
Error Stage
send-error
qos-error


Chapter 4 Creating Custom SAFs
The SAF Interface
SAF Parameters
pb (parameter block)
sn (session)
rq (request)
Result Codes
Creating and Using Custom SAFs
Write the Source Code
Compile and Link
Load and Initialize the SAF
Instruct the Server to Call the SAFs
Reconfigure the Server
Test the SAF
Overview of NSAPI C Functions
Parameter Block Manipulation Routines
Protocol Utilities for Service SAFs
Memory Management
File I/O
Network I/O
Threads
Utilities
Virtual Server
Required Behavior of SAFs for Each Directive
Init SAFs
AuthTrans SAFs
NameTrans SAFs
PathCheck SAFs
ObjectType SAFs
Service SAFs
Error SAFs
AddLog SAFs
CGI to NSAPI Conversion


Chapter 5 NSAPI Function Reference
NSAPI Functions (in Alphabetical Order)
CALLOC
cinfo_find
condvar_init
condvar_notify
condvar_terminate
condvar_wait
crit_enter
crit_exit
crit_init
crit_terminate
daemon_atrestart
fc_open
fc_close
filebuf_buf2sd
filebuf_close
filebuf_getc
filebuf_open
filebuf_open_nostat
FREE
func_exec
func_find
log_error
MALLOC
net_ip2host
net_read
net_write
netbuf_buf2sd
netbuf_close
netbuf_getc
netbuf_grab
netbuf_open
param_create
param_free
pblock_copy
pblock_create
pblock_dup
pblock_find
pblock_findval
pblock_free
pblock_nninsert
pblock_nvinsert
pblock_pb2env
pblock_pblock2str
pblock_pinsert
pblock_remove
pblock_str2pblock
PERM_CALLOC
PERM_FREE
PERM_MALLOC
PERM_REALLOC
PERM_STRDUP
prepare_nsapi_thread
protocol_dump822
protocol_set_finfo
protocol_start_response
protocol_status
protocol_uri2url
protocol_uri2url_dynamic
REALLOC
request_get_vs
request_header
request_stat_path
request_translate_uri
session_dns
session_maxdns
shexp_casecmp
shexp_cmp
shexp_match
shexp_valid
STRDUP
system_errmsg
system_fclose
system_flock
system_fopenRO
system_fopenRW
system_fopenWA
system_fread
system_fwrite
system_fwrite_atomic
system_gmtime
system_localtime
system_lseek
system_rename
system_ulock
system_unix2local
systhread_attach
systhread_current
systhread_getdata
systhread_newkey
systhread_setdata
systhread_sleep
systhread_start
systhread_timerset
util_can_exec
util_chdir2path
util_chdir2path
util_cookie_find
util_env_find
util_env_free
util_env_replace
util_env_str
util_getline
util_hostname
util_is_mozilla
util_is_url
util_itoa
util_later_than
util_sh_escape
util_snprintf
util_sprintf
util_strcasecmp
util_strftime
util_strncasecmp
util_uri_escape
util_uri_is_evil
util_uri_parse
util_uri_unescape
util_vsnprintf
util_vsprintf
vs_alloc_slot
vs_get_data
vs_get_default_httpd_object
vs_get_doc_root
vs_get_httpd_objset
vs_get_id
vs_get_mime_type
vs_lookup_config_var
vs_register_cb
vs_set_data
vs_translate_uri


Chapter 6 Examples of Custom SAFs
Examples in the Build
AuthTrans Example
Installing the Example
Source Code
NameTrans Example
Installing the Example
Source Code
PathCheck Example
Installing the Example
Source Code
ObjectType Example
Installing the Example
Source Code
Service Example
Installing the Example
Source Code
More Complex Service Example
AddLog Example
Installing the Example
Source Code
Quality of Service Examples
Installing the Example
Source Code


Chapter 7 Syntax and Use of magnus.conf
Init SAFs
cindex-init
define-perf-bucket
dns-cache-init
flex-init
flex-rotate-init
init-cgi
init-clf
init-uhome
load-modules
nt-console-init
perf-init
pool-init
register-http-method
stats-init
thread-pool-init
Server Information
ExtraPath
MtaHost
NetSiteRoot
ServerConfigurationFile
ServerID
ServerRoot
TempDir
TempDirSecurity
User
Language Issues
AdminLanguage
ClientLanguage
DefaultCharSet
DefaultLanguage
DNS Lookup
AsyncDNS
DNS
Threads, Processes and Connections
ConnQueueSize
HeaderBufferSize
IOTimeout
KeepAliveThreads
KeepAliveTimeout
KernelThreads
ListenQ
MaxKeepAliveConnections
MaxProcs (Unix Only)
PostThreadsEarly
RcvBufSize
RqThrottle
RqThrottleMin
SndBufSize
StackSize
StrictHttpHeaders
TerminateTimeout
ThreadIncrement
UseNativePoll (Unix only)
Native Thread Pools
NativePoolStackSize
NativePoolMaxThreads
NativePoolMinThreads
NativePoolQueueSize
CGI
CGIExpirationTimeout
CGIStubIdleTimeout
CGIWaitPid (UNIX Only)
MaxCGIStubs
MinCGIStubs
WincgiTimeout
Error Logging and Statistic Collection
ErrorLog
ErrorLogDateFormat
LogFlushInterval
LogVerbose
LogVsId
PidLog
ACL
ACLCacheLifetime
ACLUserCacheSize
ACLGroupCacheSize
Security
Security
SSLCacheEntries
SSLClientAuthDataLimit
SSLClientAuthTimeout
SSLSessionTimeout
SSL3SessionTimeout
Chunked Encoding
UseOutputStreamSize
ChunkedRequestBufferSize
ChunkedRequestTimeout
Miscellaneous
ChildRestartCallback
HTTPVersion
MaxRqHeaders
Umask (UNIX only)


Chapter 8 Virtual Server Configuration Files
The server.dtd File
The server.xml File
Variables
Using the Server Manager and Class Manager
Elements in server.dtd and server.xml
SERVER
VARS
LS (Listen Socket)
CONNECTIONGROUP
SSLPARAMS
MIME
ACLFILE
VSCLASS
VS (Virtual Server)
QOSPARAMS
USERDB
Virtual Server Selection for Request Processing
User Database Selection
The iPlanet LDAP Schema
The Convergence Tree
The Domain Component (dc)Tree


Appendix A Data Structure Reference
Privatization of Some Data Structures
session
pblock
pb_entry
pb_param
Session->client
request
stat
shmem_s
cinfo


Appendix B MIME Types
Introduction
Determining the MIME Type
How the Type Affects the Response
What Does the Client Do with the MIME Type?
Syntax of the MIME Types File
Sample MIME Types File


Appendix C Wildcard Patterns
Wildcard Patterns
Wildcard Examples


Appendix D Time Formats

Appendix E HyperText Transfer Protocol
Compliance
Requests
Request Method, URI, and Protocol Version
Request Headers
Request Data
Responses
HTTP Protocol Version, Status Code, and Reason Phrase
Response Headers
Response Data
Buffered Streams


Appendix F Dynamic Results Caching Functions
dr_cache_destroy
dr_cache_init
dr_cache_refresh
dr_net_write
fc_net_write


Appendix G Alphabetical List of NSAPI Functions and Macros

Appendix H Alphabetical List of Directives in magnus.conf

Appendix I Alphabetical List of Pre-defined SAFs

Index


Index     DocHome     Next     
Copyright © 2001 Sun Microsystems, Inc. Some preexisting portions Copyright © 2001 Netscape Communications Corp. All rights reserved.

Last Updated May 15, 2001