Apache HTTP Server Request Library
apreq_cookie.h describes a common server-side API for request (incoming) and response (outgoing) cookies. It aims towards compliance with the standard cookie specifications listed below. More...
#include "apreq.h"
#include "apr_time.h"
Go to the source code of this file.
Data Structures | |
struct | apreq_cookie_t |
Cookie type, supporting both Netscape and RFC cookie specifications. More... | |
Defines | |
#define | APREQ_COOKIE_MAX_LENGTH 4096 |
Functions | |
static APR_INLINE apreq_cookie_t * | apreq_value_to_cookie (const char *val) |
static APR_INLINE unsigned | apreq_cookie_version (const apreq_cookie_t *c) |
static APR_INLINE void | apreq_cookie_version_set (apreq_cookie_t *c, unsigned v) |
static APR_INLINE unsigned | apreq_cookie_is_secure (const apreq_cookie_t *c) |
static APR_INLINE void | apreq_cookie_secure_on (apreq_cookie_t *c) |
static APR_INLINE void | apreq_cookie_secure_off (apreq_cookie_t *c) |
static APR_INLINE unsigned | apreq_cookie_is_httponly (const apreq_cookie_t *c) |
static APR_INLINE void | apreq_cookie_httponly_on (apreq_cookie_t *c) |
static APR_INLINE void | apreq_cookie_httponly_off (apreq_cookie_t *c) |
static APR_INLINE unsigned | apreq_cookie_is_tainted (const apreq_cookie_t *c) |
static APR_INLINE void | apreq_cookie_tainted_on (apreq_cookie_t *c) |
static APR_INLINE void | apreq_cookie_tainted_off (apreq_cookie_t *c) |
apr_status_t | apreq_parse_cookie_header (apr_pool_t *pool, apr_table_t *jar, const char *header) |
apreq_cookie_t * | apreq_cookie_make (apr_pool_t *pool, const char *name, const apr_size_t nlen, const char *value, const apr_size_t vlen) |
char * | apreq_cookie_as_string (const apreq_cookie_t *c, apr_pool_t *p) |
int | apreq_cookie_serialize (const apreq_cookie_t *c, char *buf, apr_size_t len) |
void | apreq_cookie_expires (apreq_cookie_t *c, const char *time_str) |
apreq_cookie.h describes a common server-side API for request (incoming) and response (outgoing) cookies. It aims towards compliance with the standard cookie specifications listed below.
http://www.ietf.org/rfc/rfc2109.txt
#define APREQ_COOKIE_MAX_LENGTH 4096 |
This macro is deprecated.
Maximum length of a single Set-Cookie(2) header.
char* apreq_cookie_as_string | ( | const apreq_cookie_t * | c, | |
apr_pool_t * | p | |||
) |
Returns a string that represents the cookie as it would appear in a valid "Set-Cookie*" header.
c | cookie. | |
p | pool which allocates the returned string. |
void apreq_cookie_expires | ( | apreq_cookie_t * | c, | |
const char * | time_str | |||
) |
Set the Cookie's expiration date.
c | The cookie. | |
time_str | If NULL, the Cookie's expiration date is unset, making it a session cookie. This means no "expires" or "max-age" attribute will appear in the cookie's serialized form. If time_str is not NULL, the expiration date will be reset to the offset (from now) represented by time_str. The time_str should be in a format that apreq_atoi64t() can understand, namely /[+-]?\d+\s*[YMDhms]/. |
static APR_INLINE void apreq_cookie_httponly_off | ( | apreq_cookie_t * | c | ) | [static] |
Turns off the cookie's HttpOnly flag.
static APR_INLINE void apreq_cookie_httponly_on | ( | apreq_cookie_t * | c | ) | [static] |
Sets the cookie's HttpOnly flag, meaning it is not accessible through client-side script in supported browsers.
static APR_INLINE unsigned apreq_cookie_is_httponly | ( | const apreq_cookie_t * | c | ) | [static] |
static APR_INLINE unsigned apreq_cookie_is_secure | ( | const apreq_cookie_t * | c | ) | [static] |
static APR_INLINE unsigned apreq_cookie_is_tainted | ( | const apreq_cookie_t * | c | ) | [static] |
apreq_cookie_t* apreq_cookie_make | ( | apr_pool_t * | pool, | |
const char * | name, | |||
const apr_size_t | nlen, | |||
const char * | value, | |||
const apr_size_t | vlen | |||
) |
Returns a new cookie, made from the argument list.
pool | Pool which allocates the cookie. | |
name | The cookie's name. | |
nlen | Length of name. | |
value | The cookie's value. | |
vlen | Length of value. |
static APR_INLINE void apreq_cookie_secure_off | ( | apreq_cookie_t * | c | ) | [static] |
Turns off the cookie's secure flag.
static APR_INLINE void apreq_cookie_secure_on | ( | apreq_cookie_t * | c | ) | [static] |
Sets the cookie's secure flag, meaning it only comes back over an SSL-encrypted connction.
int apreq_cookie_serialize | ( | const apreq_cookie_t * | c, | |
char * | buf, | |||
apr_size_t | len | |||
) |
Same functionality as apreq_cookie_as_string. Stores the string representation in buf, using up to len bytes in buf as storage. The return value has the same semantics as that of apr_snprintf, including the special behavior for a "len = 0" argument.
c | cookie. | |
buf | storage location for the result. | |
len | size of buf's storage area. |
static APR_INLINE void apreq_cookie_tainted_off | ( | apreq_cookie_t * | c | ) | [static] |
Turns off the cookie's tainted flag.
static APR_INLINE void apreq_cookie_tainted_on | ( | apreq_cookie_t * | c | ) | [static] |
Sets the cookie's tainted flag.
static APR_INLINE unsigned apreq_cookie_version | ( | const apreq_cookie_t * | c | ) | [static] |
static APR_INLINE void apreq_cookie_version_set | ( | apreq_cookie_t * | c, | |
unsigned | v | |||
) | [static] |
Sets the cookie's protocol version.
apr_status_t apreq_parse_cookie_header | ( | apr_pool_t * | pool, | |
apr_table_t * | jar, | |||
const char * | header | |||
) |
Parse a cookie header and store the cookies in an apr_table_t.
pool | pool which allocates the cookies | |
jar | table where parsed cookies are stored | |
header | the header value |
APREQ_ERROR_BADSEQ if an unparseable character sequence appears.
APREQ_ERROR_MISMATCH if an rfc-cookie attribute appears in a netscape cookie header.
APR_ENOTIMPL if an unrecognized rfc-cookie attribute appears.
APREQ_ERROR_NOTOKEN if a required token was not present.
APREQ_ERROR_BADCHAR if an unexpected token was present.
static APR_INLINE apreq_cookie_t* apreq_value_to_cookie | ( | const char * | val | ) | [static] |
Upgrades a jar's table values to apreq_cookie_t structs.