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