GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  KHTTP_FCGI_INIT (3)

NAME

khttp_fcgi_init, khttp_fcgi_initx - initialise a FastCGI context for kcgi

CONTENTS

Library
Synopsis
Description
Return Values
See Also
Authors

LIBRARY


.Lb libkcgi

SYNOPSIS


.In stdint.h
.In kcgi.h enum kcgi_err
.Fo khttp_fcgi_init struct kfcgi **fcgi const struct kvalid *keys size_t keysz const char *const *pages size_t pagesz size_t defpage
.Fc enum kcgi_err
.Fo khttp_fcgi_initx struct kreq **fcgi const char *const *mimes size_t mimemax const struct kvalid *keys size_t keysz const struct kmimemap *mimemap size_t defmime const char *const *pages size_t pagesz size_t defpage void *arg void (*argfree)(void *arg) unsigned int debugging const struct kopts *opts
.Fc

DESCRIPTION

The khttp_fcgi_init and khttp_fcgi_initx functions initialise a FastCGI context for kcgi(3). These functions will only work if invoked as FastCGI servers, for example, kfcgi(8). They should be called as early as possible in the life-span of a FastCGI application, preferrably directly after initialisation.

The collective arguments are defined in khttp_parse(3). Function arguments are not copied: all pointers are passed by reference and used in later invocations of khttp_fcgi_parse(3).

The first form, khttp_fgci_init, is for applications using the system-recognised MIME types. This should work well enough for most applications. It is equivalent to invoking the second form, khttp_fcgi_initx, as follows:

khttp_fcgi_initx(fcgi, kmimetypes, KMIME__MAX,
  keys, keysz, ksuffixmap, KMIME_TEXT_HTML,
  pages, pagesz, defpage, NULL, NULL, 0, NULL);

After invocation with a return value of KCGI_OK, the fcgi pointer is filled in (and must be later be freed with khttp_fcgi_free(3)) and the khttp_fcgi_parse(3) and khttp_fcgi_parsex(3) functions may be invoked.

Note: in accordance with the FastCGI specification, khttp_fcgi_init and khttp_fcgi_initx will install signal handlers for SIGTERM. These should not be changed by the calling application, but are not prohibited from doing so. The consequences are that a server wishing to halt the application must use SIGKILL instead of the FastCGI-specified SIGTERM and suffer the consequences of not properly exiting the parse loop.

RETURN VALUES

khttp_fcgi_init and khttp_fcgi_initx return an error code:
KCGI_OK
  Success (not an error).
KCGI_ENOMEM
  Memory failure. This can occur in many places: spawning a child, allocating memory, creating sockets, etc.
KCGI_ENFILE
  Could not allocate file descriptors.
KCGI_EAGAIN
  Could not spawn a child.
KCGI_SYSTEM
  Opaque operating system error.
KCGI_HUP
  Hangup: the function was not invoked in a FastCGI context.

On failure, the calling application should terminate as soon as possible.

SEE ALSO

kcgi(3), khttp_fcgi_free(3), khttp_fcgi_parse(3), khttp_parse(3)

AUTHORS

The khttp_fcgi_init and khttp_fcgi_initx functions were written by
.An Kristaps Dzonsons Aq Mt kristaps@bsd.lv .
Search for    or go to Top of page |  Section 3 |  Main Index


Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.