httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jim Jagielski <...@jagunet.com>
Subject [PATCH] Bugz 24483 for 1.3
Date Mon, 12 Jan 2004 14:16:16 GMT
Patch to close out Bugz 24483 for 1.3.29... basically
a backport of the 2.0 patch in the PR.

Index: src/modules/standard/mod_usertrack.c
===================================================================
RCS file: /home/cvs/apache-1.3/src/modules/standard/mod_usertrack.c,v
retrieving revision 1.58
diff -u -r1.58 mod_usertrack.c
--- src/modules/standard/mod_usertrack.c	1 Jan 2004 13:32:56 -0000	1.58
+++ src/modules/standard/mod_usertrack.c	12 Jan 2004 14:13:50 -0000
@@ -286,10 +286,29 @@
      return;
  }

-/* dcfg->regexp is "^cookie_name=([^;]+)|;[ \t]+cookie_name=([^;]+)",
- * which has three subexpressions, $0..$2 */
+/*
+ * dcfg->regexp is "^cookie_name=([^;]+)|;[ \t]+cookie_name=([^;]+)",
+ * which has three subexpressions, $0..$2
+ */
  #define NUM_SUBS 3

+static void set_and_comp_regexp(cookie_dir_rec *dcfg,
+                                pool *p,
+                                const char *cookie_name)
+{
+    /*
+     * The goal is to end up with this regexp,
+     * ^cookie_name=([^;]+)|;[\t]+cookie_name=([^;]+)
+     * with cookie_name obviously substituted either
+     * with the real cookie name set by the user in httpd.conf,
+     * or with the default COOKIE_NAME.
+     */
+    dcfg->regexp_string = ap_pstrcat(p, "^", cookie_name,
+                                     "=([^;]+)|;[ \t]+", cookie_name,
+                                     "=([^;]+)", NULL);
+    dcfg->regexp = ap_pregcomp(p, dcfg->regexp_string, REG_EXTENDED);
+}
+
  static int spot_cookie(request_rec *r)
  {
      cookie_dir_rec *dcfg = ap_get_module_config(r->per_dir_config,
@@ -353,6 +372,11 @@
      dcfg->style = CT_UNSET;
      dcfg->format = CF_NORMAL;
      dcfg->enabled = 0;
+    /*
+     * In case the user does not use the CookieName directive,
+     * we need to compile the regexp for the default cookie name.
+     */
+    set_and_comp_regexp(dcfg, p, COOKIE_NAME);
      return dcfg;
  }

@@ -437,18 +461,10 @@
  {
      cookie_dir_rec *dcfg = (cookie_dir_rec *) mconfig;

-    /* The goal is to end up with this regexp,
-     * ^cookie_name=([^;]+)|;[ \t]+cookie_name=([^;]+)
-     * with cookie_name
-     * obviously substituted with the real cookie name set by the
-     * user in httpd.conf. */
-    dcfg->regexp_string = ap_pstrcat(cmd->pool, "^", name,
-                                     "=([^;]+)|;[ \t]+", name,
-                                     "=([^;]+)", NULL);
-
      dcfg->cookie_name = ap_pstrdup(cmd->pool, name);

-    dcfg->regexp = ap_pregcomp(cmd->pool, dcfg->regexp_string, 
REG_EXTENDED);
+    set_and_comp_regexp(dcfg, cmd->pool, name);
+
      if (dcfg->regexp == NULL) {
  	return "Regular expression could not be compiled.";
      }


Mime
View raw message