You are viewing a plain text version of this content. The canonical link for it is here.
Posted to apreq-cvs@httpd.apache.org by jo...@apache.org on 2003/12/31 17:05:00 UTC

cvs commit: httpd-apreq-2/src apreq.c apreq_cookie.c

joes        2003/12/31 08:05:00

  Modified:    .        CHANGES
               glue/perl/t/response/TestApReq cookie.pm
               src      apreq.c apreq_cookie.c
  Log:
  Must use apr_time_from_sec to convert seconds to apr_time_t values. Without it cookie expires attributes always used the current date, which (erroneously) instructs the UA to expire the cookie immediately.
  
  Revision  Changes    Path
  1.24      +12 -1     httpd-apreq-2/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /home/cvs/httpd-apreq-2/CHANGES,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- CHANGES	11 Dec 2003 16:16:42 -0000	1.23
  +++ CHANGES	31 Dec 2003 16:05:00 -0000	1.24
  @@ -1,7 +1,16 @@
   /** @page CHANGES
   
  +
   @section v2_03_dev Changes with libapreq2-2.03-dev
   
  +
  +- December 31, 2003 - C API [Swen Schillig, joes]
  +
  +Fixed bug in calculation of Netscape cookie expiration dates.
  +apr_time_t is measured in microseconds, not seconds, which
  +threw off the arithmetic; apr_time_from_sec was needed for
  +the conversion.
  +
   - December 11, 2003 - C API [Max Kellermann]
   
   Fix segfault caused by invalid %-escape sequence in query string.
  @@ -17,6 +26,7 @@
   
   @section v2_01_dev Changes with libapreq2-2.01-dev
   
  +
   - November 7, 2003 - build system [joes]
   
   Skip Apache::Test tests in env/ when Apache::Test is unavailable.
  @@ -39,8 +49,10 @@
   environment at runtime (determining the environment at load-time
   was problematic on non-ELF systems).
   
  +
   @section v2_0_0 Changes with libapreq2-2.00-dev
   
  +
   - October 24, 2003 - C API: libapreq_cgi.c [randyk, joes]
   
   CGI environment defined by env/libapreq_cgi.c is functional
  @@ -93,7 +105,6 @@
   If the source and destination strings are represented by the same
   pointer - e.g. if called as apreq_unescape(s) - string s is modified
   incorrectly in general.  Patch includes new unit test.
  -
   
   - July 16, 2003 - Perl API [joes]
   
  
  
  
  1.10      +1 -1      httpd-apreq-2/glue/perl/t/response/TestApReq/cookie.pm
  
  Index: cookie.pm
  ===================================================================
  RCS file: /home/cvs/httpd-apreq-2/glue/perl/t/response/TestApReq/cookie.pm,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- cookie.pm	13 Nov 2003 13:16:35 -0000	1.9
  +++ cookie.pm	31 Dec 2003 16:05:00 -0000	1.10
  @@ -32,13 +32,13 @@
       else {
           my @expires;
           @expires = ("expires", $req->param('expires')) if $req->param('expires');
  -
           my $cookie = Apache::Cookie->new($r, name => "foo",
                                               value => "bar", @expires);
           if ($test eq "bake") {
               $cookie->bake;
           }
           elsif ($test eq "bake2") {
  +            $cookie->set_attr(version => 1);
               $cookie->bake2;
           }
           $r->print($cookie->value);
  
  
  
  1.30      +1 -1      httpd-apreq-2/src/apreq.c
  
  Index: apreq.c
  ===================================================================
  RCS file: /home/cvs/httpd-apreq-2/src/apreq.c,v
  retrieving revision 1.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- apreq.c	16 Nov 2003 04:03:46 -0000	1.29
  +++ apreq.c	31 Dec 2003 16:05:00 -0000	1.30
  @@ -143,7 +143,7 @@
   
       when = apr_time_now();
       if (strcasecmp(time_str,"now")) 
  -        when += apreq_atoi64t(time_str);
  +        when += apr_time_from_sec(apreq_atoi64t(time_str));
   
       if ( apr_time_exp_gmt(&tms, when) != APR_SUCCESS )
           return NULL;
  
  
  
  1.21      +2 -2      httpd-apreq-2/src/apreq_cookie.c
  
  Index: apreq_cookie.c
  ===================================================================
  RCS file: /home/cvs/httpd-apreq-2/src/apreq_cookie.c,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- apreq_cookie.c	26 Sep 2003 13:58:33 -0000	1.20
  +++ apreq_cookie.c	31 Dec 2003 16:05:00 -0000	1.21
  @@ -89,7 +89,7 @@
       if (!strcasecmp(time_str, "now"))
           c->max_age = 0;
       else
  -        c->max_age = apreq_atoi64t(time_str);
  +        c->max_age = apr_time_from_sec(apreq_atoi64t(time_str));
   }
   
   static int has_rfc_cookie(void *ctx, const char *key, const char *val)
  @@ -478,7 +478,7 @@
       return apr_snprintf(buf, len, format, c->v.name, c->v.data, c->version,
                           NULL2EMPTY(c->path), NULL2EMPTY(c->domain), 
                           NULL2EMPTY(c->port), NULL2EMPTY(c->comment), 
  -                        NULL2EMPTY(c->commentURL), c->max_age);
  +                        NULL2EMPTY(c->commentURL), apr_time_sec(c->max_age));
   }