58#define APR_WANT_STRFUNC
68module AP_MODULE_DECLARE_DATA usertrack_module;
97#define COOKIE_NAME "Apache"
125 "%.2d-%s-%.2d %.2d:%.2d:%.2d GMT",
154 if (
dcfg->is_secure) {
158 if (
dcfg->is_httponly) {
177 const char *cookie_name)
180 const char *
sp = cookie_name;
214 "=([^;,]+)|[;,][ \t]*",
244 if (
regm[1].rm_so != -1) {
250 if (
regm[2].rm_so != -1) {
258 "Failed to extract cookie value (out of mem?)");
331 return "bad expires code, numeric value expected.";
336 return "bad expires code, missing <type>";
339 factor = 60 * 60 * 24 * 365;
341 factor = 60 * 60 * 24 * 30;
343 factor = 60 * 60 * 24 * 7;
345 factor = 60 * 60 * 24;
353 return "bad expires code, unrecognized type";
376 return "Regular expression could not be compiled.";
400 return "CookieDomain values may not be null";
402 if (
name[0] !=
'.') {
403 return "CookieDomain values must begin with a dot";
406 return "CookieDomain values must contain at least one embedded dot";
456 dcfg->samesite =
"SameSite=Lax";
458 dcfg->samesite =
"SameSite=None";
460 return "CookieSameSite accepts 'Strict', 'Lax', or 'None'";
469 "an expiry date code"),
471 "domain to which this cookie applies"),
473 "'Netscape', 'Cookie' (RFC2109), or 'Cookie2' (RFC2965)"),
476 "whether or not to enable cookies"),
478 "name of the tracking cookie"),
486 "is cookie http only"),
APR general purpose library routines.
apr_size_t const unsigned char unsigned int unsigned int d
APR Standard Headers Support.
#define AP_INIT_TAKE1(directive, func, mconfig, where, help)
#define ap_get_module_config(v, m)
#define AP_DECLARE_MODULE(foo)
#define AP_INIT_FLAG(directive, func, mconfig, where, help)
const char * ap_set_flag_slot(cmd_parms *cmd, void *struct_ptr, int arg)
void ap_hook_fixups(ap_HOOK_fixups_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
#define APR_HOOK_REALLY_FIRST
#define HTTP_INTERNAL_SERVER_ERROR
#define STANDARD20_MODULE_STUFF
void ap_random_insecure_bytes(void *buf, apr_size_t size)
#define ap_strchr_c(s, c)
char * ap_pregsub(apr_pool_t *p, const char *input, const char *source, apr_size_t nmatch, ap_regmatch_t pmatch[])
ap_regex_t * ap_pregcomp(apr_pool_t *p, const char *pattern, int cflags)
char * ap_getword_conf(apr_pool_t *p, const char **line)
int strcasecmp(const char *a, const char *b)
int strncasecmp(const char *a, const char *b, size_t n)
apr_interval_time_t apr_int32_t * num
#define apr_pcalloc(p, size)
apr_int32_t apr_int32_t apr_int32_t err
APR_DECLARE_DATA const char apr_month_snames[12][4]
APR_DECLARE_DATA const char apr_day_snames[7][4]
#define apr_time_from_sec(sec)
static void make_cookie(request_rec *r)
static void * make_cookie_dir(apr_pool_t *p, char *d)
static int spot_cookie(request_rec *r)
static const command_rec cookie_log_cmds[]
static void set_and_comp_regexp(cookie_dir_rec *dcfg, apr_pool_t *p, const char *cookie_name)
static const char * set_cookie_exp(cmd_parms *parms, void *dummy, const char *arg)
static void register_hooks(apr_pool_t *p)
static const char * set_cookie_domain(cmd_parms *cmd, void *mconfig, const char *name)
static const char * set_cookie_name(cmd_parms *cmd, void *mconfig, const char *name)
static const char * set_cookie_style(cmd_parms *cmd, void *mconfig, const char *name)
static void * make_cookie_log_state(apr_pool_t *p, server_rec *s)
static const char * set_samesite_value(cmd_parms *cmd, void *mconfig, const char *name)
const char * cookie_domain
A structure that represents the current request.
apr_table_t * err_headers_out
struct ap_conf_vector_t * per_dir_config
A structure to store information for each virtual server.
struct ap_conf_vector_t * module_config