#Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_AbsoluteUrl Overview Construct a URL from a URL and location Syntax int Ns_AbsoluteUrl( Ns_DString *pds, char *url, char *baseurl ); Description The Ns_AbsoluteUrl function constructs a URL, based on url, which may be incomplete, and baseurl, which is typically a location. Examples Ns_DString ds; Ns_DStringInit(&ds); Ns_AbsoluteUrl(&ds, "/foo/bar.html", "http://www.foo.com:1234/"); The ds DString will contain "http://www.foo.com:1234/foo/bar.html". [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_AbsTimedWaitForEvent Overview Wait for an event to be broadcast Syntax int Ns_AbsTimedWaitForEvent ( Ns_Cond* event, Ns_Mutex* lock, time_t abstime ); Description Wait for an event to be broadcast or the current time to be abstime, whichever comes first. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_AdjTime Overview Adjust Ns_Time Syntax Ns_AdjTime( Ns_Time *timePtr ); Description Adjust an Ns_Time so that the values are in range. If usec is negative, sec is decremented; if usec is over 1000000, sec is incremented. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_AdpRegisterParser Overview Register a parser for ADPs Syntax int Ns_AdpRegisterParser ( char *name, Ns_AdpParserProc *newParserProc ); typedef void (Ns_AdpParserProc)(Ns_DString *out, char *in); Description This registers a new ADP parser with the name "name". The newParserProc will be called when an ADP is to be parsed. The content of the ADP will be in the "in" parameter. The parser should parse it and append appropriate output into the "out" parameter. The output should be formatted as a series of concatenated "chunks". A chunk is a string of the format: where: = 't' or 's'. A 't' means what follows is HTML and should be returneddirectly to the browser. An 's' means what follows is Tcl and should be evaluated. After the last chunk there should be an extra character. For example, the "adp" parser will take a page like this: This is a test page<%ns_puts hi%>The end<%ns_puts bye%> And create this output: "tThis is a test page\0sns_puts hi\0tThe end\0sns_puts bye\0\0" [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_AllocThreadLocalStorage Overview Initialize a local thread storage variable. Syntax int Ns_AllocThreadLocalStorage( Ns_ThreadLocalStorage * tls, void (*destructor) (void *) ); Description Initializes a thread local storage variable and sets its destructor function. The tls's value is initially NULL in all existing threads and any new threads which are later created. If the destructor function pointer is non-null and the tls is non-null in a particular thread when it exits, the destructor will be called for that thread. Thread local storage is often used to store data which must be shared between unrelated functions much like global variables are used in a single threaded program. Thread local storage is also often used to provide buffer space unique to each thread when making older code thread safe. Examples static Ns_ThreadLocalStorage tls; void Init(void) { /* This function is called once at startup. */ Ns_AllocThreadLocalStorage(&tls, Ns_Free); } char * GetBuffer { void *ptr; Ns_GetThreadLocalStorage(&tls, &ptr); if (ptr == NULL) { /* Allocate a buffer for this thread. */ ptr = Ns_Malloc(BUFFER_SIZE); Ns_SetThreadLocalStorage(&tls, ptr); } return (char *) ptr; } [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_Asctime Overview Perform asctime_r Syntax char* Ns_Asctime ( const struct tm* tmPtr ); Description This function is a wrapper around asctime_r(3C). This converts a tm struture to a 26-character string. The value returned by this function will be changed by additional calls to it within the same thread, so make a copy of the value if needed. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_AuthorizeRequest Overview Check access of a method and URL Syntax int Ns_AuthorizeRequest( char *hServer, char *method, char *URL, char *authuser, char *authpasswd, char *ipaddr ); Description The Ns_AuthorizeRequest function is used to call the function registered by Ns_SetRequestAuthorizeProc to authorize a user's access to the given method and URL. Possible return values are: NS_OK The user's access is authorized. NS_UNAUTHORIZED Access is not public for this method or URL and either the user and password were not verified or the user does not have permission. NS_FORBIDDEN There is no possible user/password combination that would give authorization. NS_ERROR The authentication function could not perform the permission check. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_AuthorizeUser Overview Check username and password Syntax int Ns_AuthorizeUser( char *user, char *passwd ); Description Checks that the cleartext password is correct for the specified user. Returns NS_OK if it matches or NS_ERROR if not (or if no authorization procedure is registered). [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_BeginDetachedThread Overview Create a detached thread Syntax int Ns_BeginDetachedThread( Ns_ThreadProc *start_routine, void *arg ); Description Ns_BeginDetachedThread creates a thread which cleans up its data as soon as it ends. Note that detached threads' ids can be reused immediately by the system, and they cannot be waited on. Examples static void ThreadStart(void *arg) { int n; n = (int) arg; Ns_Log(Notice, "%d: %d", Ns_GetThreadId(), n); } /* * ManyThreads - Create 10 threads which all log a message. */ static void ManyThreads(void) { int i; for (i = 0; i < 10; ++i) { Ns_BeginDetachedThread(ThreadStart, (void *) i); } } [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_BeginThread Overview Start a thread Syntax int Ns_BeginThread( Ns_ThreadProc *start_routine, void *arg, Ns_Thread *thread ); Description Ns_BeginThread starts a new thread running start_routine and passwd arg as its context. If thread is non-null it will be filled with the thread's id. (see Ns_WaitForThread.) Ns_ThreadCreate is the preferred function to start a thread. Examples static void ThreadStart(void *arg) { int n; n = (int) arg; Ns_Log(Notice, "%d: %d", Ns_GetThreadId(), n); } /* * ManyThreadWait - Create 10 threads which all log a message * and wait for all of them to exit. */ static void ManyThreadWait(void) { int i; Ns_Thread tids[10]; for (i = 0; i < 10; ++i) { Ns_BeginThread(ThreadStart, (void *) i, &tids[i]); } for (i = 0; i < 10; ++i) { Ns_WaitForThread(&tids[i]); } } [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_BindSock Overview Bind socket as root Syntax int Ns_BindSock ( struct sockaddr_in* saPtr ); Description Bind a socket as root. This function can only be called before server startup. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_BroadcastEvent Overview Wake up events that are waiting to be triggered Syntax int Ns_BroadcastEvent( Ns_Event * event ); Description Wake up all the threads waiting on the event. If no threads are waiting on the event, this function has no effect. Examples static Ns_Event myev; static Ns_Mutex mylock; void Init(void) { /* Initialize the lock and event at startup. */ Ns_InitializeMutex(&mylock); Ns_InitializeEvent(&myev); } /* Lock the mutex and wait for the event. */ void WaitFunc(void) { Ns_LockMutex(&mylock); Ns_WaitForEvent(&myev, &mylock); } /* Wake up any waiting threads. */ void BroadcastFunc(void) { Ns_BroadcastEvent(&myev); } [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_CacheBroadcast Overview Broadcast to condition variable Syntax void Ns_CacheBroadcast ( Ns_Cache* cache ); Description Broadcast to the cache's condition variable, waking all threads. Every cache has an associated cond for user use. Every cache has an associated cond for user use. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_CacheCreate Overview Create a new cache Syntax Ns_Cache* Ns_CacheCreate ( char* name, int keys, time_t timeout, Ns_Callback* freeProc ); Description Create a new cache with the specified name. The keys argument is the size of the cache key in system words. The timeout argument is the time for cache entries to live. The freeProc argument is the Ns_Callback to free cache entry data. For a good example of how to use the Ns_Cache* functions, look at nsd/fastpath.c. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_CacheCreateEntry Overview Create a cache entry Syntax Ns_Entry* Ns_CacheCreateEntry ( Ns_Cache* cache, char* key, int* pnew ); Description Create a new cache entry in the specified cache. This function emulates Tcl_CreateHashEntry's interface. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_CacheCreateSz Overview Create a size-based cache Syntax Ns_Cache* Ns_CacheCreateSz ( char* name, int keys, size_t maxsize, Ns_Callback* freeProc ); Description Create a new size-based cache (a cache that has a maximum size in bytes, specified by the maxsize argument). The keys argument is TCL_STRING_KEYS or TCL_ONE_WORD_KEYS or an integer >=2, which is the number of machine words needed to store a cache key. The freeProc argument is the Ns_Callback to free cache entry data. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_CacheDeleteEntry Overview Delete a cache entry Syntax void Ns_CacheDeleteEntry ( Ns_Entry* entry ); Description Delete the specified entry from the cache table. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_CacheFind Overview Find a cache Syntax Ns_Cache* Ns_CacheFind ( char* name ); Description Find a cache by name. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_CacheFindEntry Overview Find a cache entry Syntax Ns_Entry* Ns_CacheFindEntry ( Ns_Cache* cache, char* key ); Description Find a cache entry. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_CacheFirstEntry Overview Get first cache entry Syntax Ns_Entry* Ns_CacheFirstEntry ( Ns_Cache* cache, Ns_CacheSearch* searchPtr ); Description Return a pointer to the first entry in the cache (Cache entries are stored in no particular order.) [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_CacheFlush Overview Flush all cache entries Syntax void Ns_CacheFlush ( Ns_Cache* cache ); Description Flush every entry from the specified cache. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_CacheFlushEntry Overview Delete a cache entry Syntax void Ns_CacheFlushEntry ( Ns_Entry* entry ); Description Delete an entry from the cache table after first unsetting the current entry value (if any). [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_CacheFree Overview Free allocated memory Syntax void Ns_CacheFree ( Ns_Cache* cache, void* memPtr ); Description Frees memory allocated with Ns_CacheMalloc. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_CacheGetValue Overview Get value of cache entry Syntax void* Ns_CacheGetValue ( Ns_Entry* entry ); Description Get the value (contents) of a cache entry. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_CacheKey Overview Get key of cache entry Syntax char* Ns_CacheKey ( Ns_Entry* entry ); Description Gets the key of a cache entry. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_CacheLock Overview Lock a cache Syntax void Ns_CacheLock ( Ns_Cache* cache ); Description Lock the cache. This must be done before performing any read/write action on a cache. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_CacheMalloc Overview Allocate memory Syntax void* Ns_CacheMalloc ( Ns_Cache* cache, size_t len ); Description Allocate memory from a cache-local pool. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_CacheName Overview Get name of cache Syntax char* Ns_CacheName ( Ns_Entry* entry ); Description Get the name of the cache. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_CacheNextEntry Overview Get next cache entry Syntax Ns_Entry* Ns_CacheNextEntry ( Ns_CacheSearch* searchPtr ); Description Get the next cache entry. When used in conjunction with Ns_CacheFirstEntry, you can traverse the whole cache. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_CacheSetValue Overview Set value of cache entry Syntax void Ns_CacheSetValue ( Ns_Entry* entry, void* value ); Description Set the value of a cache entry. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_CacheSetValueSz Overview Set value of cache entry and adjust cache size Syntax void Ns_CacheSetValueSz ( Ns_Entry* entry, void* value, size_t size ); Description Free the cache entry's previous contents, set it to the new contents, increase the size of the cache, and prune the cache until it's back under the maximum size. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_CacheSignal Overview Signal cache's condition variable Syntax void Ns_CacheSignal ( Ns_Cache* cache ); Description Signal the cache's condition variable, waking the first waiting thread (if any). Note: Consider waking all threads with Ns_CacheBroadcast, instead. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_CacheTimedGetValue Overview Wait for cache entry to be set Syntax void* Ns_CacheTimedGetValue ( Ns_Cache* cache, char* key, Ns_Time* timePtr, int* condPtr ); Description Wait for an entry's value to be set to non-null by some other thread up to the given timeout or until an optional condition integer becomes zero. Note that the cache and key are given instead of the entry because you cannot rely on an entry to remain valid during the Ns_CondTimedWait. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_CacheTimedWait Overview Wait for condition variable to be set Syntax int Ns_CacheTimedWait ( Ns_Cache* cache, Ns_Time* timePtr ); Description Wait for the cache's condition variable to be signaled or the given absolute timeout if timePtr is not NULL. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_CacheUnlock Overview Unlock cache Syntax void Ns_CacheUnlock ( Ns_Cache* cache ); Description Unlock the specified cache. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_CacheUnsetValue Overview Reset cache entry to null Syntax void Ns_CacheUnsetValue ( Ns_Entry* entry ); Description Reset the value of an entry to NULL, calling the free proc for any previous entry and updating the cache size. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_CacheWait Overview Wait indefinitely for condition variable to be set Syntax void Ns_CacheWait ( Ns_Cache* cache ); Description Wait indefinitely for the cache's condition variable to be signaled. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_Calloc Overview Allocate a zero-filled block of memory Syntax void *Ns_Calloc( size_t num, size_t size ); Description The Ns_Calloc function allocates a block of zero-filled memory large enough to hold the given number of elements of the given size. This function replaces the system calloc function. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_CheckStack Overview Check for thread stack overflow Syntax int Ns_CheckStack (void); Description Check for possible thread stack overflow. This function returns NS_OK if stack appears ok, otherwise it returns NS_ERROR. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_CloseOnExec Overview Set close-on-exec flag Syntax int Ns_CloseOnExec ( int fd ); Description Set the close-on-exec flag on a file descriptor. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_CondBroadcast Overview Wake up all threads waiting on a cond Syntax void Ns_CondBroadcast ( Ns_Cond* ); Description Wake up all threads that are waiting on a cond. For more informations on condition variables, look at the pthread_cond_wait(3P) man page. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_CondDestroy Overview Free a cond's memory Syntax void Ns_CondDestroy ( Ns_Cond *condPtr ); Description Free a cond's memory. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_CondInit Overview Initialize a cond Syntax void Ns_CondInit ( Ns_Cond *condPtr ); Description Initialize a cond. You don't need to call this function if it is initialized to 0, as is the case with static variables. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_CondSignal Overview Wake up a single thread Syntax void Ns_CondSignal ( Ns_Cond *condPtr ); Description Wake up a single thread blocking on a cond. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_CondTimedWait Overview Block on a cond Syntax int Ns_CondTimedWait ( Ns_Cond *condPtr , Ns_Mutex *mutexPtr , Ns_Time *timePtr ); Description Block on a cond until signaled or the specified time expires. The time is absolute. The Ns_Time value can be manipulated with Ns_GetTime, Ns_DiffTime, or Ns_IncrTime. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_CondWait Overview Wait indefinitely on a cond Syntax void Ns_CondWait ( Ns_Cond *condPtr , Ns_Mutex *mutexPtr ); Description Wait indefinetly on a cond. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConfigGetBool Overview Get a boolean configuration file variable Syntax int Ns_ConfigGetBool( char *hSection, char *sKey, int *pbValue ); Description The Ns_ConfigGetBool function returns the boolean value of the specified key (sKey) in the specified configuration file section (hSection) and puts it into the integer pointed to by pbValue as a 1 or 0. Values of "1", "y", "yes", "on", "t", and "true" are 1, and values of "0", "n", "no", "f", and "false" are 0. If any other value is found, a warning is written to the log and NS_FALSE is returned. Ns_ConfigGetBool returns NS_TRUE if a valid sKey exists and NS_FALSE otherwise. Examples int opt; if (Ns_ConfigGetBool("MySect", "MyKey", &opt) != NS_TRUE) { /* Option was not present or invalid - set a default. */ opt = 0; /* off */ } [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConfigGetInt Overview Get a configuration file integer variable Syntax int Ns_ConfigGetInt( char *sectionName, char *key, int *valuePtr ); Description This function converts the specified value into an int and stores it in valuePtr. If the key does not exist in the config file or it is not an integer, the function returns NS_FALSE. Otherwise it returns NS_TRUE. Examples int n; if (Ns_ConfigGetInt("MySect", "MyKey", &n) != NS_TRUE) { /* Integer was not present or invalid - set a default. */ n = 5; /* off */ } [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConfigGetInt64 Overview Get a configuration file 64-bit integer variable Syntax int Ns_ConfigGetInt64( char *hSection, char *key, INT64 *valuePtr ); Description This function converts the specified value into an INT64 and stores it in valuePtr. If the key does not exist in the config file or it is not an integer, the function returns NS_FALSE. Otherwise it returns NS_TRUE. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConfigGetPath Overview Return configuration file section name Syntax char *Ns_ConfigGetPath( char *hServer, char *module, ... ); Description The Ns_ConfigGetPath function returns a pointer to a configuration file section name based on the server (hServer) and module specified. The hServer or module may be NULL. A variable number of additional path elements are appended. The list must end with NULL. For example, Ns_ConfigGetPath("server1", NULL, "special", NULL) will return "\NS\Server\server1\special" if such a section exists in the configuration file and NULL if it does not. The space for the string returned is located in the configuration data. You do not need to deallocate the string and you must not alter it. Examples int Ns_ModuleInit(char *hServer, char *hModule) { char *path; char *value; /* * Construct the MySub section name specific to this * server and module. For example, if hServer = "vs1" * and hModule = "mymod", path would be: * [ns/server/vs1/module/mymod/MySudb] */ path = Ns_ConfigGetPath(hServer, hModule, "MySub", NULL); value = Ns_ConfigGetValue(path, "MyKey"); ... [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConfigGetSection Overview Get the Ns_Set for a configuration file section Syntax Ns_Set *Ns_ConfigGetSection( char *sectionName ); Description This function returns the entire section as an Ns_Set, where the fields of the set correspond to the entries of the section in the config file. The fields are stored in the Ns_Set in the same order in which they appear in the configuration file section. This is useful if you want to loop through all the entries of a section. If the section does not exist, Ns_ConfigGetSection returns NULL. The Ns_Set returned is located in the configuration data. You do not need to free the set and you must not alter it. Examples Ns_Set *section; int i; char *key; /* Log the keys of the "MySection" config section. */ section = Ns_ConfigGetSection("MySection"); for (i = 0; i < Ns_SetSize(section); ++i) { key = Ns_SetKey(section, i); Ns_Log(Notice, "key %d: %s", i, key); } ... [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConfigGetSections Overview Return Ns_Sets with configuration file data Syntax Ns_Set **Ns_ConfigGetSections(void); Description The Ns_ConfigGetSections function allocates and returns a null-terminated list of Ns_Sets. Each Ns_Set structure contains the configuration file data for a configuration file section. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConfigGetValue Overview Get a configuration file variable Syntax char *Ns_ConfigGetValue( char *sectionName, char *key ); Description This function returns the value for the given key in the section named sectionName. If either the section does not exist or the key does not exist in the section, the function returns NULL. If multiple keys of the same name are in the named section (for example, the multiple Load lines of the Modules section), this function returns only the first matching entry. The section names must match exactly, but the key will be matched case-insensitively. Ns_ConfigGetValueExact is the case-sensitive counterpart of this function. The space for the string returned is located in the configuration data. You must not deallocate or modify the string. Examples /* Fetch the home directory of the AOLserver. */ char *home; home = Ns_ConfigGetValue("ns/parameters", "Home"); [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConfigGetValueExact Overview Get configuration variable case-sensitively Syntax char *Ns_ConfigGetValueExact( char *sectionName, char *key, ); Description The Ns_ConfigGetValueExact function is a case-sensitive counterpart to the Ns_ConfigGetValue function. It matches both the section name and the key case-sensitively. It returns the value for the given key in the section named sectionName. The space for the string returned is located in the configuration data. You must not deallocate or modify the string. Examples See the example for Ns_ConfigGetValue. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnAuthPasswd Overview Return password Syntax char *Ns_ConnAuthPasswd( Ns_Conn *conn ); Description The Ns_ConnAuthPasswd function returns the decoded password from the header information associated with the connection. Examples /* PassTrace - A server trace to log users and passwords. */ void PassTrace(void *ctx, Ns_Conn *conn) { char *user; char *pass; user = Ns_ConnAuthUser(conn); pass = Ns_ConnAuthPasswd(conn); if (user != NULL && pass != NULL) { Ns_Log(Notice, "User: %s Password: %s", user, pass); } } [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnAuthUser Overview Return user name Syntax char *Ns_ConnAuthUser( Ns_Conn *conn ); Description The Ns_ConnAuthUser function returns the decoded user name from the header information associated with the connection. Examples See the example for Ns_ConnAuthPasswd. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnClose Overview Close a connection Syntax int Ns_ConnClose( Ns_Conn *conn ); Description The Ns_ConnClose function closes a connection. The semantics of this call are specific to the driver associated with the connection. In the case of a socket driver (the nssock module), this function will cause the socket associated with the connection to be closed. Ns_ConnClose returns a status of NS_OK or NS_ERROR. This function is called by AOLserver before running any registered traces. You do not normally need to call it. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnCondSetHeaders Overview Set the value for a header field conditionally Syntax void Ns_ConnCondSetHeaders( Ns_Conn *conn, char *field, char *value ); Description The Ns_ConnCondSetHeaders function sets the value of a field if and only if the field/value pair does not already exist. The search for an existing field is not case sensitive. Examples /* Set a Cookie header if not already set. */ Ns_ConnCondSetHeaders(conn, "Cookie", "randomStuff"); [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnConstructHeaders Overview Put HTTP header into DString Syntax void Ns_ConnConstructHeaders( Ns_Conn *conn, Ns_DString *dsPtr ); Description Put the header of an HTTP response into the DString. Content-Length and Connection-Keepalive headers will be added if possible. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnContentLength Overview Return content length Syntax int Ns_ConnContentLength( Ns_Conn *conn ); Description The Ns_ConnContentLength function returns the number of bytes in the content associated with the connection. Examples /* Copy the content from the browser to a DString. */ Ns_DString ds; int len; Ns_DStringInit(&ds); len = Ns_ConnContentLength(conn); Ns_ConnCopyToDString(conn, len, &ds); [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnContentSent Overview Check if browser sent content Syntax int Ns_ConnContentSent ( Ns_Conn* conn ); Description Returns TRUE if the browser sent any content, such as in a PUT request. Returns FALSE otherwise. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnCopyToChannel Overview Copy content to Tcl channel Syntax int Ns_ConnCopyToChannel ( Ns_Conn* conn, size_t iToCopy, Tcl_Channel chan ); Description Copy content, such as in a PUT request, from the connection into an open Tcl channel. iToCopy bytes will be copied. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnCopyToDString Overview Copy data from connection to dynamic string Syntax int Ns_ConnCopyToDString( Ns_Conn *conn, size_t iToCopy, Ns_DString *pds ); Description The Ns_ConnCopyToDString function copies iToCopy bytes of data from the connection to the Ns_DString pointed to by pds. Ns_ConnCopyToDString returns a status of NS_OK or NS_ERROR. Examples See the example for Ns_ConnContentLength. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnCopyToFd Overview Copy content to file descriptor Syntax int Ns_ConnCopyToFd ( Ns_Conn* conn, size_t iToCopy, int fd ); Description Copy content, such as in a PUT request, from the connection into an open file descriptor. iToCopy bytes will be copied. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnCopyToFile Overview Copy data from connection to a file Syntax int Ns_ConnCopyToFile( Ns_Conn *conn, size_t iToCopy, FILE *fp ); Description The Ns_ConnCopyToFile function copies iToCopy bytes of data from the connection to the file pointed to by fp. Ns_ConnCopyToFile returns a status of NS_OK or NS_ERROR. Examples /* Copy the content from the browser to a file. */ FILE *fp; int len; fp = fopen("content.out", "w"); len = Ns_ConnContentLength(conn); Ns_ConnCopyToFile(conn, len, fp); fclose(fp); [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnDriverContext Overview Return driver context Syntax void *Ns_ConnDriverContext( Ns_Conn *conn ); Description The Ns_ConnDriverContext function returns a pointer to the communications driver context associated with the connection. This context is set in the Ns_QueueConn function. This function exists primarily for AOLserver communications driver developers. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnDriverName Overview Return driver name Syntax char *Ns_ConnDriverName( Ns_Conn *conn ); Description The Ns_ConnDriverName function returns the communications driver name associated with the connection. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnFlushContent Overview Flush remaining content Syntax int Ns_ConnFlushContent ( Ns_Conn* conn ); Description Read all remaining content sent by the browser, for example in a PUT request, and throw it away. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnFlushHeaders Overview Mark the end of the headers Syntax int Ns_ConnFlushHeaders( Ns_Conn *conn, int status ); Description The Ns_ConnFlushHeaders functions returns a single blank line that signifies the end of the headers. It also sets the state of the connection from header buffering mode to immediate sending of data to the client. Before this function is called, any headers are not actually sent to the client but instead are buffered in the Ns_Conn structure to avoid the cost of sending the headers in individual network packets. The status is a standard error code such as 403 for access denied or 200 for OK. Returns NS_OK or NS_ERROR. This function is normally required just before sending content to the client. Examples /* A simple Hello request function. */ int MyHello(Ns_Conn *conn, void *ctx) { char hello[] = "hello"; int len; len = strlen(hello); Ns_ConnSetRequiredHeaders(conn, "text/plain", len); Ns_ConnFlushHeaders(conn, 200); return Ns_ConnWrite(conn, hello, len); } [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnGetQuery Overview Construct Ns_Set representing query data Syntax Ns_Set *Ns_ConnGetQuery( Ns_Conn *conn ); Description The Ns_ConnGetQuery function constructs and returns an Ns_Set structure representing the query data associated with the connection. It reads the POST content or the query string. The POST content takes precedence over the query string. Note that you must not call Ns_SetFree on the result of this function. Examples /* Get the value from an form tag. */ Ns_Set *set; char *value; set = Ns_ConnGetQuery(conn); if (set != NULL) { value = Ns_SetGetValue(set, "mydata"); } [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnGets Overview Read content into a buffer Syntax char *Ns_ConnGets( char *buf, size_t sz, Ns_Conn *conn ); Description The Ns_ConnGets function reads sz bytes of a single line (until newline/cr) from the connection into the buffer specified by buf. Ns_ConnGets returns buf or, in the case of a read error, NULL. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnHeaders Overview Return headers Syntax Ns_Set *Ns_ConnHeaders( Ns_Conn *conn ); Description The Ns_ConnHeaders function returns, as an Ns_Set, the headers associated with the connection. Examples /* Log the Referer header. */ Ns_Set *headers; char *refer; headers = Ns_ConnHeaders(conn); if (headers != NULL) { refer = Ns_SetGet(headers, "Referer"); if (refer != NULL) { Ns_Log(Notice, "Referer: %s", refer); } } [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnHost Overview Return host Syntax char *Ns_ConnHost( Ns_Conn *conn ); Description The Ns_ConnHost function returns the server hostname associated with the connection. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnInit Overview Run socket init procedure Syntax int Ns_ConnInit ( Ns_Conn* connPtr ); Description Run a socket driver's init procedure. This function is usually only called internally. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnLocation Overview Return location Syntax char *Ns_ConnLocation( Ns_Conn *conn ); Description The Ns_ConnLocation function returns the HTTP location associated with the connection. For example: http://www.avalon.com:81. Multiple communications drivers can be loaded into a single server. This means a server may have more than one location. For example, if the nsssl module is loaded and bound to port 8000 and the nssock module is loaded and bound to port 9000, the server would have the following two locations: http://www.avalon.com:9000 https://www.avalon.com:8000 For this reason it is important to use the Ns_ConnLocation function to determine the driver location at run time. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnModifiedSince Overview Determine if content modified since a specified date Syntax int Ns_ConnModifiedSince( Ns_Conn *conn, time_t mtime ); Description The Ns_ConnModifiedSince function returns 1 if the content associated with the connection has been modified since mtime. It uses the HTTP header variable "If-Modified-Since". [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnOutputHeaders Overview Get Ns_Set of headers to send to client Syntax Ns_Set * Ns_ConnOutputHeaders( Ns_Conn *conn ); Description Get a writeable Ns_Set containing headers to send back to the client. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnPeer Overview Return name of peer Syntax char *Ns_ConnPeer( Ns_Conn *conn ); Description The Ns_ConnPeer function returns the name of the peer associated with the connection. The peer address is determined by the communications driver in use by the connection. Typically it is a dotted IP address, for example, 199.221.53.205, but this is not guaranteed. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnPeerPort Overview Return peer port Syntax int Ns_ConnPeerPort ( Ns_Conn* conn ); Description Returns the port from which the peer is connected. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnPort Overview Return port Syntax int Ns_ConnPort( Ns_Conn *conn ); Description The Ns_ConnPort function returns the server port number associated with the connection. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnPrintfHeader Overview Return a formatted header Syntax int Ns_ConnPrintfHeader( Ns_Conn *conn, char *fmt, ... ); Description The Ns_ConnPrintfHeader function constructs a formatted string using the given format specification and any optional arguments. It then appends the necessary line feed and carriage return characters and sends the header to the client. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnPuts Overview Send a string to a client Syntax int Ns_ConnPuts( Ns_Conn *conn, char *string ); Description The Ns_ConnPuts function sends the given string to the client. It returns NS_OK on success and NS_ERROR on failure. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnRead Overview Read content into buffer Syntax int Ns_ConnRead( Ns_Conn *conn, void *pvBuf, int iToRead ); Description The Ns_ConnRead function reads iToRead bytes from the connection into pvBuf. Ns_ConnRead returns the status NS_ERROR or the number of bytes read from the connection. Examples /* Read content from the browser into buf. */ char buf[1024]; Ns_ConnRead(conn, buf, sizeof(buf)); [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnReadHeaders Overview Read headers into Ns_Set Syntax int Ns_ConnReadHeaders ( Ns_Conn* conn, Ns_Set* psetHeaders, int* iRead ); Description Read headers from the conn and put them into the passed-in set. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnReadLine Overview Read a line from a connection Syntax int Ns_ConnReadLine( Ns_Conn *conn, Ns_DString *pdsLine, int* *iRead ); Description The Ns_ConnReadLine function reads an \n or \r terminated line from the connection into the Ns_DString pointed to by pdsLine. The iRead argument will contain the number of bytes read. Ns_ConnReadLine returns a status of NS_OK or NS_ERROR. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnRedirect Overview Perform internal redirect Syntax int Ns_ConnRedirect ( Ns_Conn* conn, char* url ); Description Perform an internal redirect, i.e., make it appear that the user requested a different URL and then run that request. This doesn't require an additional thread. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnReplaceHeaders Overview Replace output headers for connection Syntax void Ns_ConnReplaceHeaders( Ns_Conn *conn, Ns_Set *newheaders ); Description The Ns_ConnReplaceHeaders function sets the current output headers for the connection to the newheaders set. It copies the newheaders set and frees memory associated with the old output headers in the connection. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnResponseLength Overview Return response length Syntax int Ns_ConnResponseLength( Ns_Conn *conn ); Description The Ns_ConnResponseStatus function returns the response length associated with the connection. This value is only meaningful after a response has been returned to the client. This function will normally be used in trace functions. See Ns_RegisterTrace for more information about traces. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnResponseStatus Overview Return response status Syntax int Ns_ConnResponseStatus( Ns_Conn *conn ); Description The Ns_ConnResponseStatus function returns the response status associated with the connection. This value is only meaningful after a response has been returned to the client. This function will normally be used in trace functions. See Ns_RegisterTrace for more information about traces. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnReturnAdminNotice Overview Return a short notice to a client to contact system administrator Syntax void Ns_ConnReturnAdminNotice( Ns_Conn *conn, int status, char *notice, char *html ); Description The Ns_ConnReturnAdminNotice function returns to a client a simple HTML page with the given notice as the title of the page. It also appends a message directing users to contact the system administrator or web master if specified in the configuration file. The page includes the /NS/Asset/notice.gif image at the top of the page. If the html parameter is not NULL, it is added to the page after the notice. The HTML source can be arbitrarily long and should not contain the
or
begin or end tags; these tags will be added by Ns_ConnReturnAdminNotice. Ns_ConnReturnAdminNotice returns a status of NS_OK or NS_ERROR. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnReturnBadRequest Overview Return an "invalid request" HTTP status line. Syntax int Ns_ConnReturnBadRequest( Ns_Conn *conn, char *reason ); Description Calls Ns_ConnReturnStatus or Ns_ConnReturnNotice with a status code of 400 to indicate that the request was invalid. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnReturnData Overview Return an HTML string to a client Syntax EXTERN int Ns_ConnReturnData( Ns_Conn *conn, int status, char *html, int len, char *type ); Description The Ns_ConnReturnData function calls the Ns_ConnSetRequiredHeaders function with the given status followed by the given HTML string. The length is used to generate the Content-Length header. If the length is -1, the function calculates the Content-Length from the string. The type is used to generate the Content-Type header. Ns_ConnReturnData returns a status of NS_OK or NS_ERROR. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnReturnFile Overview Return a file to a client Syntax int Ns_ConnReturnFile( Ns_Conn *conn, int status, char *type, char *file ); Description The Ns_ConnReturnFile function returns the entire contents of the given file to the client. In addition to setting the HTTP status response line and Content-Type headers from the given parameters, Ns_ConnReturnFile also uses the stat system call to generate the appropriate Last-Modified and Content-Length headers. Ns_ConnReturnFile returns a status of NS_OK or NS_ERROR. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnReturnForbidden Overview Return a "request forbidden" HTTP status line. Syntax int Ns_ConnReturnForbidden( Ns_Conn *conn ); Description Calls Ns_ConnReturnStatus or Ns_ConnReturnNotice with a status code of 403 to indicate that the request is forbidden. There is no Authorization header that will authorize access from this IP address. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc. Previous ToC Index Next [as-c-sm.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Ns_ConnReturnHtml Overview Return an HTML string to a client Syntax int Ns_ConnReturnHtml( Ns_Conn *conn, int status, char *html, int len ); Description The Ns_ConnReturnHtml function calls the Ns_ConnSetRequiredHeaders function with the given status followed by the given HTML string. The length is used to generate the Content-Length header. If the length is -1, the function calculates the Content-Length from the string. Ns_ConnReturnHtml returns a status of NS_OK or NS_ERROR. [bluebult.gif] Top of Page [bluebult.gif] [ Previous ] [ Contents ] [ Index ] [ Next ] Copyright © 1998-99 America Online, Inc.