cgi_parse(3)

πŸ¦‹ cgi_parse β€” NAME πŸ¦‹

okay bestie, this is cgi_parse from cgi/cgi.h β€” Parse incoming CGI data πŸ’– that's literally the whole job description and she does it well.


✨ SYNOPSIS ✨

#include <cgi/cgi.h>

NEOERR *cgi_parse (CGI *cgi);

πŸŽ€ ARGUMENTS πŸŽ€

  • cgi β€” a pointer to a CGI pointer. yes, a double pointer situation, it's giving pointer-to-a-pointer, we love a little indirection moment πŸ™ˆ

πŸ’… DESCRIPTION πŸ’…

so here's the tea: cgi_init got split into two sections, because doing everything at once is not the vibe. one of those sections parses just the basics, and the second one is our girl cgi_parse. ✨

cgi_parse is responsible for parsing the entity body of the HTTP request. that payload is typically only sent (expected) on POST/PUT requests, but generally this is called on all incoming requests. no cap. 🌈

what she actually does: she 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. so if your body is giving invisible, she just shrugs and moves on πŸ’€ no drama, no error, iconic behaviour honestly.

🌸 RETURN VALUE 🌸

Either data populated into files and cgi->hdf, or whatever other side effects of your own registered callbacks. like, she returns vibes and side effects, that's the deal 🫢


⭐ 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 β€” mwah, that's the source and the date, tysm for coming to my ted talk, go parse something πŸ’œπŸŽ€