Main Page | Modules | Data Structures | Directories | File List | Data Fields | Globals

Response handling


Functions

io_tresponse_io (response_t *rs)
 Get the I/O object of a response.
int response_set_status (response_t *rs, int code)
 Set the status of a response.
int response_get_status (response_t *rs)
 Get the status of a response.
int response_get_method (response_t *rs)
 Get the response method.
int response_redirect (response_t *rs, const char *url)
 Redirect to a given url.
header_tresponse_get_header (response_t *rs)
 Get the header of a response.
field_tresponse_get_field (response_t *rs, const char *name)
const char * response_get_field_value (response_t *rs, const char *name)
int response_set_field (response_t *rs, const char *name, const char *value)
 Set an header field of a response object.
int response_set_content_type (response_t *rs, const char *mime_type)
 Set the content type of a response to a mime type.
int response_set_content_length (response_t *rs, size_t sz)
 Set the content length field of a response header.
int response_set_content_encoding (response_t *rs, const char *encoding)
 Set response content encoding field.
int response_set_last_modified (response_t *rs, time_t mtime)
 Set the last modified field in a response header.
int response_set_date (response_t *rs, time_t now)
 Set the date field in a response header.
int response_set_cookie (response_t *rs, const char *name, const char *value, time_t expire, const char *path, const char *domain, int secure)
 Set the value of a cookie.
int response_enable_caching (response_t *rs)
 Remove all headers that inhibit page caching.
int response_disable_caching (response_t *rs)
 Add all header field that enable page caching (i.e. disable caching).

Detailed Description

Basic knowledge of the HTTP protocol is assumed. Hence only the essential information is given. Some useful references are:

Function Documentation

io_t * response_io response_t rs  ) 
 

Get the I/O object of reponse rs.

Parameters:
rs response object
Returns:
  • the I/O child object of the given rs

Definition at line 588 of file response.c.

int response_set_status response_t rs,
int  status
 

Set the status of response rs. For possible values of status refer to response.h.

Parameters:
rs parameter rs description
status parameter status description
Returns:
  • 0 always

Definition at line 633 of file response.c.

Referenced by response_redirect().

int response_get_status response_t rs  ) 
 

Get the status of a response rs. For possible values of status refer to response.h.

Parameters:
rs response object
Returns:
  • the status of the given rs

Definition at line 558 of file response.c.

int response_get_method response_t rs  ) 
 

Get the response method of rs. For possibile values of method, refer to http.h.

Parameters:
rs response object
Returns:
  • the method of the given rs

Definition at line 306 of file response.c.

int response_redirect response_t rs,
const char *  url
 

Redirect to url by setting the Location field in response rs.

Parameters:
rs parameter rs description
url parameter url description
Returns:
  • 0 if successful
  • ~0 on error

Definition at line 605 of file response.c.

References header_add_field(), HTTP_STATUS_MOVED_TEMPORARILY, and response_set_status().

header_t * response_get_header response_t rs  ) 
 

Get the header of a response rs.

Parameters:
rs response object
Returns:
  • the child header object of the given rs

Definition at line 573 of file response.c.

int response_set_field response_t rs,
const char *  name,
const char *  value
 

Set field name to value in reponse object rs.

Parameters:
rs response object
name field name
value field value
Returns:
  • 0 if successful
  • ~0 on error

Definition at line 411 of file response.c.

References header_set_field().

Referenced by response_disable_caching().

int response_set_content_type response_t rs,
const char *  mime_type
 

Set the Content-Type field of response rs to mime_type.

Parameters:
rs response object
mime_type mime type
Returns:
  • 0 if successful
  • ~0 on error

Definition at line 458 of file response.c.

References header_set_field().

int response_set_content_length response_t rs,
size_t  sz
 

Set the Content-Length field of rs to sz.

Parameters:
rs response object
sz number of bytes in content
Returns:
  • 0 if successful
  • ~0 on error

Definition at line 533 of file response.c.

References header_set_field().

int response_set_content_encoding response_t rs,
const char *  encoding
 

Set the Content-Encoding field in a response object rs to encoding.

Parameters:
rs response object
encoding encoding type
Returns:
  • 0 if successful
  • ~0 if successful

Definition at line 82 of file response.c.

References header_set_field().

int response_set_last_modified response_t rs,
time_t  mtime
 

Set the Last-Modified field of rs to mtime.

Parameters:
rs response object
mtime last modified date value
Returns:
  • 0 if successful
  • ~0 on error

Definition at line 507 of file response.c.

References header_set_field(), and u_tt_to_rfc822().

int response_set_date response_t rs,
time_t  date
 

Set the Date field of rs to date.

Parameters:
rs response object
date date value
Returns:
  • 0 if successful
  • ~0 on error

Definition at line 481 of file response.c.

References header_set_field(), and u_tt_to_rfc822().

int response_set_cookie response_t rs,
const char *  name,
const char *  value,
time_t  expire,
const char *  path,
const char *  domain,
int  secure
 

Set the value of a cookie named name to value in response object rs. Other fields that can be set are expire, path, domain, and secure.

Parameters:
rs response object
name cookie name
value cookie value
expire cookie expiration date
path cookie path
domain cookie domain
secure cookie secure flag
Returns:
  • 0 if successful
  • ~0 on error

Definition at line 175 of file response.c.

References header_add_field(), u_tt_to_rfc822(), and u_urlncpy().

int response_enable_caching response_t rs  ) 
 

Remove all HTTP Header fields that (should) prevent browsers caching. This should enable caching on specs-compliant browsers.

Those fields are:

Cache-Control: Expires: Pragma:

Parameters:
rs response object
Returns:
  • 0 if successful
  • ~0 if successful

Definition at line 144 of file response.c.

int response_disable_caching response_t rs  ) 
 

Adds all relevant Header fields to the current HTTP response to avoid browser caching.

The function will set/modify the following fields:

Cache-Control: no-cache, must-revalidate Expires: Mon, 1 Jan 1990 05:00:00 GMT Pragma: no-cache

Parameters:
rs response object
Returns:
  • 0 if successful
  • ~0 if successful

Definition at line 111 of file response.c.

References response_set_field().