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

request_t - request handling


Functions

int request_is_encoding_accepted (request_t *rq, const char *encoding)
io_trequest_io (request_t *rq)
 Get the io_t object associated with a request object.
vars_trequest_get_cookies (request_t *rq)
 Get the cookies list.
const char * request_get_cookie (request_t *rq, const char *name)
 Get the value of a cookie named name.
vars_trequest_get_args (request_t *rq)
 Get request arguments.
const char * request_get_arg (request_t *rq, const char *name)
 Get a request argument.
int request_set_field (request_t *rq, const char *name, const char *value)
 Set a request field.
const char * request_get_uri (request_t *rq)
 Get the URI field of a request.
const char * request_get_filename (request_t *rq)
 Get the filename field of a request.
int request_set_filename (request_t *rq, const char *filename)
 Set the filename field of a request.
const char * request_get_query_string (request_t *rq)
 Get the query string field of a request.
const char * request_get_path_info (request_t *rq)
 Get the path info field of a request.
time_t request_get_if_modified_since (request_t *rq)
 Get IMS field of a request.
int request_set_resolved_filename (request_t *rq, const char *resolved_fn)
 Set the resolved filename field of a request.
http_trequest_get_http (request_t *rq)
 Get the HTTP server handle of a request.
int request_bind (request_t *rq, io_t *in)
 Bind request I/O to a given I/O.
int request_set_query_string (request_t *rq, const char *query)
 Set the query string of a request.
void request_clear_uri (request_t *rq)
 Clear the URI field of a request.
int request_set_path_info (request_t *rq, const char *path_info)
 Set the path info field of a request.
int request_set_resolved_path_info (request_t *rq, const char *resolved_pi)
 Set the resolved path info field of a request.
int request_set_uri (request_t *rq, const char *uri, int(*is_valid_uri)(void *, const char *, size_t), void *arg)
int request_set_method (request_t *rq, const char *method)
 Set the method of a request.
void request_set_cgi (request_t *rq, int cgi)
ssize_t request_get_content_length (request_t *rq)
 Get the content length of a request.
vars_trequest_get_uploads (request_t *rq)
 Get uploaded files.
int request_get_uploaded_filev (request_t *rq, var_t *v, char local_filename[U_FILENAME_MAX], char client_filename[U_FILENAME_MAX], char mime_type[MIME_TYPE_BUFSZ], size_t *file_size)
int request_get_uploaded_file (request_t *rq, const char *name, size_t idx, char local_filename[U_FILENAME_MAX], char client_filename[U_FILENAME_MAX], char mime_type[MIME_TYPE_BUFSZ], size_t *file_size)
 Get info and handles of an uploaded file.
int request_parse_data (request_t *rq)
int request_parse_header (request_t *rq, int(*is_valid_uri)(void *, const char *, size_t), void *arg)
int request_get_method (request_t *rq)
 Get the method of a request.
const char * request_get_resolved_filename (request_t *rq)
 Get resolved filename of a request.
const char * request_get_resolved_path_info (request_t *rq)
 Get the resolved path info of a request.
int request_print (request_t *rq)
int request_create (http_t *http, request_t **prq)
int request_free (request_t *rq)
int request_set_addr (request_t *rq, addr_t *addr)
int request_set_peer_addr (request_t *rq, addr_t *addr)
addr_trequest_get_addr (request_t *rq)
addr_trequest_get_peer_addr (request_t *rq)
header_trequest_get_header (request_t *rq)
field_trequest_get_field (request_t *rq, const char *name)
const char * request_get_field_value (request_t *rq, const char *name)

Detailed Description

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

Function Documentation

int request_bind request_t rq,
io_t in
 

Bind the I/O of request rq to in.

Parameters:
rq request object
in input I/O object
Returns:
0 if successful, non-zero on error

Definition at line 414 of file request.c.

References io_t, and request_t.

void request_clear_uri request_t rq  ) 
 

Clear the URI field of request rq.

Parameters:
rq request object
Returns:
nothing

Definition at line 455 of file request.c.

References request_t.

Referenced by cgi_set_request(), request_free(), and request_set_uri().

int request_create http_t http,
request_t **  prq
 

Definition at line 1530 of file request.c.

References header_create(), http_t, request_free(), request_t, and vars_create().

int request_free request_t rq  ) 
 

Definition at line 1574 of file request.c.

References header_free(), io_free(), request_clear_uri(), request_t, vars_foreach(), and vars_free().

Referenced by request_create().

addr_t* request_get_addr request_t rq  ) 
 

Definition at line 1629 of file request.c.

References addr_t, and request_t.

const char* request_get_arg request_t rq,
const char *  name
 

Return the string value of argument name in request rq.

Parameters:
rq request object
name name of the argument
Returns:
  • the string value corresponding to the supplied name
  • NULL if there's no argument named name

Definition at line 215 of file request.c.

References request_t, var_get_value(), var_t, and vars_get().

vars_t* request_get_args request_t rq  ) 
 

Return get/post arguments of request rq in a vars_t object

Parameters:
rq request object
Returns:
the arguments' list of the given rq

Definition at line 196 of file request.c.

References request_t, and vars_t.

ssize_t request_get_content_length request_t rq  ) 
 

Retrieve a size_t corresponding to the Content-Length field of request rq

Parameters:
rq request object
Returns:
the content length of the given rq

Definition at line 740 of file request.c.

References request_t.

const char* request_get_cookie request_t rq,
const char *  name
 

Return the value of a cookie sent by the browser

Parameters:
rq request object
name cookie name
Returns:
the cookie value or NULL on error

Definition at line 175 of file request.c.

References request_t, var_get_value(), var_t, and vars_get().

Referenced by session_prv_init().

vars_t* request_get_cookies request_t rq  ) 
 

Return a vars_t object containing the list of all cookies sent by the browser.

Parameters:
rq request object
Returns:
the cookie list of the given rq

Definition at line 158 of file request.c.

References request_t, and vars_t.

field_t* request_get_field request_t rq,
const char *  name
 

Definition at line 1654 of file request.c.

References field_t, header_get_field(), and request_t.

const char* request_get_field_value request_t rq,
const char *  name
 

Definition at line 1664 of file request.c.

References header_get_field_value(), and request_t.

const char* request_get_filename request_t rq  ) 
 

Return the string value of the filename field in request rq.

Parameters:
rq request object
Returns:
the file name bound to rq (can be NULL)

Definition at line 272 of file request.c.

References request_t.

Referenced by broker_serve().

header_t* request_get_header request_t rq  ) 
 

Definition at line 1645 of file request.c.

References request_t.

http_t* request_get_http request_t rq  ) 
 

Get the http_t object containing the HTTP server handle of request rq

Parameters:
rq request object
Returns:
the child HTTP object of the given rq (may be NULL)

Definition at line 397 of file request.c.

References http_t, and request_t.

time_t request_get_if_modified_since request_t rq  ) 
 

Return the time_t value of the IMS field of request rq

Parameters:
rq request object
Returns:
a valid time_t value on success, -1 on failure

Definition at line 359 of file request.c.

References request_t.

Referenced by broker_serve().

int request_get_method request_t rq  ) 
 

Return the method of request rq. Refer to http.h for possible methods.

Parameters:
rq request object
Returns:
  • the method of the given rq

Definition at line 1442 of file request.c.

References HM_UNKNOWN, and request_t.

const char* request_get_path_info request_t rq  ) 
 

Return the path info field of request rq.

Parameters:
rq request object
Returns:
the path info of rq (may be NULL)

Definition at line 326 of file request.c.

References request_t.

addr_t* request_get_peer_addr request_t rq  ) 
 

Definition at line 1637 of file request.c.

References addr_t, and request_t.

const char* request_get_query_string request_t rq  ) 
 

Return the query string field of request rq.

Parameters:
rq request object
Returns:
the query string bound to rq (may be NULL)

Definition at line 310 of file request.c.

References request_t.

const char* request_get_resolved_filename request_t rq  ) 
 

Return a string representing the resolved filename of request rq.

Parameters:
rq request object
Returns:
the resolved file name bound to rq (may be NULL)

Definition at line 1458 of file request.c.

References request_t.

Referenced by broker_serve().

const char* request_get_resolved_path_info request_t rq  ) 
 

Return a string representing the resolved path info of request rq.

Parameters:
rq request object
Returns:
the resolved path info of the given rq (may be NULL)

Definition at line 1474 of file request.c.

References request_t.

int request_get_uploaded_file request_t rq,
const char *  name,
size_t  idx,
char  local_filename[U_FILENAME_MAX],
char  client_filename[U_FILENAME_MAX],
char  mime_type[MIME_TYPE_BUFSZ],
size_t *  file_size
 

Return information and handles about an uploaded file

Parameters:
rq request object
name form input tag variable name (<input type=file name="xxx">)
idx if more then one file with the same name param exists idx will be used as an index (use 0 otherwise)
local_filename on successfull exit will get the filename (with full path) of the temporary file where uploaded file content has been saved. Must be at least U_FILENAME_MAX bytes long
client_filename filename as provided by the client Must be at least U_FILENAME_MAX bytes long
mime_type MIME type as stated y the client (may be "") Must be at least MIME_TYPE_BUFSZ bytes long
file_size file size of the uploaded file
Returns:
0 on success, ~0 otherwise

Definition at line 1146 of file request.c.

References request_get_uploaded_filev(), request_t, upload_info_t, var_t, vars_count(), and vars_geti().

int request_get_uploaded_filev request_t rq,
var_t v,
char  local_filename[U_FILENAME_MAX],
char  client_filename[U_FILENAME_MAX],
char  mime_type[MIME_TYPE_BUFSZ],
size_t *  file_size
 

Definition at line 1094 of file request.c.

References MIME_TYPE_BUFSZ, request_t, upload_info_t, var_get_opaque(), var_get_value(), and var_t.

vars_t* request_get_uploads request_t rq  ) 
 

Return the list of uploaded files.

Any var_t in the list will contain, within its name/value pair, the name of the HTML form input tag "name" argument and the filename (with full path) of the temporary file where uploaded content has been stored.

This function is only useful to enumerate uploads,

See also:
request_get_uploaded_file is what you'll probably use.
Parameters:
rq request object
Returns:
the arguments' list of the given rq

Definition at line 1033 of file request.c.

References request_t, and vars_t.

const char* request_get_uri request_t rq  ) 
 

Return the string value of the URI in request rq.

Parameters:
rq request object
Returns:
the URI child object of the given rq

Definition at line 256 of file request.c.

References request_t.

io_t* request_io request_t rq  ) 
 

Return the I/O object (io_t) used by the request object passed as parameter. The io_t object is bound to the socket connected to the client (the web browser).

Parameters:
rq request object
Returns:
child io_t object of the given rq or NULL if no io_t object has been set
See also:
io_t

Definition at line 141 of file request.c.

References io_t, and request_t.

int request_is_encoding_accepted request_t rq,
const char *  encoding
 

Definition at line 92 of file request.c.

References header_get_field_value(), and request_t.

int request_parse_data request_t rq  ) 
 

Definition at line 1322 of file request.c.

References HTTP_STATUS_LENGTH_REQUIRED, HTTP_STATUS_REQUEST_TOO_LARGE, request_t, talarm_t, timerm_add(), and timerm_del().

Referenced by request_parse_header().

int request_parse_header request_t rq,
int(*)(void *, const char *, size_t)  is_valid_uri,
void *  arg
 

Definition at line 1379 of file request.c.

References header_load(), header_load_from_cgienv(), io_gets(), request_parse_data(), request_set_method(), request_set_uri(), request_t, talarm_t, timerm_add(), and timerm_del().

int request_print request_t rq  ) 
 

Definition at line 1481 of file request.c.

References request_t.

int request_set_addr request_t rq,
addr_t addr
 

Definition at line 1607 of file request.c.

References addr_t, and request_t.

void request_set_cgi request_t rq,
int  cgi
 

Definition at line 724 of file request.c.

References request_t.

int request_set_field request_t rq,
const char *  name,
const char *  value
 

Set field name to value in request rq

Parameters:
rq request object
name name of the argument
value value of the argument
Returns:
0 if successful, non-zero on error

Definition at line 238 of file request.c.

References header_set_field(), and request_t.

Referenced by cgi_set_request().

int request_set_filename request_t rq,
const char *  filename
 

Set the filename field of request rq to filename.

Parameters:
rq request object
filename filename string
Returns:
0 if successful, non-zero on error

Definition at line 289 of file request.c.

References REQUEST_SET_STRING_FIELD, and request_t.

Referenced by cgi_set_request(), and request_set_uri().

int request_set_method request_t rq,
const char *  method
 

Set the method of request rq. Refer to http.h for possible methods.

Parameters:
rq request object
method the HTTP method
Returns:
0 if successful, non-zero on error

Definition at line 615 of file request.c.

References request_t.

Referenced by cgi_set_request(), and request_parse_header().

int request_set_path_info request_t rq,
const char *  path_info
 

Set the path info field of request rq to path_info.

Parameters:
rq request object
path_info path info
Returns:
0 if successful, non-zero on error

Definition at line 479 of file request.c.

References REQUEST_SET_STRING_FIELD, and request_t.

Referenced by cgi_set_request(), and request_set_uri().

int request_set_peer_addr request_t rq,
addr_t addr
 

Definition at line 1618 of file request.c.

References addr_t, and request_t.

int request_set_query_string request_t rq,
const char *  query
 

Parse query string and build the rq->args list.

Parameters:
rq request object
query query string
Returns:
0 if successful, non-zero on error

Definition at line 434 of file request.c.

References REQUEST_SET_STRING_FIELD, and request_t.

Referenced by cgi_set_request(), and request_set_uri().

int request_set_resolved_filename request_t rq,
const char *  resolved_fn
 

Set the resolved filename field of request rq to resolved_fn

Parameters:
rq request object
resolved_fn resolved filename
Returns:
0 if successful, non-zero on error

Definition at line 376 of file request.c.

References REQUEST_SET_STRING_FIELD, and request_t.

int request_set_resolved_path_info request_t rq,
const char *  resolved_pi
 

Set the resolved path info field of request rq to resolved_pi.

Parameters:
rq request object
resolved_pi resolved path info
Returns:
0 if successful, non-zero on error

Definition at line 501 of file request.c.

References REQUEST_SET_STRING_FIELD, and request_t.

int request_set_uri request_t rq,
const char *  uri,
int(*)(void *, const char *, size_t)  is_valid_uri,
void *  arg
 

Definition at line 525 of file request.c.

References request_clear_uri(), request_set_filename(), request_set_path_info(), request_set_query_string(), REQUEST_SET_STRING_FIELD, request_t, u_strnrchr(), u_urlncpy(), and URLCPY_DECODE.

Referenced by request_parse_header().


←Products
© 2005-2006 - KoanLogic S.r.l. - All rights reserved