cgi_register_parse_cb man page on DragonFly

Man page or keyword search:  
man Server   44335 pages
apropos Keyword Search (all sections)
Output format
DragonFly logo
[printable version]

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

       cgi_register_parse_cb  - Register a parse callback

       #include <cgi/cgi.h>

       NEOERR *cgi_register_parse_cb(CGI *cgi, const char *method, const char *ctype,
				     void *rock, CGI_PARSE_CB parse_cb);

       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

       The  ClearSilver	 CGI Kit has built-in functionality to handle the fol‐
       lowing 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 imple‐
       ment 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/ applica‐
       tion/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 han‐
       dlers 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.


       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_dis‐
       play(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)

List of man pages available for DragonFly

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
Vote for polarhome
Free Shell Accounts :: the biggest list on the net