Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

cgi_parse(3) [debian man page]

cgi_parse(3)							     cgi/cgi.h							      cgi_parse(3)

NAME
cgi_parse - Parse incoming CGI data SYNOPSIS
#include <cgi/cgi.h> NEOERR *cgi_parse (CGI *cgi); ARGUMENTS
cgi - a pointer to a CGI pointer DESCRIPTION
We split cgi_init into two sections, one that parses just the basics, and the second is cgi_parse. cgi_parse is responsible for parsing the entity body of the HTTP request. This payload is typically only sent (expected) on POST/PUT requests, but generally this is called on all incoming requests. This function walks the list of registered parse callbacks (see cgi_register_parse_cb), and if none of those matches or handles the request, it handlers: POST w/ application/x-www-form-urlencoded POST w/ application/form-data PUT w/ any content type In general, if there is no Content-Length, then cgi_parse ignores the payload and doesn't raise an error. RETURN VALUE
Either data populated into files and cgi->hdf, or whatever other side effects of your own registered callbacks. SEE ALSO
cgi_debug_init(3), cgi_parse(3), cgi_destroy(3), cgi_js_escape(3), cgi_html_escape_strfunc(3), cgi_register_strfuncs(3), cgi_output(3), parse_rfc2388(3), cgi_url_validate(3), open_upload(3), cgi_cs_init(3), cgi_url_escape_more(3), cgi_html_strip_strfunc(3), cgi_neo_error(3), cgi_redirect(3), cgi_filehandle(3), cgi_register_parse_cb(3), cgi_url_escape(3), cgi_init(3), cgi_redirect_uri(3), cgi_cookie_clear(3), cgi_url_unescape(3), cgi_vredirect(3), cgi_display(3), cgi_html_ws_strip(3), cgi_error(3), cgi_cookie_set(3), cgi_text_html_strfunc(3), cgi_cookie_authority ClearSilver 12 July 2007 cgi_parse(3)

Check Out this Related Man Page

cgi_register_parse_cb(3)					     cgi/cgi.h						  cgi_register_parse_cb(3)

NAME
cgi_register_parse_cb - Register a parse callback SYNOPSIS
#include <cgi/cgi.h> NEOERR *cgi_register_parse_cb(CGI *cgi, const char *method, const char *ctype, void *rock, CGI_PARSE_CB parse_cb); ARGUMENTS
cgi - a CGI struct method - the HTTP method you want to handle, or * for all ctype - the HTTP Content-Type you want to handle, or * for all rock - opaque data that we'll pass to your call back DESCRIPTION
The ClearSilver CGI Kit has built-in functionality to handle the following methods: GET -> doesn't have any data except query string, which is processed for all methods POST w/ application/x-www-form-urlencoded POST w/ multipart/form-data processed as RFC2388 data into files and HDF (see cgi_filehandle()) PUT (any type) The entire data chunk is stored as a file, with meta data in HDF (similar to single files in RFC2388). The data is accessible via cgi_filehandle with NULL for name. To handle other methods/content types, you have to register your own parse function. This isn't necessary if you aren't expecting any data, and technically HTTP only allows data on PUT/POST requests (and presumably user defined methods). In particular, if you want to implement XML-RPC or SOAP, you'll have to register a callback here to grab the XML data chunk. Usually you'll want to register POST w/ application/xml or POST w/ text/xml (you either need to register both or reg- ister POST w/ * and check the ctype yourself, remember to nerr_raise(CGIParseNotHandled) if you aren't handling the POST). In general, your callback should: Find out how much data is available: l = hdf_get_value (cgi->hdf, "CGI.ContentLength", NULL); len = atoi(l); And read/handle all of the data using cgiwrap_read. See the builtin handlers for how this is done. Note that cgiwrap_read is not guarunteed to return all of the data you request (just like fread(3)) since it might be reading of a socket. Sorry. You should be careful when read- ing the data to watch for short reads (ie, end of file) and cases where the client sends you data ad infinitum. RETURN VALUE
None SEE ALSO
cgi_debug_init(3), cgi_parse(3), cgi_destroy(3), cgi_js_escape(3), cgi_html_escape_strfunc(3), cgi_register_strfuncs(3), cgi_output(3), parse_rfc2388(3), cgi_url_validate(3), open_upload(3), cgi_cs_init(3), cgi_url_escape_more(3), cgi_html_strip_strfunc(3), cgi_neo_error(3), cgi_redirect(3), cgi_filehandle(3), cgi_register_parse_cb(3), cgi_url_escape(3), cgi_init(3), cgi_redirect_uri(3), cgi_cookie_clear(3), cgi_url_unescape(3), cgi_vredirect(3), cgi_display(3), cgi_html_ws_strip(3), cgi_error(3), cgi_cookie_set(3), cgi_text_html_strfunc(3), cgi_cookie_authority ClearSilver 12 July 2007 cgi_register_parse_cb(3)
Man Page