Cookies and Jars.
More...
#include "apreq.h"
#include "apr_time.h"
Go to the source code of this file.
|
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) |
|
Cookies and Jars.
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.
- See also
- http://wp.netscape.com/newsref/std/cookie_spec.html
-
http://www.ietf.org/rfc/rfc2109.txt
-
http://www.ietf.org/rfc/rfc2964.txt
-
http://www.ietf.org/rfc/rfc2965.txt
◆ APREQ_COOKIE_MAX_LENGTH
#define APREQ_COOKIE_MAX_LENGTH 4096 |
This macro is deprecated.
Maximum length of a single Set-Cookie(2) header.
◆ apreq_cookie_as_string()
Returns a string that represents the cookie as it would appear in a valid "Set-Cookie*" header.
- Parameters
-
c | cookie. |
p | pool which allocates the returned string. |
- Returns
- header string.
◆ apreq_cookie_expires()
void apreq_cookie_expires |
( |
apreq_cookie_t * |
c, |
|
|
const char * |
time_str |
|
) |
| |
Set the Cookie's expiration date.
- Parameters
-
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]/. |
◆ apreq_cookie_httponly_off()
static APR_INLINE void apreq_cookie_httponly_off |
( |
apreq_cookie_t * |
c | ) |
|
|
static |
Turns off the cookie's HttpOnly flag.
◆ apreq_cookie_httponly_on()
Sets the cookie's HttpOnly flag, meaning it is not accessible through client-side script in supported browsers.
◆ apreq_cookie_is_httponly()
static APR_INLINE unsigned apreq_cookie_is_httponly |
( |
const apreq_cookie_t * |
c | ) |
|
|
static |
- Returns
- 1 if the HttpOnly flag is set, 0 otherwise.
◆ apreq_cookie_is_secure()
static APR_INLINE unsigned apreq_cookie_is_secure |
( |
const apreq_cookie_t * |
c | ) |
|
|
static |
- Returns
- 1 if the secure flag is set, 0 otherwise.
◆ apreq_cookie_is_tainted()
static APR_INLINE unsigned apreq_cookie_is_tainted |
( |
const apreq_cookie_t * |
c | ) |
|
|
static |
- Returns
- 1 if the taint flag is set, 0 otherwise.
◆ apreq_cookie_make()
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.
- Parameters
-
pool | Pool which allocates the cookie. |
name | The cookie's name. |
nlen | Length of name. |
value | The cookie's value. |
vlen | Length of value. |
- Returns
- the new cookie
◆ apreq_cookie_secure_off()
Turns off the cookie's secure flag.
◆ apreq_cookie_secure_on()
Sets the cookie's secure flag, meaning it only comes back over an SSL-encrypted connction.
◆ apreq_cookie_serialize()
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.
- Parameters
-
c | cookie. |
buf | storage location for the result. |
len | size of buf's storage area. |
- Returns
- size of resulting header string.
◆ apreq_cookie_tainted_off()
Turns off the cookie's tainted flag.
◆ apreq_cookie_tainted_on()
Sets the cookie's tainted flag.
◆ apreq_cookie_version()
static APR_INLINE unsigned apreq_cookie_version |
( |
const apreq_cookie_t * |
c | ) |
|
|
static |
- Returns
- 1 if this is an RFC cookie, 0 if its a Netscape cookie.
◆ apreq_cookie_version_set()
static APR_INLINE void apreq_cookie_version_set |
( |
apreq_cookie_t * |
c, |
|
|
unsigned |
v |
|
) |
| |
|
static |
Sets the cookie's protocol version.
◆ apreq_parse_cookie_header()
Parse a cookie header and store the cookies in an apr_table_t.
- Parameters
-
pool | pool which allocates the cookies |
jar | table where parsed cookies are stored |
header | the header value |
- Returns
- APR_SUCCESS.
-
APREQ_ERROR_BADSEQ if an unparsable 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.
◆ apreq_value_to_cookie()
static APR_INLINE apreq_cookie_t* apreq_value_to_cookie |
( |
const char * |
val | ) |
|
|
static |