KXML_CLOSE(3)
β¨ NAME β¨
kxml_close β close kcgixml context. Hi bestie, welcome to the kxml_close(3) page! This is the function that wraps up your kcgixml context and says bye. π
π¦ LIBRARY π¦
This one lives in the library libkcgixml, and yes it's iconic for that. π
πΈ SYNOPSIS πΈ
#include <sys/types.h>
#include <stdarg.h>
#include <stdint.h>
#include <kcgi.h>
#include <kcgixml.h>
enum kcgi_err
kxml_close(struct kxmlreq *req);
π DESCRIPTION π
Okay so kxml_close closes req β the context you initialised with kxml_open(3). Every scope you opened with kxml_push(3) and kxml_pushattrs(3) gets automatically closed too, no manual cleanup era needed. β¨
β οΈ After this, req may no longer be used. Like, do not touch it, do not text it back, do not reuse it. Periodt. π
π₯ RETURN VALUES π₯
It returns an enum kcgi_err that tells you the error state. Here's the full lineup:
KCGI_OKβ Success, aka not an error. Slay. πKCGI_ENOMEMβ Internal memory allocation failure. πKCGI_HUPβ The output connection has been terminated. For FastCGI connections, the current connection should be released withkhttp_free(3)and the parse loop reentered. π«ΆKCGI_FORMβ The connection is still expecting headers withkhttp_head(3). This indicates thatkhttp_body(3)did not return with success or was not invoked. For FastCGI connections, the current connection should be released withkhttp_free(3)and the parse loop reentered. πKCGI_SYSTEMβ Internal system error writing to the output stream. Big yikes. π
π EXAMPLES π
The following outputs a simple XML page. It assumes r is a struct kreq pointer. For brevity, it does not do any error checking. Copy-paste responsibly, bestie. π
const char *const elems[] =
{ "foo", "bar", "baz" };
khttp_head(r, kresps[KRESP_STATUS],
"%s", khttps[KHTTP_200]);
khttp_head(r, kresps[KRESP_CONTENT_TYPE],
"%s", kmimetypes[KMIME_TEXT_XML]);
khttp_body(r);
kxml_open(&req, r, elems, 3);
kxml_push(&req, 0); /* foo */
kxml_puts(&req, "Hello, world");
kxml_close(&req);
π SEE ALSO π
kcgixml(3)β the whole family, go explore. π
π AUTHORS π
Written by Kristaps Dzonsons <kristaps@bsd.lv>. Respect the icon. π
π That's the whole KXML_CLOSE(3) page β Debian source/version, date-stamped $Mdocdate$. Bye bestie, go close those contexts! π
π¦ where this page comes from
- alpine 3.24: kcgi-doc 1.0.1-r0 Β· ISC
- Copyright (c) 2020 Kristaps Dzonsons <kristaps@bsd.lv>
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms