You are viewing a plain text version of this content. The canonical link for it is here.
Posted to rivet-dev@tcl.apache.org by da...@apache.org on 2002/03/22 03:08:32 UTC

cvs commit: tcl-rivet/src TclWeb.h TclWebapache.c rivetCore.c

damonc      02/03/21 18:08:32

  Modified:    .        ChangeLog
               rivet/rivet-tcl cookie.tcl
               src      TclWeb.h TclWebapache.c rivetCore.c
  Log:
  * src/TclWebapache.c
  * src/TclWeb.h
      Added new command 'TclWeb_HeaderAdd'.
  
  * src/rivetCore.c
      Added 'add' option to headers command to add a header instead
      of just setting over one.
  
  * rivet/rivet-tcl/cookie.tcl
      The cookie command adds a header instead of setting one.  This
      allows multiple cookies in a single page.
  
  Revision  Changes    Path
  1.51      +14 -0     tcl-rivet/ChangeLog
  
  Index: ChangeLog
  ===================================================================
  RCS file: /home/cvs/tcl-rivet/ChangeLog,v
  retrieving revision 1.50
  retrieving revision 1.51
  diff -u -r1.50 -r1.51
  --- ChangeLog	22 Mar 2002 01:11:37 -0000	1.50
  +++ ChangeLog	22 Mar 2002 02:08:32 -0000	1.51
  @@ -1,6 +1,20 @@
   2002-03-21  Damon J. Courtney <da...@unreality.com>
   
   	* src/TclWebapache.c
  +	* src/TclWeb.h
  +	    Added new command 'TclWeb_HeaderAdd'.
  +
  +	* src/rivetCore.c
  +	    Added 'add' option to headers command to add a header instead
  +	    of just setting over one.
  +
  +	* rivet/rivet-tcl/cookie.tcl
  +	    The cookie command adds a header instead of setting one.  This
  +	    allows multiple cookies in a single page.
  +
  +2002-03-21  Damon J. Courtney <da...@unreality.com>
  +
  +	* src/TclWebapache.c
   	    If the header being set is Set-Cookie, we add it to the table
   	    instead of overwriting it.  This allows us to set more than
   	    one cookie per page, which is legal to all browsers.
  
  
  
  1.4       +1 -1      tcl-rivet/rivet/rivet-tcl/cookie.tcl
  
  Index: cookie.tcl
  ===================================================================
  RCS file: /home/cvs/tcl-rivet/rivet/rivet-tcl/cookie.tcl,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- cookie.tcl	15 Mar 2002 16:49:49 -0000	1.3
  +++ cookie.tcl	22 Mar 2002 02:08:32 -0000	1.4
  @@ -67,7 +67,7 @@
   
   	    append cookieValue [make_cookie_attributes params]
   
  -	    headers set $cookieKey $cookieValue
  +	    headers add $cookieKey $cookieValue
   	}
   
   	"get" {
  
  
  
  1.13      +12 -1     tcl-rivet/src/TclWeb.h
  
  Index: TclWeb.h
  ===================================================================
  RCS file: /home/cvs/tcl-rivet/src/TclWeb.h,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- TclWeb.h	14 Mar 2002 21:17:22 -0000	1.12
  +++ TclWeb.h	22 Mar 2002 02:08:32 -0000	1.13
  @@ -5,7 +5,7 @@
    * 	Common API layer.
    */
   
  -/* $Id: TclWeb.h,v 1.12 2002/03/14 21:17:22 damonc Exp $ */
  +/* $Id: TclWeb.h,v 1.13 2002/03/22 02:08:32 damonc Exp $ */
   
   /* Error wrappers  */
   #define ER1 "<hr><p><code><pre>\n"
  @@ -69,6 +69,17 @@
    */
   
   int TclWeb_HeaderSet(char *header, char *val, TclWebRequest *req);
  +
  +/*
  + *-----------------------------------------------------------------------------
  + *
  + * TclWeb_HeaderSet --
  + * Adds an HTTP headers.
  + *
  + *-----------------------------------------------------------------------------
  + */
  +
  +int TclWeb_HeaderAdd(char *header, char *val, TclWebRequest *req);
   
   
   /*
  
  
  
  1.24      +9 -11     tcl-rivet/src/TclWebapache.c
  
  Index: TclWebapache.c
  ===================================================================
  RCS file: /home/cvs/tcl-rivet/src/TclWebapache.c,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- TclWebapache.c	22 Mar 2002 01:11:37 -0000	1.23
  +++ TclWebapache.c	22 Mar 2002 02:08:32 -0000	1.24
  @@ -7,7 +7,7 @@
    * operations.
    */
   
  -/* $Id: TclWebapache.c,v 1.23 2002/03/22 01:11:37 damonc Exp $ */
  +/* $Id: TclWebapache.c,v 1.24 2002/03/22 02:08:32 damonc Exp $ */
   
   #include <tcl.h>
   
  @@ -105,16 +105,14 @@
   INLINE int
   TclWeb_HeaderSet(char *header, char *val, TclWebRequest *req)
   {
  -    /*
  -     * Since we can have multiple cookies, we want to check and see if
  -     * the header is a Set-Cookie.  If it is, do a table add, which
  -     * doesn't check to see if a key exists before adding it to the table.
  -     */
  -    if( !strcasecmp( header, "set-cookie" ) ) {
  -	ap_table_add(req->req->headers_out, header, val);
  -    } else {
  -	ap_table_set(req->req->headers_out, header, val);
  -    }
  +    ap_table_set(req->req->headers_out, header, val);
  +    return TCL_OK;
  +}
  +
  +INLINE int
  +TclWeb_HeaderAdd(char *header, char *val, TclWebRequest *req)
  +{
  +    ap_table_add(req->req->headers_out, header, val);
       return TCL_OK;
   }
   
  
  
  
  1.22      +10 -1     tcl-rivet/src/rivetCore.c
  
  Index: rivetCore.c
  ===================================================================
  RCS file: /home/cvs/tcl-rivet/src/rivetCore.c,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- rivetCore.c	15 Mar 2002 16:49:49 -0000	1.21
  +++ rivetCore.c	22 Mar 2002 02:08:32 -0000	1.22
  @@ -2,7 +2,7 @@
    * rivetCore.c - Core commands which are compiled into mod_rivet itself.
    */
   
  -/* $Id: rivetCore.c,v 1.21 2002/03/15 16:49:49 davidw Exp $ */
  +/* $Id: rivetCore.c,v 1.22 2002/03/22 02:08:32 damonc Exp $ */
   
   #include "httpd.h"
   #include "http_config.h"
  @@ -173,6 +173,15 @@
   	    return TCL_ERROR;
   	}
   	TclWeb_HeaderSet(Tcl_GetString(objv[2]), Tcl_GetString(objv[3]), globals->req);
  +    }
  +    else if (!strcmp("add", opt)) /* ### set ### */
  +    {
  +	if (objc != 4)
  +	{
  +	    Tcl_WrongNumArgs(interp, 2, objv, "headername value");
  +	    return TCL_ERROR;
  +	}
  +	TclWeb_HeaderAdd(Tcl_GetString(objv[2]), Tcl_GetString(objv[3]), globals->req);
       }
       else if (!strcmp("type", opt)) /* ### set ### */
       {
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: rivet-dev-unsubscribe@tcl.apache.org
For additional commands, e-mail: rivet-dev-help@tcl.apache.org