Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
KHTTP_HEAD(3)		     Library Functions Manual		   KHTTP_HEAD(3)

NAME
     khttp_head -- emit one HTTP header for kcgi

LIBRARY
     libkcgi

SYNOPSIS
     #include <sys/types.h>
     #include <stdarg.h>
     #include <stdint.h>
     #include <kcgi.h>

     enum kcgi_err
     khttp_head(struct kreq *req, const char *key, const char *fmt, ...);

     extern const char *const kresps[KRESP__MAX];

DESCRIPTION
     The  khttp_head()	function takes a kcgi(3) context req that was previously
     initialised by khttp_parse(3) and emits one HTTP header with the given HTTP
     response  key.   The  fmt	string	and  variable  arguments,  which  follow
     printf(3)	syntax, form the corresponding value in the HTTP response.  This
     function may only be invoked prior to khttp_body(3); otherwise, its  behav-
     iour is undefined.

     The  kresps  global  array, indexed with the KRESP_* symbolic constants de-
     fined in <kcgi.h>, provides standard HTTP key names.  Use it  for	the  key
     argument to avoid typos.

     See khttp_body(3) for a discussion on the "Content-Encoding" header: do not
     specify this header before doing so!

RETURN VALUES
     The  khttp_head()	function  returns  an enum kcgi_err indicating the error
     state.

     KCGI_OK
	     Success (not an error).

     KCGI_ENOMEM
	     Internal memory allocation failure.

     KCGI_SYSTEM
	     Internal system error writing to the output stream.

     KCGI_HUP
	     The output connection has been  terminated.   For	FastCGI  connec-
	     tions, the current connection should be released with khttp_free(3)
	     and parse loop reentered.

EXAMPLES
     To emit a session cookie (one-year expiration date) with key ckey and value
     cval for the global path, one may invoke the following.  Assume that r is a
     pointer to a struct kreq successfully initialised by khttp_parse(3).

     const char *ckey = "foo", *cval = "bar";
     char buf[64];

     khttp_epoch2str(time(NULL) + 31536000, buf, 64);

     khttp_head(r, kresps[KRESP_SET_COOKIE],
       "%s=%s; path=/; expires=%s", ckey, cval, buf);

SEE ALSO
     kcgi(3), khttp_body(3), khttp_parse(3)

STANDARDS
     RFC 2616, section 14: "Header Field Definitions".

     The example references RFC 6265, section 4.1: "Set-Cookie".

AUTHORS
     The    khttp_head()    function	was   written	by   Kristaps	Dzonsons
     <kristaps@bsd.lv>.

FreeBSD ports 15.quarterly	   $Mdocdate$			   KHTTP_HEAD(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=khttp_head&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help