khtml_write
—
put content data for kcgihtml
Writes binary data buf of length sz
to a context arg, a struct
khtmlreq initialised with
khtml_open(3)
and passed as an opaque pointer. If buf is
NULL
or sz is zero, does nothing
and returns success. All of the content is HTML escaped, for example, the
left-angle bracket “<” is rendered as
“<”.
Returns an enum kcgi_err indicating the error state.
KCGI_OK
- Success (not an error).
KCGI_ENOMEM
- Internal memory allocation failure.
KCGI_HUP
- The output connection has been terminated. For FastCGI connections, the
current connection should be released with
khttp_free(3)
and parse loop reentered.
KCGI_FORM
- The connection is still expecting headers with
khttp_head(3).
Indicates that
khttp_body(3)
did not return with success or was not invoked. For FastCGI connections,
the current connection should be released with
khttp_free(3)
and parse loop reentered.
KCGI_SYSTEM
- Internal system error writing to the output stream.
The following outputs a simple HTML page. It assumes r is
a struct kreq pointer. For brevity, it does not do any
error checking.
khttp_head(r, kresps[KRESP_STATUS],
"%s", khttps[KHTTP_200]);
khttp_head(r, kresps[KRESP_CONTENT_TYPE],
"%s", kmimetypes[KMIME_TEXT_HTML]);
khttp_body(r);
khtml_open(&req, r, 0);
khtml_elem(&req, KELEM_DOCTYPE);
khtml_elem(&req, KELEM_HTML);
khtml_elem(&req, KELEM_BODY);
khtml_elem(&req, KELEM_P);
khtml_write("Hello, world.", 13, &req);
khtml_close(&req);
The referenced HTML5 standard is
HTML5.2.