You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(4) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(54) |
Feb
(71) |
Mar
(93) |
Apr
(48) |
May
(53) |
Jun
(33) |
Jul
(19) |
Aug
(39) |
Sep
(35) |
Oct
(36) |
Nov
(33) |
Dec
(13) |
| 2004 |
Jan
(10) |
Feb
(1) |
Mar
(17) |
Apr
(9) |
May
(40) |
Jun
(132) |
Jul
(133) |
Aug
(178) |
Sep
(104) |
Oct
(31) |
Nov
(80) |
Dec
(18) |
| 2005 |
Jan
(54) |
Feb
(9) |
Mar
(35) |
Apr
(2) |
May
(20) |
Jun
(3) |
Jul
(45) |
Aug
(202) |
Sep
(2) |
Oct
(26) |
Nov
|
Dec
(4) |
| 2006 |
Jan
|
Feb
(7) |
Mar
(8) |
Apr
(66) |
May
(9) |
Jun
(40) |
Jul
(4) |
Aug
(4) |
Sep
|
Oct
|
Nov
(1) |
Dec
(4) |
| 2007 |
Jan
(2) |
Feb
(14) |
Mar
(4) |
Apr
(1) |
May
(5) |
Jun
(5) |
Jul
|
Aug
(8) |
Sep
(3) |
Oct
(7) |
Nov
|
Dec
|
| 2008 |
Jan
(6) |
Feb
|
Mar
(1) |
Apr
(8) |
May
(46) |
Jun
(4) |
Jul
(1) |
Aug
|
Sep
(9) |
Oct
(3) |
Nov
|
Dec
(5) |
| 2009 |
Jan
(9) |
Feb
(2) |
Mar
(3) |
Apr
|
May
(6) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(11) |
| 2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(3) |
Jul
(10) |
Aug
(5) |
Sep
(1) |
Oct
(13) |
Nov
|
Dec
(4) |
| 2012 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(4) |
Jun
|
Jul
|
Aug
|
Sep
(5) |
Oct
|
Nov
|
Dec
|
| 2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(2) |
Dec
|
| 2014 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(5) |
|
From: Jeff R. <dv...@us...> - 2011-10-13 23:42:14
|
Update of /cvsroot/aolserver/aolserver In directory vz-cvs-4.sog:/tmp/cvs-serv17803 Modified Files: ChangeLog Log Message: add tuning tweak and config variable to let driver accept more than one connection per spin. SF RFE #1014273 Index: ChangeLog =================================================================== RCS file: /cvsroot/aolserver/aolserver/ChangeLog,v retrieving revision 1.403 retrieving revision 1.404 diff -C2 -d -r1.403 -r1.404 *** ChangeLog 11 Oct 2011 22:27:40 -0000 1.403 --- ChangeLog 13 Oct 2011 23:42:11 -0000 1.404 *************** *** 1,2 **** --- 1,8 ---- + 2011-10-13 Jeff Rogers <dv...@di...> + * nsd/nsd.h: + * nsd/driver.c: add tuning tweak and config variable to let + driver accept more than one connection per spin. + SF RFE #1014273 + 2011-10-11 Jeff Rogers <dv...@di...> * nsd/op.c: handle internal error from redirect recursion overflow |
|
From: Jeff R. <dv...@us...> - 2011-10-11 22:27:53
|
Update of /cvsroot/aolserver/aolserver/nsd
In directory vz-cvs-4.sog:/tmp/cvs-serv6096/nsd
Modified Files:
op.c
Log Message:
handle internal error from redirect recursion overflow
directly instead of redirecting to internal error page. Prevents
error displaying error page from crashing server.
Index: op.c
===================================================================
RCS file: /cvsroot/aolserver/aolserver/nsd/op.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -C2 -d -r1.18 -r1.19
*** op.c 11 Oct 2011 08:03:27 -0000 1.18
--- op.c 11 Oct 2011 22:27:51 -0000 1.19
***************
*** 247,251 ****
"exceeded recursion limit of %d",
conn->request->method, conn->request->url, MAX_RECURSION);
! return Ns_ConnReturnInternalError(conn);
}
--- 247,253 ----
"exceeded recursion limit of %d",
conn->request->method, conn->request->url, MAX_RECURSION);
! return Ns_ConnReturnNotice(conn, 500, "Server Error",
! "The requested URL cannot be accessed "
! "due to a system error on this server.");
}
|
|
From: Jeff R. <dv...@us...> - 2011-10-11 22:27:42
|
Update of /cvsroot/aolserver/aolserver In directory vz-cvs-4.sog:/tmp/cvs-serv6014 Modified Files: ChangeLog Log Message: handle internal error from redirect recursion overflow directly instead of redirecting to internal error page. Prevents error displaying error page from crashing server. Index: ChangeLog =================================================================== RCS file: /cvsroot/aolserver/aolserver/ChangeLog,v retrieving revision 1.402 retrieving revision 1.403 diff -C2 -d -r1.402 -r1.403 *** ChangeLog 11 Oct 2011 08:03:09 -0000 1.402 --- ChangeLog 11 Oct 2011 22:27:40 -0000 1.403 *************** *** 1,3 **** --- 1,8 ---- 2011-10-11 Jeff Rogers <dv...@di...> + * nsd/op.c: handle internal error from redirect recursion overflow + directly instead of redirecting to internal error page. Prevents + error displaying error page from crashing server. + + 2011-10-11 Jeff Rogers <dv...@di...> * doc/Ns_Filter.3: * doc/ns_filter.n: |
Update of /cvsroot/aolserver/aolserver/nsd
In directory vz-cvs-4.sog:/tmp/cvs-serv9402/nsd
Modified Files:
conn.c connio.c driver.c filter.c nsd.h op.c queue.c server.c
tclrequest.c
Log Message:
add various functions, mostly from SF RFEs -
pre-write filter, response content modification,
insert/append filter, priority filters, ns_conn gzip flag,
re-run filters on redirect with new config option "filterredirect",
add new constants, fix STREQ macro
Index: nsd.h
===================================================================
RCS file: /cvsroot/aolserver/aolserver/nsd/nsd.h,v
retrieving revision 1.124
retrieving revision 1.125
diff -C2 -d -r1.124 -r1.125
*** nsd.h 7 Oct 2011 17:06:30 -0000 1.124
--- nsd.h 11 Oct 2011 08:03:27 -0000 1.125
***************
*** 513,516 ****
--- 513,522 ----
/*
+ * output buffers, used if needed
+ */
+ char *sbuf; /* pointer to content requested to be sent */
+ Tcl_DString *rbuf; /* buffer for response content. */
+
+ /*
* The following offsets are used to manage the
* buffer read-ahead process.
***************
*** 585,588 ****
--- 591,595 ----
#define SERV_NOTICEDETAIL 0x0008 /* Add detail to notice messages. */
#define SERV_GZIP 0x0010 /* Enable GZIP compression. */
+ #define SERV_FILTERREDIRECT 0x0020 /* re-run filters on redirects */
/*
***************
*** 1099,1102 ****
--- 1106,1110 ----
extern int NsConnRunProxyRequest(Ns_Conn *conn);
+ extern int NsConnRunDirectRequest(Ns_Conn *conn);
#endif
Index: conn.c
===================================================================
RCS file: /cvsroot/aolserver/aolserver/nsd/conn.c,v
retrieving revision 1.51
retrieving revision 1.52
diff -C2 -d -r1.51 -r1.52
*** conn.c 5 Aug 2011 11:49:45 -0000 1.51
--- conn.c 11 Oct 2011 08:03:27 -0000 1.52
***************
*** 1006,1009 ****
--- 1006,1065 ----
*----------------------------------------------------------------------
*
+ * Ns_ConnGetResponseContent
+ * Ns_ConnSetResponseContent
+ * Ns_ConnAppendResponseContent
+ *
+ * get, set, or append to the response content
+ *
+ * Results:
+ * the current content buffer
+ *
+ * Side effects:
+ * None.
+ *
+ *----------------------------------------------------------------------
+ */
+ char *Ns_ConnGetResponseContent(Ns_Conn *conn)
+ {
+ Conn *connPtr = (Conn *) conn;
+
+ if (connPtr->rbuf!= NULL) {
+ return Tcl_DStringValue(connPtr->rbuf);
+ } else {
+ return connPtr->sbuf;
+ }
+ }
+
+ char *Ns_ConnSetResponseContent(Ns_Conn *conn, char *content)
+ {
+ Conn *connPtr = (Conn *) conn;
+
+ if (connPtr->rbuf == NULL) {
+ connPtr->rbuf=ns_malloc(sizeof(Tcl_DString));
+ Tcl_DStringInit(connPtr->rbuf);
+ }
+ Tcl_DStringSetLength(connPtr->rbuf,0);
+ Tcl_DStringAppend(connPtr->rbuf, content, -1);
+ return Tcl_DStringValue(connPtr->rbuf);
+ }
+
+ char *Ns_ConnAppendResponseContent(Ns_Conn *conn, char *content)
+ {
+ Conn *connPtr = (Conn *) conn;
+
+ if (connPtr->rbuf == NULL) {
+ connPtr->rbuf=ns_malloc(sizeof(Tcl_DString));
+ Tcl_DStringInit(connPtr->rbuf);
+ Tcl_DStringAppend(connPtr->rbuf, connPtr->sbuf, -1);
+ }
+ Tcl_DStringAppend(connPtr->rbuf, content, -1);
+ return Tcl_DStringValue(connPtr->rbuf);
+ }
+
+
+
+ /*
+ *----------------------------------------------------------------------
+ *
* NsTclConnObjCmd --
*
***************
*** 1044,1048 ****
"query", "request", "server", "sock", "start", "status",
"url", "urlc", "urlencoding", "urlv", "version",
! "write_encoded", "interp", NULL
};
enum {
--- 1100,1104 ----
"query", "request", "server", "sock", "start", "status",
"url", "urlc", "urlencoding", "urlv", "version",
! "write_encoded", "interp","gzip","responsecontent", NULL
};
enum {
***************
*** 1055,1059 ****
CProtocolIdx, CQueryIdx, CRequestIdx, CServerIdx, CSockIdx,
CStartIdx, CStatusIdx, CUrlIdx, CUrlcIdx, CUrlEncodingIdx,
! CUrlvIdx, CVersionIdx, CWriteEncodedIdx, CInterpIdx
} opt;
--- 1111,1116 ----
CProtocolIdx, CQueryIdx, CRequestIdx, CServerIdx, CSockIdx,
CStartIdx, CStatusIdx, CUrlIdx, CUrlcIdx, CUrlEncodingIdx,
! CUrlvIdx, CVersionIdx, CWriteEncodedIdx, CInterpIdx,
! CGzipIdx, CRespContentIdx
} opt;
***************
*** 1394,1397 ****
--- 1451,1475 ----
Tcl_SetLongObj(result, (long) interp);
break;
+
+ case CGzipIdx:
+ if (objc > 2) {
+ int flag;
+ if (Tcl_GetBooleanFromObj(interp, objv[2], &flag) != TCL_OK) {
+ return TCL_ERROR;
+ }
+ Ns_ConnSetGzipFlag(conn, flag);
+ }
+ Tcl_SetIntObj(result, Ns_ConnGetGzipFlag(conn));
+ break;
+
+ case CRespContentIdx:
+ if (objc == 2) {
+ Tcl_SetResult(interp, Ns_ConnGetResponseContent(connPtr), TCL_STATIC);
+ } else if (objc == 3) {
+ Tcl_SetResult(interp, Ns_ConnSetResponseContent(connPtr, Tcl_GetString(objv[2])), TCL_STATIC);
+ } else {
+ Tcl_WrongNumArgs(interp, 2, objv, "?value?");
+ return TCL_ERROR;
+ }
}
***************
*** 1640,1643 ****
--- 1718,1724 ----
connPtr->sockPtr->sock = sock;
}
+ if (chan != NULL) {
+ Tcl_Ungets(chan,connPtr->content, connPtr->avail, 0);
+ }
return chan;
Index: connio.c
===================================================================
RCS file: /cvsroot/aolserver/aolserver/nsd/connio.c,v
retrieving revision 1.28
retrieving revision 1.29
diff -C2 -d -r1.28 -r1.29
*** connio.c 8 Dec 2009 04:12:19 -0000 1.28
--- connio.c 11 Oct 2011 08:03:27 -0000 1.29
***************
*** 136,139 ****
--- 136,149 ----
int status;
+ connPtr->sbuf=buf;
+ if (NsRunFilters((Ns_Conn *) connPtr, NS_FILTER_PRE_WRITE) != NS_OK) {
+ return NS_ERROR;
+ }
+ if (connPtr->rbuf != NULL) {
+ /* the content was set by pre-write filters */
+ buf=Tcl_DStringValue(connPtr->rbuf);
+ len=Tcl_DStringLength(connPtr->rbuf);
+ }
+
Tcl_DStringInit(&enc);
Tcl_DStringInit(&gzip);
Index: op.c
===================================================================
RCS file: /cvsroot/aolserver/aolserver/nsd/op.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -C2 -d -r1.17 -r1.18
*** op.c 16 Jul 2011 09:25:29 -0000 1.17
--- op.c 11 Oct 2011 08:03:27 -0000 1.18
***************
*** 291,295 ****
{
Conn *connPtr = (Conn *) conn;
- int status;
++connPtr->recursionCount;
--- 291,294 ----
***************
*** 305,328 ****
*/
! status = Ns_AuthorizeRequest(Ns_ConnServer(conn), conn->request->method,
! conn->request->url, conn->authUser,
! conn->authPasswd, Ns_ConnPeer(conn));
! switch (status) {
! case NS_OK:
! status = Ns_ConnRunRequest(conn);
! break;
! case NS_FORBIDDEN:
! status = Ns_ConnReturnForbidden(conn);
! break;
! case NS_UNAUTHORIZED:
! status = Ns_ConnReturnUnauthorized(conn);
! break;
! case NS_ERROR:
! default:
! status = Ns_ConnReturnInternalError(conn);
! break;
! }
!
! return status;
}
--- 304,308 ----
*/
! return NsConnRunDirectRequest(conn);
}
***************
*** 472,475 ****
--- 452,527 ----
*----------------------------------------------------------------------
*
+ * NsConnRunDirectRequest --
+ *
+ * runs pre/post-auth filters and main connection
+ *
+ * Results:
+ * Standard request procedure result, normally NS_OK.
+ *
+ * Side effects:
+ * Depends on request procedure.
+ *
+ *----------------------------------------------------------------------
+ */
+
+ int NsConnRunDirectRequest(Ns_Conn *conn)
+ {
+ int status;
+ Conn *connPtr = (Conn *) conn;
+
+ /*
+ * always run pre/post-auth filters on initial request;
+ * if this is an internal redirect then only run them
+ * if the "filterredirect" option is set
+ */
+ int runFilters = (connPtr->recursionCount == 0 ||
+ connPtr->servPtr->opts.flags & SERV_FILTERREDIRECT);
+
+ status = runFilters ?
+ NsRunFilters(conn, NS_FILTER_PRE_AUTH) :
+ NS_OK;
+ if (status == NS_OK) {
+ status = Ns_AuthorizeRequest(Ns_ConnServer(conn),
+ conn->request->method, conn->request->url,
+ conn->authUser, conn->authPasswd, Ns_ConnPeer(conn));
+ switch (status) {
+ case NS_OK:
+ status = runFilters ?
+ NsRunFilters(conn, NS_FILTER_POST_AUTH) :
+ NS_OK;
+ if (status == NS_OK) {
+ status = Ns_ConnRunRequest(conn);
+ }
+ break;
+
+ case NS_FORBIDDEN:
+ Ns_ConnReturnForbidden(conn);
+ break;
+
+ case NS_UNAUTHORIZED:
+ Ns_ConnReturnUnauthorized(conn);
+ break;
+
+ case NS_ERROR:
+ default:
+ Ns_ConnReturnInternalError(conn);
+ break;
+ }
+ } else if (status != NS_FILTER_RETURN) {
+ /* if not ok or filter_return, then the pre-auth filter coughed
+ * an error. We are not going to proceed, but also we
+ * can't count on the filter to have sent a response
+ * back to the client. So, send an error response.
+ */
+ Ns_ConnReturnInternalError(conn);
+ status = NS_FILTER_RETURN; /* to allow tracing to happen */
+ }
+ return status;
+ }
+
+
+ /*
+ *----------------------------------------------------------------------
+ *
* FreeReq --
*
Index: filter.c
===================================================================
RCS file: /cvsroot/aolserver/aolserver/nsd/filter.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** filter.c 28 Sep 2002 19:23:39 -0000 1.10
--- filter.c 11 Oct 2011 08:03:27 -0000 1.11
***************
*** 58,61 ****
--- 58,63 ----
} Trace;
+ #define FILTER_GETPRIO(when) ((signed char)((when & 0xFF000000) >> 24))
+
static Trace *NewTrace(Ns_TraceProc *proc, void *arg);
static void RunTraces(Ns_Conn *conn, Trace *firstPtr);
***************
*** 96,104 ****
fPtr->when = when;
fPtr->arg = arg;
- fPtr->nextPtr = NULL;
fPtrPtr = &servPtr->filter.firstFilterPtr;
! while (*fPtrPtr != NULL) {
fPtrPtr = &((*fPtrPtr)->nextPtr);
}
*fPtrPtr = fPtr;
return (void *) fPtr;
--- 98,115 ----
fPtr->when = when;
fPtr->arg = arg;
fPtrPtr = &servPtr->filter.firstFilterPtr;
! /* locate the first filter at this priority */
! while (*fPtrPtr != NULL
! && FILTER_GETPRIO(fPtr->when) > FILTER_GETPRIO((*fPtrPtr)->when)) {
fPtrPtr = &((*fPtrPtr)->nextPtr);
}
+ /* if appending, locate last filter in the same priority group */
+ if (!(when & NS_FILTER_INSERT)) {
+ while (*fPtrPtr != NULL
+ && FILTER_GETPRIO(fPtr->when) == FILTER_GETPRIO((*fPtrPtr)->when)) {
+ fPtrPtr = &((*fPtrPtr)->nextPtr);
+ }
+ }
+ fPtr->nextPtr = *fPtrPtr;
*fPtrPtr = fPtr;
return (void *) fPtr;
Index: server.c
===================================================================
RCS file: /cvsroot/aolserver/aolserver/nsd/server.c,v
retrieving revision 1.50
retrieving revision 1.51
diff -C2 -d -r1.50 -r1.51
*** server.c 7 Oct 2011 17:06:31 -0000 1.50
--- server.c 11 Oct 2011 08:03:27 -0000 1.51
***************
*** 271,274 ****
--- 271,277 ----
servPtr->opts.flags |= SERV_NOTICEDETAIL;
}
+ if (!Ns_ConfigGetBool(path, "filterredirect", &i) || i) {
+ servPtr->opts.flags |= SERV_FILTERREDIRECT;
+ }
p = Ns_ConfigGetValue(path, "headercase");
if (p != NULL && STRIEQ(p, "tolower")) {
Index: queue.c
===================================================================
RCS file: /cvsroot/aolserver/aolserver/nsd/queue.c,v
retrieving revision 1.50
retrieving revision 1.51
diff -C2 -d -r1.50 -r1.51
*** queue.c 5 Aug 2011 11:49:45 -0000 1.50
--- queue.c 11 Oct 2011 08:03:27 -0000 1.51
***************
*** 597,635 ****
status = NsConnRunProxyRequest((Ns_Conn *) connPtr);
} else {
! status = NsRunFilters(conn, NS_FILTER_PRE_AUTH);
! if (status == NS_OK) {
! status = Ns_AuthorizeRequest(servPtr->server,
! connPtr->request->method, connPtr->request->url,
! connPtr->authUser, connPtr->authPasswd, connPtr->peer);
! switch (status) {
! case NS_OK:
! status = NsRunFilters(conn, NS_FILTER_POST_AUTH);
! if (status == NS_OK) {
! status = Ns_ConnRunRequest(conn);
! }
! break;
!
! case NS_FORBIDDEN:
! Ns_ConnReturnForbidden(conn);
! break;
!
! case NS_UNAUTHORIZED:
! Ns_ConnReturnUnauthorized(conn);
! break;
!
! case NS_ERROR:
! default:
! Ns_ConnReturnInternalError(conn);
! break;
! }
! } else if (status != NS_FILTER_RETURN) {
! /* if not ok or filter_return, then the pre-auth filter coughed
! * an error. We are not going to proceed, but also we
! * can't count on the filter to have sent a response
! * back to the client. So, send an error response.
! */
! Ns_ConnReturnInternalError(conn);
! status = NS_FILTER_RETURN; /* to allow tracing to happen */
! }
}
Ns_ConnClose(conn);
--- 597,601 ----
status = NsConnRunProxyRequest((Ns_Conn *) connPtr);
} else {
! status = NsConnRunDirectRequest((Ns_Conn *) connPtr);
}
Ns_ConnClose(conn);
Index: tclrequest.c
===================================================================
RCS file: /cvsroot/aolserver/aolserver/nsd/tclrequest.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -d -r1.14 -r1.15
*** tclrequest.c 8 Dec 2009 04:12:19 -0000 1.14
--- tclrequest.c 11 Oct 2011 08:03:27 -0000 1.15
***************
*** 258,279 ****
int when, i;
static CONST char *wopt[] = {
! "read", "write", "prequeue", "preauth", "postauth", "trace", NULL
};
enum {
! ReadIdx, WriteIdx, PreQueueIdx, PreAuthIdx, PostAuthIdx, TraceIdx,
} widx;
if (objc < 2) {
! Tcl_WrongNumArgs(interp, 1, objv, "option ?args?");
return TCL_ERROR;
}
! if (objc != 5 && objc != 6) {
! Tcl_WrongNumArgs(interp, 1, objv, "when method url script ?arg?");
! return TCL_ERROR;
}
if (Tcl_ListObjGetElements(interp, objv[1], &lobjc, &lobjv) != TCL_OK) {
return TCL_ERROR;
}
- when = 0;
for (i = 0; i < lobjc; ++i) {
if (Tcl_GetIndexFromObj(interp, lobjv[i], wopt, "when", 0,
--- 258,305 ----
int when, i;
static CONST char *wopt[] = {
! "read", "prewrite", "write", "prequeue", "preauth", "postauth", "trace", NULL
};
enum {
! ReadIdx, PreWriteIdx, WriteIdx, PreQueueIdx, PreAuthIdx, PostAuthIdx, TraceIdx,
} widx;
if (objc < 2) {
! error:
! Tcl_SetResult(interp, "wrong arguments: should be ns_register_filter "
! "?-insert? ?-priority num? when method url script ?arg?",
! TCL_STATIC);
return TCL_ERROR;
}
! when = 0;
! for (i = 1; i < objc; i++) {
! char *arg = Tcl_GetString(objv[i]);
! if (*arg != '-') break;
! if (STRIEQ(arg, "-insert")) {
! when |= NS_FILTER_INSERT;
! } else if (STRIEQ(arg, "-priority")) {
! if (++i >= objc) goto error;
! int prio;
! if (Tcl_GetIntFromObj(interp,objv[i],&prio) != TCL_OK) {
! return TCL_ERROR;
! }
! if (prio < -128 || prio > 127) {
! Tcl_SetResult(interp, "priority must be in range -128 .. 127",
! TCL_STATIC);
! return TCL_ERROR;
! }
! when |= NS_FILTER_PRIORITY(prio);
! } else {
! goto error;
! }
! }
! objc-=(i-1);
! objv+=(i-1);
!
! if (objc < 5 || objc > 6) {
! goto error;
}
if (Tcl_ListObjGetElements(interp, objv[1], &lobjc, &lobjv) != TCL_OK) {
return TCL_ERROR;
}
for (i = 0; i < lobjc; ++i) {
if (Tcl_GetIndexFromObj(interp, lobjv[i], wopt, "when", 0,
***************
*** 285,288 ****
--- 311,317 ----
when |= NS_FILTER_READ;
break;
+ case PreWriteIdx:
+ when |= NS_FILTER_PRE_WRITE;
+ break;
case WriteIdx:
when |= NS_FILTER_WRITE;
***************
*** 514,517 ****
--- 543,549 ----
Tcl_DStringAppendElement(&script, "read");
break;
+ case NS_FILTER_PRE_WRITE:
+ Tcl_DStringAppendElement(&script, "prewrite");
+ break;
case NS_FILTER_WRITE:
Tcl_DStringAppendElement(&script, "write");
Index: driver.c
===================================================================
RCS file: /cvsroot/aolserver/aolserver/nsd/driver.c,v
retrieving revision 1.62
retrieving revision 1.63
diff -C2 -d -r1.62 -r1.63
*** driver.c 9 Jul 2011 10:06:46 -0000 1.62
--- driver.c 11 Oct 2011 08:03:27 -0000 1.63
***************
*** 2326,2329 ****
--- 2326,2334 ----
Ns_SetFree(connPtr->outputheaders);
+ if (connPtr->rbuf != NULL) {
+ Tcl_DStringFree(connPtr->rbuf);
+ ns_free(connPtr->rbuf);
+ }
+
/*
* Truncate the I/O buffers, zero remaining elements of the Conn,
|
|
From: Jeff R. <dv...@us...> - 2011-10-11 08:03:11
|
Update of /cvsroot/aolserver/aolserver/doc In directory vz-cvs-4.sog:/tmp/cvs-serv9311/doc Modified Files: Ns_Filter.3 ns_filter.n Log Message: add various functions, mostly from SF RFEs - pre-write filter, response content modification, insert/append filter, priority filters, ns_conn gzip flag, re-run filters on redirect with new config option "filterredirect", add new constants, fix STREQ macro Index: Ns_Filter.3 =================================================================== RCS file: /cvsroot/aolserver/aolserver/doc/Ns_Filter.3,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Ns_Filter.3 8 Dec 2009 04:13:18 -0000 1.6 --- Ns_Filter.3 11 Oct 2011 08:03:09 -0000 1.7 *************** *** 58,66 **** .AP int when in ! OR-ed combination of the values \fBNS_FILTER_READ\fR, ! \fBNS_FILTER_PRE_QUEUE\fR, \fBNS_FILTER_PRE_AUTH\fR, ! \fBNS_FILTER_POST_AUTH\fR, \fBNS_FILTER_WRITE\fR, and ! \fBNS_FILTER_TRACE\fI indicating the connection state at ! which \fIproc\fR should be invoked. .AP void *arg in --- 58,76 ---- .AP int when in ! OR-ed combination of flags controlling when ! .B proc ! is to be invoked. Suppoeted values ! are ! .BR NS_FILTER_READ , ! .BR NS_FILTER_PRE_QUEUE , ! .BR NS_FILTER_PRE_AUTH , ! .BR NS_FILTER_POST_AUTH , ! .BR NS_FILTER_PRE_WRITE , ! .BR NS_FILTER_WRITE , ! .BR NS_FILTER_TRACE , ! .BR NS_FILTER_PRIORITY(prio) , ! .BR NS_FILTER_INSERT , ! .BR NS_FILTER_APPEND . ! See below for more information. .AP void *arg in *************** *** 131,140 **** to access addition, possibly blocking network resources before queueing the thread for processing. ! If this \fIproc\fR returns a value other than \fBNS_OK\fR, the conneciton will be aborted. .sp NOTE: See the comments above for \fBNS_FILTER_READ\fR for caveats ! of \fIproc\fR being invoked in a thread other than the conneciton processing thread. --- 141,150 ---- to access addition, possibly blocking network resources before queueing the thread for processing. ! If this \fIproc\fR returns a value other than \fBNS_OK\fR, the connection will be aborted. .sp NOTE: See the comments above for \fBNS_FILTER_READ\fR for caveats ! of \fIproc\fR being invoked in a thread other than the connection processing thread. *************** *** 148,151 **** --- 158,188 ---- .TP + NS_FILTER_PRE_WRITE + Invoke + .I proc + just before sending content to the client. A filter at this point can + access content to be sent with + .BR Ns_ConnGetResponseContent, + set it with + .BR Ns_ConnSetResponseContent, + or append to it with + .B Ns_ConnAppendResponseContent. + + .sp + NOTE(1): This filter may not get called at all for a response; in + particular FastPath responses will bypass it, as will content sent by + the lower-level i/o functions. + + .sp + NOTE(2): This filter may be invoked from the connection thread or + from a different thread. See the comments above for + .B NS_FILTER_READ + for caveats + of + .I proc + being invoked in a thread other than the connection + processing thread. + + .TP NS_FILTER_WRITE Invoke \fIproc\fR after each write to the client. *************** *** 157,160 **** --- 194,213 ---- NS_FILTER_TRACE + .TP + NS_FILTER_PRIORITY(prio) + Sets the priortiy of this filter. Valid values for prio are -128 to + 127. Numerically lower values have higher priority, i.e., they will + be executed first. The default priority value is 0; values outside the + range [-100 .. 100] are reserved for system use. + + .TP + NS_FILTER_INSERT + Insert this filter at the beginning of the list of filters with equal + priority. + + .TP + NS_FILTER_APPEND + Append this filter to the end of the list of filters with equal priority. + This flag is the default. .SH "SEE ALSO" Index: ns_filter.n =================================================================== RCS file: /cvsroot/aolserver/aolserver/doc/ns_filter.n,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** ns_filter.n 8 Dec 2009 15:33:00 -0000 1.5 --- ns_filter.n 11 Oct 2011 08:03:09 -0000 1.6 *************** *** 43,57 **** \fBns_register_trace \fImethod url script ?arg?\fR .sp ! \fBns_register_filter read\fR \fImethod url script ?arg?\fR .sp ! \fBns_register_filter prequeue\fR \fImethod url script ?arg?\fR .sp ! \fBns_register_filter preauth\fR \fImethod url script ?arg?\fR .sp ! \fBns_register_filter postauth\fR \fImethod url script ?arg?\fR .sp ! \fBns_register_filter write\fR \fImethod url script ?arg?\fR .sp ! \fBns_register_filter trace\fR \fImethod url script ?arg?\fR .BE --- 43,59 ---- \fBns_register_trace \fImethod url script ?arg?\fR .sp ! \fBns_register_filter read\fR \fI?-insert|-append? ?-priority num? method url script ?arg?\fR .sp ! \fBns_register_filter prequeue\fR \fI?-insert|-append? ?-priority num? method url script ?arg?\fR .sp ! \fBns_register_filter preauth\fR \fI?-insert|-append? ?-priority num? method url script ?arg?\fR .sp ! \fBns_register_filter postauth\fR \fI?-insert|-append? ?-priority num? method url script ?arg?\fR .sp ! \fBns_register_filter prewrite\fR \fI?-insert|-append? ?-priority num? method url script ?arg?\fR .sp ! \fBns_register_filter write\fR \fI?-insert|-append? ?-priority num? method url script ?arg?\fR ! .sp ! \fBns_register_filter trace\fR \fI?-insert|-append? ?-priority num? method url script ?arg?\fR .BE *************** *** 89,92 **** --- 91,118 ---- .PP + The + .I -priority num + option controls the order in which filters will be executed for a given + phase. The valid range for + .I num + is -128 to 127, with lower values having higher priority, i.e., they + will be executed sooner. The default priority is 0. Priority values + outside the range [-100 .. 100] are reserved for system use. + + .PP + The + .I -insert + or + .I -append + options control where a new filter is added in relation to other + filters of equal priority. + .I -insert + causes the filter to be added to the front of the list (executed first), + while + .I -append + causes it to be added to the end of the list. The default is + .I -append + + .PP The \fIproc\fR argument is the name of a Tcl procedure to invoke when the connection has reached the requested state. The \fIproc\fR *************** *** 167,170 **** --- 193,203 ---- .TP + \fBns_register_filter \fBprewrite\fR \fImethod url script ?arg?\fR + Invoke \fIproc\fR before the response content is sent to the client. + This filter can be used to modify the response content before being + sent. This filter will not get called for content sent with + \fBns_returnfile\fR or \fBns_write\fR + + .TP \fBns_register_filter \fBwrite\fR \fImethod url script ?arg?\fR Invoke \fIproc\fR after each write to the client. Note the |
|
From: Jeff R. <dv...@us...> - 2011-10-07 17:29:59
|
Update of /cvsroot/aolserver/aolserver/tests/bugs In directory vz-cvs-4.sog:/tmp/cvs-serv26195/bugs Added Files: README Log Message: added tests for fastpath collision bug --- NEW FILE: README --- These files contain sample code to demonstrate buggy behavior |
|
From: Jeff R. <dv...@us...> - 2011-10-07 17:29:13
|
Update of /cvsroot/aolserver/aolserver/tests/bugs/fastpath In directory vz-cvs-4.sog:/tmp/cvs-serv26170/fastpath Log Message: Directory /cvsroot/aolserver/aolserver/tests/bugs/fastpath added to the repository |
|
From: Jeff R. <dv...@us...> - 2011-10-07 17:29:02
|
Update of /cvsroot/aolserver/aolserver/tests/bugs In directory vz-cvs-4.sog:/tmp/cvs-serv26158/bugs Log Message: Directory /cvsroot/aolserver/aolserver/tests/bugs added to the repository |
|
From: Jeff R. <dv...@us...> - 2011-10-07 17:06:35
|
Update of /cvsroot/aolserver/aolserver/nsd
In directory vz-cvs-4.sog:/tmp/cvs-serv24231/nsd
Modified Files:
nsd.h server.c fastpath.c
Log Message:
apply patch from John Caruso to avoid fastpath
caching a file that has been modified too recently and possibly
colliding inodes
Index: fastpath.c
===================================================================
RCS file: /cvsroot/aolserver/aolserver/nsd/fastpath.c,v
retrieving revision 1.27
retrieving revision 1.28
diff -C2 -d -r1.27 -r1.28
*** fastpath.c 18 Aug 2011 09:24:59 -0000 1.27
--- fastpath.c 7 Oct 2011 17:06:32 -0000 1.28
***************
*** 503,509 ****
if (servPtr->fastpath.cache == NULL
! || stPtr->st_size > servPtr->fastpath.cachemaxentry) {
/*
! * Caching is disabled or the entry is too large for the cache
* so just open, mmap, and send the content directly.
*/
--- 503,511 ----
if (servPtr->fastpath.cache == NULL
! || stPtr->st_size > servPtr->fastpath.cachemaxentry
! || (time(NULL) - stPtr->st_ctime) < servPtr->fastpath.cacheminage ) {
/*
! * Caching is disabled, the entry is too large for the cache,
! * or the inode was changed too recently to be cached safely,
* so just open, mmap, and send the content directly.
*/
Index: nsd.h
===================================================================
RCS file: /cvsroot/aolserver/aolserver/nsd/nsd.h,v
retrieving revision 1.123
retrieving revision 1.124
diff -C2 -d -r1.123 -r1.124
*** nsd.h 28 Sep 2011 05:50:47 -0000 1.123
--- nsd.h 7 Oct 2011 17:06:30 -0000 1.124
***************
*** 655,658 ****
--- 655,659 ----
bool mmap;
int cachemaxentry;
+ int cacheminage;
Ns_UrlToFileProc *url2file;
Ns_Cache *cache;
Index: server.c
===================================================================
RCS file: /cvsroot/aolserver/aolserver/nsd/server.c,v
retrieving revision 1.49
retrieving revision 1.50
diff -C2 -d -r1.49 -r1.50
*** server.c 5 Jul 2011 18:37:47 -0000 1.49
--- server.c 7 Oct 2011 17:06:31 -0000 1.50
***************
*** 393,396 ****
--- 393,400 ----
}
servPtr->fastpath.cachemaxentry = i;
+ if (!Ns_ConfigGetInt(path, "cacheminage", &i) || i < 0) {
+ i = 1;
+ }
+ servPtr->fastpath.cacheminage = i;
servPtr->fastpath.cache = NsFastpathCache(server, n);
}
|
|
From: Jeff R. <dv...@us...> - 2011-10-07 17:06:19
|
Update of /cvsroot/aolserver/aolserver In directory vz-cvs-4.sog:/tmp/cvs-serv24216 Modified Files: ChangeLog Log Message: apply patch from John Caruso to avoid fastpath caching a file that has been modified too recently and possibly colliding inodes Index: ChangeLog =================================================================== RCS file: /cvsroot/aolserver/aolserver/ChangeLog,v retrieving revision 1.400 retrieving revision 1.401 diff -C2 -d -r1.400 -r1.401 *** ChangeLog 28 Sep 2011 05:50:47 -0000 1.400 --- ChangeLog 7 Oct 2011 17:06:16 -0000 1.401 *************** *** 1,2 **** --- 1,10 ---- + 2011-10-07 Jeff Rogers <dv...@di...> + * nsd/nsd.h: + * nsd/fastpath.c: + * nsd/server.c: apply patch from John Caruso to avoid fastpath + caching a file that has been modified too recently and possibly + colliding inodes. Added new fastpath config option "cacheminage" + to control timing. + 2011-09-27 Jeff Rogers <dv...@di...> * nsd/nsd.h: |
|
From: Jeff R. <dv...@us...> - 2011-09-28 05:50:49
|
Update of /cvsroot/aolserver/aolserver
In directory vz-cvs-4.sog:/tmp/cvs-serv13937
Modified Files:
ChangeLog
Log Message:
added NsTclGetNative function to get decoded versions of strings. Use that
function to get filenames with ns_retutrnfile and ns_respond
Index: ChangeLog
===================================================================
RCS file: /cvsroot/aolserver/aolserver/ChangeLog,v
retrieving revision 1.399
retrieving revision 1.400
diff -C2 -d -r1.399 -r1.400
*** ChangeLog 24 Aug 2011 18:48:38 -0000 1.399
--- ChangeLog 28 Sep 2011 05:50:47 -0000 1.400
***************
*** 1,2 ****
--- 1,9 ----
+ 2011-09-27 Jeff Rogers <dv...@di...>
+ * nsd/nsd.h:
+ * nsd/tclmisc.c: add NsTclGetNative function to retrieve decoded
+ strings (rather than utf-8) from Tcl_Objs
+ * nsd/tclreturn.c: decode strings for passing to ns_returnfile
+ and ns_respond
+
2011-08-24 Jeff Rogers <dv...@di...>
* nsd/adpparse.c: enhance parsing to recognize a xml-style minimized
|
|
From: Jeff R. <dv...@us...> - 2011-08-24 18:48:55
|
Update of /cvsroot/aolserver/aolserver/nsd
In directory vz-cvs-4.sog:/tmp/cvs-serv27790/nsd
Modified Files:
adpparse.c
Log Message:
nsd/adpparse.c: enhance parsing to recognize a xml-style minimized
registered tag as an empty open/close sequence. Fix to allow
arbitrary balanced nesting of <% %> tags (SF bug #2958550)
Index: adpparse.c
===================================================================
RCS file: /cvsroot/aolserver/aolserver/nsd/adpparse.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -C2 -d -r1.21 -r1.22
*** adpparse.c 19 Jun 2006 15:01:41 -0000 1.21
--- adpparse.c 24 Aug 2011 18:48:53 -0000 1.22
***************
*** 62,65 ****
--- 62,66 ----
char *tag; /* The name of the tag (e.g., "mytag") */
char *endtag; /* The closing tag or null (e.g., "/mytag")*/
+ int balanced;/* true if open/close tags are the same */
char *string; /* Proc (e.g., "ns_adp_netscape") or ADP string. */
} Tag;
***************
*** 201,204 ****
--- 202,207 ----
Tcl_SetHashValue(hPtr, tagPtr);
tagPtr->tag = Tcl_GetHashKey(&servPtr->adp.tags, hPtr);
+ tagPtr->balanced=(tagPtr->endtag != NULL && *(tagPtr->endtag) == '/' &&
+ STREQ(tagPtr->tag, (tagPtr->endtag+1)));
Ns_RWLockUnlock(&servPtr->adp.taglock);
Tcl_DStringFree(&tbuf);
***************
*** 289,302 ****
*/
- level = 0;
e = strstr(e - 1, "%>");
n = s + 2;
while (e != NULL && (n = strstr(n, "<%")) != NULL && n < e) {
- ++level;
n = n + 2;
- }
- while (e != NULL && level > 0) {
e = strstr(e + 2, "%>");
- --level;
}
if (e == NULL) {
--- 292,300 ----
***************
*** 356,359 ****
--- 354,360 ----
AppendTag(&parse, tagPtr, a, e, NULL);
text = e + 1;
+ } else if (tagPtr->balanced && *(e-1) == '/') {
+ AppendTag(&parse, tagPtr, a, e, e+1);
+ text = e + 1;
} else {
as = a;
***************
*** 592,595 ****
--- 593,603 ----
*servPtr = 0;
}
+ /*
+ * discard a trailing '/' from the attribute value
+ * for xml-ish minimized empty elements
+ */
+ if (*(e-1) == '/') {
+ e--;
+ }
while (s < e) {
/*
|
|
From: Jeff R. <dv...@us...> - 2011-08-24 18:48:40
|
Update of /cvsroot/aolserver/aolserver
In directory vz-cvs-4.sog:/tmp/cvs-serv27763
Modified Files:
ChangeLog
Log Message:
nsd/adpparse.c: enhance parsing to recognize a xml-style minimized
registered tag as an empty open/close sequence. Fix to allow
arbitrary balanced nesting of <% %> tags (SF bug #2958550)
Index: ChangeLog
===================================================================
RCS file: /cvsroot/aolserver/aolserver/ChangeLog,v
retrieving revision 1.398
retrieving revision 1.399
diff -C2 -d -r1.398 -r1.399
*** ChangeLog 7 Jun 2011 21:37:21 -0000 1.398
--- ChangeLog 24 Aug 2011 18:48:38 -0000 1.399
***************
*** 1,2 ****
--- 1,7 ----
+ 2011-08-24 Jeff Rogers <dv...@di...>
+ * nsd/adpparse.c: enhance parsing to recognize a xml-style minimized
+ registered tag as an empty open/close sequence. Fix to allow
+ arbitrary balanced nesting of <% %> tags (SF bug #2958550)
+
2011-05-07 Jeff Rogers <dv...@di...>
* nsthread/pthread.c: change to use passed resultArg directly so
|
|
From: gustafn <gne...@us...> - 2011-08-18 09:25:02
|
Update of /cvsroot/aolserver/aolserver/nsd
In directory vz-cvs-4.sog:/tmp/cvs-serv20034
Modified Files:
fastpath.c fd.c nsd.h
Log Message:
- apply patch from Jin Choi
- minor cleanup
Index: fastpath.c
===================================================================
RCS file: /cvsroot/aolserver/aolserver/nsd/fastpath.c,v
retrieving revision 1.26
retrieving revision 1.27
diff -C2 -d -r1.26 -r1.27
*** fastpath.c 19 Apr 2006 17:48:47 -0000 1.26
--- fastpath.c 18 Aug 2011 09:24:59 -0000 1.27
***************
*** 43,51 ****
*/
- #ifdef MAP_FAILED
- #undef MAP_FAILED
- #endif
- #define MAP_FAILED ((void *) (-1))
-
/*
* The following structure defines the contents of a file
--- 43,46 ----
***************
*** 522,526 ****
if (servPtr->fastpath.mmap) {
map = NsMap(fd, 0, stPtr->st_size, 0, &arg);
! if (map != NULL) {
close(fd);
fd = -1;
--- 517,521 ----
if (servPtr->fastpath.mmap) {
map = NsMap(fd, 0, stPtr->st_size, 0, &arg);
! if (map != MAP_FAILED) {
close(fd);
fd = -1;
Index: fd.c
===================================================================
RCS file: /cvsroot/aolserver/aolserver/nsd/fd.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -d -r1.13 -r1.14
*** fd.c 22 Mar 2008 17:43:39 -0000 1.13
--- fd.c 18 Aug 2011 09:24:59 -0000 1.14
***************
*** 511,515 ****
*
* Results:
! * Pointer to mapped region or NULL if mapping failed.
*
* Side effects:
--- 511,515 ----
*
* Results:
! * Pointer to mapped region or MAP_FAILED if mapping failed.
*
* Side effects:
***************
*** 524,528 ****
#ifdef _WIN32
/* TODO: Make this work on Win32. */
! return NULL;
#else
int prot;
--- 524,528 ----
#ifdef _WIN32
/* TODO: Make this work on Win32. */
! return MAP_FAILED;
#else
int prot;
Index: nsd.h
===================================================================
RCS file: /cvsroot/aolserver/aolserver/nsd/nsd.h,v
retrieving revision 1.121
retrieving revision 1.122
diff -C2 -d -r1.121 -r1.122
*** nsd.h 5 Aug 2011 11:49:45 -0000 1.121
--- nsd.h 18 Aug 2011 09:24:59 -0000 1.122
***************
*** 105,108 ****
--- 105,111 ----
#define NS_SIGTERM 1
#define NS_SIGHUP 2
+ # ifndef MAP_FAILED
+ # define MAP_FAILED ((void *) (-1))
+ # endif
#else
#define NS_SIGTERM SIGTERM
|
|
From: gustafn <gne...@us...> - 2011-08-07 13:30:45
|
Update of /cvsroot/aolserver/aolserver/nsd
In directory vz-cvs-4.sog:/tmp/cvs-serv32165
Modified Files:
nsmain.c
Log Message:
- deactivating Tcl_Finalize() under _WIN32 (see discussions on mailing list)
Index: nsmain.c
===================================================================
RCS file: /cvsroot/aolserver/aolserver/nsd/nsmain.c,v
retrieving revision 1.65
retrieving revision 1.66
diff -C2 -d -r1.65 -r1.66
*** nsmain.c 13 Apr 2006 19:06:37 -0000 1.65
--- nsmain.c 7 Aug 2011 13:30:42 -0000 1.66
***************
*** 631,635 ****
--- 631,644 ----
NsRemovePidFile(procname);
StatusMsg(3);
+
+ #ifndef _WIN32
+ /*
+ * Tcl_Finalize() hangs under Win32 and Win64, at least with Tcl
+ * 8.5 versions up to 8.5.10.We may want to reactivate this call
+ * with some later versions.
+ */
Tcl_Finalize();
+ #endif
+
return 0;
}
|
|
From: gustafn <gne...@us...> - 2011-08-05 11:49:47
|
Update of /cvsroot/aolserver/aolserver/include In directory vz-cvs-4.sog:/tmp/cvs-serv1415/include Modified Files: ns.h Log Message: Patches mostly from Maurizio Martignano - changed types of file descriptors for socket from "int" to "SOCKET" - some more _WIN32 cleanups - defined macro INT2PTR() like in tclInt.h for uniform conversion from "int" to pointers - minor cleanups for unix using INT2PTR (more similar occurences still to do) Index: ns.h =================================================================== RCS file: /cvsroot/aolserver/aolserver/include/ns.h,v retrieving revision 1.91 retrieving revision 1.92 diff -C2 -d -r1.91 -r1.92 *** ns.h 9 Jul 2011 10:06:46 -0000 1.91 --- ns.h 5 Aug 2011 11:49:44 -0000 1.92 *************** *** 161,164 **** --- 161,174 ---- typedef ns_int64 INT64; + #if !defined(INT2PTR) && !defined(PTR2INT) + # if defined(HAVE_INTPTR_T) || defined(intptr_t) + # define INT2PTR(p) ((void *)(intptr_t)(p)) + # define PTR2INT(p) ((int)(intptr_t)(p)) + # else + # define INT2PTR(p) ((void *)(p)) + # define PTR2INT(p) ((int)(p)) + # endif + #endif + /* * The following flags define how Ns_Set's *************** *** 220,224 **** #define O_TEXT 0 #define O_BINARY 0 ! #define SOCKET int #define INVALID_SOCKET (-1) #define SOCKET_ERROR (-1) --- 230,234 ---- #define O_TEXT 0 #define O_BINARY 0 ! #define SOCKET int #define INVALID_SOCKET (-1) #define SOCKET_ERROR (-1) *************** *** 671,675 **** NS_EXTERN char *Ns_ConnHost(Ns_Conn *conn); NS_EXTERN int Ns_ConnPort(Ns_Conn *conn); ! NS_EXTERN int Ns_ConnSock(Ns_Conn *conn); NS_EXTERN char *Ns_ConnDriverName(Ns_Conn *conn); NS_EXTERN void *Ns_ConnDriverContext(Ns_Conn *conn); --- 681,685 ---- NS_EXTERN char *Ns_ConnHost(Ns_Conn *conn); NS_EXTERN int Ns_ConnPort(Ns_Conn *conn); ! NS_EXTERN SOCKET Ns_ConnSock(Ns_Conn *conn); NS_EXTERN char *Ns_ConnDriverName(Ns_Conn *conn); NS_EXTERN void *Ns_ConnDriverContext(Ns_Conn *conn); |
|
From: gustafn <gne...@us...> - 2011-07-16 09:40:04
|
Update of /cvsroot/aolserver/aolserver/nsd
In directory vz-cvs-4.sog:/tmp/cvs-serv17924
Modified Files:
tclcmds.c
Log Message:
- fixed order of registered commands
Index: tclcmds.c
===================================================================
RCS file: /cvsroot/aolserver/aolserver/nsd/tclcmds.c,v
retrieving revision 1.59
retrieving revision 1.60
diff -C2 -d -r1.59 -r1.60
*** tclcmds.c 16 Jul 2011 09:36:09 -0000 1.59
--- tclcmds.c 16 Jul 2011 09:40:02 -0000 1.60
***************
*** 378,383 ****
{"ns_returnnotice", NsTclReturnNoticeCmd, NULL},
{"ns_returnredirect", NULL, NsTclReturnRedirectObjCmd},
- {"ns_returnunauthorized", NULL, NsTclReturnUnauthorizedObjCmd},
{"ns_returntoolarge", NULL, NsTclReturnTooLargeObjCmd},
{"ns_rmdir", NULL, NsTclRmdirObjCmd},
{"ns_rollfile", NULL, NsTclRollFileObjCmd},
--- 378,383 ----
{"ns_returnnotice", NsTclReturnNoticeCmd, NULL},
{"ns_returnredirect", NULL, NsTclReturnRedirectObjCmd},
{"ns_returntoolarge", NULL, NsTclReturnTooLargeObjCmd},
+ {"ns_returnunauthorized", NULL, NsTclReturnUnauthorizedObjCmd},
{"ns_rmdir", NULL, NsTclRmdirObjCmd},
{"ns_rollfile", NULL, NsTclRollFileObjCmd},
|
|
From: gustafn <gne...@us...> - 2011-07-16 09:36:11
|
Update of /cvsroot/aolserver/aolserver/nsd
In directory vz-cvs-4.sog:/tmp/cvs-serv17525
Modified Files:
tclcmds.c
Log Message:
- 2nd part of last commit
Index: tclcmds.c
===================================================================
RCS file: /cvsroot/aolserver/aolserver/nsd/tclcmds.c,v
retrieving revision 1.58
retrieving revision 1.59
diff -C2 -d -r1.58 -r1.59
*** tclcmds.c 16 Jul 2011 09:25:30 -0000 1.58
--- tclcmds.c 16 Jul 2011 09:36:09 -0000 1.59
***************
*** 379,382 ****
--- 379,383 ----
{"ns_returnredirect", NULL, NsTclReturnRedirectObjCmd},
{"ns_returnunauthorized", NULL, NsTclReturnUnauthorizedObjCmd},
+ {"ns_returntoolarge", NULL, NsTclReturnTooLargeObjCmd},
{"ns_rmdir", NULL, NsTclRmdirObjCmd},
{"ns_rollfile", NULL, NsTclRollFileObjCmd},
|
|
From: gustafn <gne...@us...> - 2011-07-16 09:25:33
|
Update of /cvsroot/aolserver/aolserver/nsd
In directory vz-cvs-4.sog:/tmp/cvs-serv14196
Modified Files:
op.c tclcmds.c tclresp.c
Log Message:
- added support for redirect, when upload file is too large (many thanks to Brian Fenton)
Index: tclcmds.c
===================================================================
RCS file: /cvsroot/aolserver/aolserver/nsd/tclcmds.c,v
retrieving revision 1.57
retrieving revision 1.58
diff -C2 -d -r1.57 -r1.58
*** tclcmds.c 8 Dec 2009 04:12:19 -0000 1.57
--- tclcmds.c 16 Jul 2011 09:25:30 -0000 1.58
***************
*** 149,152 ****
--- 149,153 ----
NsTclReturnObjCmd,
NsTclReturnRedirectObjCmd,
+ NsTclReturnTooLargeObjCmd,
NsTclReturnUnauthorizedObjCmd,
NsTclRmdirObjCmd,
Index: op.c
===================================================================
RCS file: /cvsroot/aolserver/aolserver/nsd/op.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -C2 -d -r1.16 -r1.17
*** op.c 9 Jul 2011 10:06:46 -0000 1.16
--- op.c 16 Jul 2011 09:25:29 -0000 1.17
***************
*** 235,238 ****
--- 235,239 ----
if (connPtr->flags & NS_CONN_ENTITYTOOLARGE) {
+ connPtr->flags &= ~NS_CONN_ENTITYTOOLARGE;
return Ns_ConnReturnEntityTooLarge(conn);
}
Index: tclresp.c
===================================================================
RCS file: /cvsroot/aolserver/aolserver/nsd/tclresp.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -C2 -d -r1.21 -r1.22
*** tclresp.c 22 Jan 2007 03:23:15 -0000 1.21
--- tclresp.c 16 Jul 2011 09:25:30 -0000 1.22
***************
*** 445,453 ****
* ReturnObjCmd --
* NsTclReturnNotFoundObjCmd --
* NsTclReturnUnauthorizedObjCmd --
* NsTclReturnForbiddenCmd --
*
! * Implement the ns_returnnotfound, ns_returnunauthorized, and
! * ns_returnforbidden generic return commands.
*
* Results:
--- 445,455 ----
* ReturnObjCmd --
* NsTclReturnNotFoundObjCmd --
+ * NsTclReturnTooLargeObjCmd --
* NsTclReturnUnauthorizedObjCmd --
* NsTclReturnForbiddenCmd --
*
! * Implement the ns_returnnotfound, ns_returntoolarge,
! * ns_returnunauthorized, and ns_returnforbidden generic return
! * commands.
*
* Results:
***************
*** 487,490 ****
--- 489,500 ----
int
+ NsTclReturnTooLargeObjCmd(ClientData arg, Tcl_Interp *interp, int objc,
+ Tcl_Obj *CONST objv[])
+ {
+ return ReturnObjCmd(arg, interp, objc, objv, Ns_ConnReturnEntityTooLarge);
+ }
+
+
+ int
NsTclReturnUnauthorizedObjCmd(ClientData arg, Tcl_Interp *interp, int objc,
Tcl_Obj *CONST objv[])
|
|
From: gustafn <gne...@us...> - 2011-07-09 11:05:39
|
Update of /cvsroot/aolserver/nspostgres
In directory vz-cvs-4.sog:/tmp/cvs-serv32137
Modified Files:
Tag: nspostgres_v4_r2
ChangeLog
Log Message:
Updating Changelog
Index: ChangeLog
===================================================================
RCS file: /cvsroot/aolserver/nspostgres/ChangeLog,v
retrieving revision 1.32
retrieving revision 1.32.2.1
diff -C2 -d -r1.32 -r1.32.2.1
*** ChangeLog 13 Jun 2007 22:38:55 -0000 1.32
--- ChangeLog 9 Jul 2011 11:05:37 -0000 1.32.2.1
***************
*** 1,3 ****
! 2007-06-12 tag nspostgres_v4_r1
2007-06-12 Dossy Shiobara <do...@pa...>
--- 1,9 ----
! 2011-07-09 Gustaf Neumann <ne...@wu...>
! tag nspostgres_v4_r2
!
! 2011-07-05 Gustaf Neumann <ne...@wu...>
! * nspostgres.c: using SQL escape string syntax E'...' when needed (required in PostgreSql 9.1)
! * nspostgres.c: cleanup to get rid of compilation warnings
! * Makefile: add -lnsdb to the libraries
2007-06-12 Dossy Shiobara <do...@pa...>
***************
*** 12,16 ****
2007-03-09 Jim Lynch <ji...@ja...>
! * backed out of defaulting POSTGRES var in Makefile; it should print a
message if not defined.
--- 18,22 ----
2007-03-09 Jim Lynch <ji...@ja...>
! * backed out of defaulting POSTGRES var in Makefile; it should print a
message if not defined.
***************
*** 21,25 ****
append_PQresultStatus. added allocation responsibility to caller, who
now must allocate the string, pass it in, use the result then free the
! string. function docs (in nspostgres.c just above function) altered
appropriately.
--- 27,31 ----
append_PQresultStatus. added allocation responsibility to caller, who
now must allocate the string, pass it in, use the result then free the
! string. function docs (in nspostgres.c just above function) altered
appropriately.
***************
*** 30,34 ****
2007-02-17 Jim Lynch <ji...@ja...>
* factor:
! we want to add the PQexec result status code to a string, so
we will use a Tcl_DString which is a dynamic string. So, create
a function called stringify_PQresultStatus which returns pointer
--- 36,40 ----
2007-02-17 Jim Lynch <ji...@ja...>
* factor:
! we want to add the PQexec result status code to a string, so
we will use a Tcl_DString which is a dynamic string. So, create
a function called stringify_PQresultStatus which returns pointer
|
|
From: gustafn <gne...@us...> - 2011-07-09 10:59:08
|
Update of /cvsroot/aolserver/nspostgres In directory vz-cvs-4.sog:/tmp/cvs-serv30405 Modified Files: ChangeLog Log Message: - updated README file Index: ChangeLog =================================================================== RCS file: /cvsroot/aolserver/nspostgres/ChangeLog,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -d -r1.32 -r1.33 *** ChangeLog 13 Jun 2007 22:38:55 -0000 1.32 --- ChangeLog 9 Jul 2011 10:59:05 -0000 1.33 *************** *** 1,3 **** ! 2007-06-12 tag nspostgres_v4_r1 2007-06-12 Dossy Shiobara <do...@pa...> --- 1,9 ---- ! 2011-07-09 Gustaf Neumann <ne...@wu...> ! tag nspostgres_v4_r2 ! ! 2011-07-05 Gustaf Neumann <ne...@wu...> ! * nspostgres.c: using SQL escape string syntax E'...' when needed (required in PostgreSql 9.1) ! * nspostgres.c: cleanup to get rid of compilation warnings ! * Makefile: add -lnsdb to the libraries 2007-06-12 Dossy Shiobara <do...@pa...> *************** *** 12,16 **** 2007-03-09 Jim Lynch <ji...@ja...> ! * backed out of defaulting POSTGRES var in Makefile; it should print a message if not defined. --- 18,22 ---- 2007-03-09 Jim Lynch <ji...@ja...> ! * backed out of defaulting POSTGRES var in Makefile; it should print a message if not defined. *************** *** 21,25 **** append_PQresultStatus. added allocation responsibility to caller, who now must allocate the string, pass it in, use the result then free the ! string. function docs (in nspostgres.c just above function) altered appropriately. --- 27,31 ---- append_PQresultStatus. added allocation responsibility to caller, who now must allocate the string, pass it in, use the result then free the ! string. function docs (in nspostgres.c just above function) altered appropriately. *************** *** 30,34 **** 2007-02-17 Jim Lynch <ji...@ja...> * factor: ! we want to add the PQexec result status code to a string, so we will use a Tcl_DString which is a dynamic string. So, create a function called stringify_PQresultStatus which returns pointer --- 36,40 ---- 2007-02-17 Jim Lynch <ji...@ja...> * factor: ! we want to add the PQexec result status code to a string, so we will use a Tcl_DString which is a dynamic string. So, create a function called stringify_PQresultStatus which returns pointer |
|
From: gustafn <gne...@us...> - 2011-07-09 10:06:49
|
Update of /cvsroot/aolserver/aolserver/nsd
In directory vz-cvs-4.sog:/tmp/cvs-serv14239/nsd
Modified Files:
driver.c op.c return.c
Log Message:
- move the handling of "Entity too large" to the connection threads
- make sure to process the whole request from the client, even when the entity is too large
- change spelling of error stub to Ns_ConnReturnEntityTooLarge
- removed superflous newline in SockState
Index: return.c
===================================================================
RCS file: /cvsroot/aolserver/aolserver/nsd/return.c,v
retrieving revision 1.51
retrieving revision 1.52
diff -C2 -d -r1.51 -r1.52
*** return.c 23 Jun 2011 18:15:16 -0000 1.51
--- return.c 9 Jul 2011 10:06:46 -0000 1.52
***************
*** 1062,1066 ****
*----------------------------------------------------------------------
*
! * Ns_ConnReturnEntityToLarge --
*
* Return a 414 Request Entity to large response.
--- 1062,1066 ----
*----------------------------------------------------------------------
*
! * Ns_ConnReturnEntityTooLarge --
*
* Return a 414 Request Entity to large response.
***************
*** 1076,1080 ****
int
! Ns_ConnReturnEntityToLarge(Ns_Conn *conn)
{
int result;
--- 1076,1080 ----
int
! Ns_ConnReturnEntityTooLarge(Ns_Conn *conn)
{
int result;
Index: op.c
===================================================================
RCS file: /cvsroot/aolserver/aolserver/nsd/op.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -C2 -d -r1.15 -r1.16
*** op.c 7 Oct 2005 00:48:23 -0000 1.15
--- op.c 9 Jul 2011 10:06:46 -0000 1.16
***************
*** 231,234 ****
--- 231,242 ----
/*
+ * Return entity too large error message
+ */
+
+ if (connPtr->flags & NS_CONN_ENTITYTOOLARGE) {
+ return Ns_ConnReturnEntityTooLarge(conn);
+ }
+
+ /*
* Prevent infinite internal redirect loops.
*/
Index: driver.c
===================================================================
RCS file: /cvsroot/aolserver/aolserver/nsd/driver.c,v
retrieving revision 1.61
retrieving revision 1.62
diff -C2 -d -r1.61 -r1.62
*** driver.c 24 Jun 2011 06:46:32 -0000 1.61
--- driver.c 9 Jul 2011 10:06:46 -0000 1.62
***************
*** 1482,1486 ****
{
if (sockPtr->drvPtr->flags & DRIVER_DEBUG) {
! Ns_Log(Notice, "%s[%d]: %s -> %s\n", sockPtr->drvPtr->name,
sockPtr->sock, states[sockPtr->state], states[state]);
}
--- 1482,1486 ----
{
if (sockPtr->drvPtr->flags & DRIVER_DEBUG) {
! Ns_Log(Notice, "%s[%d]: %s -> %s", sockPtr->drvPtr->name,
sockPtr->sock, states[sockPtr->state], states[state]);
}
***************
*** 1750,1757 ****
}
LogReadError(connPtr, err);
- if (err == E_CRANGE) {
- Ns_ConnReturnEntityToLarge(connPtr);
- NsRunTraces(connPtr);
- }
}
}
--- 1750,1753 ----
***************
*** 1973,1977 ****
}
if (len > (int) connPtr->limitsPtr->maxupload) {
! return E_CRANGE;
}
connPtr->contentLength = len;
--- 1969,1989 ----
}
if (len > (int) connPtr->limitsPtr->maxupload) {
! /*
! * Gustaf Neumann: The entity is too large and is not allowed to
! * be processed. In principle, we could stop processing the
! * request here and return immediately an error message to the
! * client. However, if the content to be sent from the client to
! * the server is large it is likely, that at the time we process
! * the header, the content is not fully sent yet. If the server
! * replies and closes the connection while the client is sending
! * the request, current browsers (e.g. Firefox, Chrome, ...)
! * will show the user their own error message ("server has
! * closed connection"). Therefore, in order to provide reliable
! * error messages, we have process the full request. We flag the
! * fact of the too large entity here and return the error
! * message from the connection thread.
! */
! connPtr->flags |= NS_CONN_ENTITYTOOLARGE;
! LogReadError(connPtr, E_CRANGE);
}
connPtr->contentLength = len;
|
|
From: gustafn <gne...@us...> - 2011-07-09 10:06:48
|
Update of /cvsroot/aolserver/aolserver/include In directory vz-cvs-4.sog:/tmp/cvs-serv14239/include Modified Files: ns.h Log Message: - move the handling of "Entity too large" to the connection threads - make sure to process the whole request from the client, even when the entity is too large - change spelling of error stub to Ns_ConnReturnEntityTooLarge - removed superflous newline in SockState Index: ns.h =================================================================== RCS file: /cvsroot/aolserver/aolserver/include/ns.h,v retrieving revision 1.90 retrieving revision 1.91 diff -C2 -d -r1.90 -r1.91 *** ns.h 23 Jun 2011 18:15:16 -0000 1.90 --- ns.h 9 Jul 2011 10:06:46 -0000 1.91 *************** *** 88,91 **** --- 88,92 ---- #define NS_CONN_GZIP 0x800 #define NS_CONN_CHUNK 0x1000 + #define NS_CONN_ENTITYTOOLARGE 0x2000 #define NS_CONN_MAXCLS 16 *************** *** 1044,1048 **** NS_EXTERN int Ns_ConnReturnBadRequest(Ns_Conn *conn, char *reason); NS_EXTERN int Ns_ConnReturnUnauthorized(Ns_Conn *conn); ! NS_EXTERN int Ns_ConnReturnEntityToLarge(Ns_Conn *conn); NS_EXTERN int Ns_ConnReturnForbidden(Ns_Conn *conn); NS_EXTERN int Ns_ConnReturnNotFound(Ns_Conn *conn); --- 1045,1049 ---- NS_EXTERN int Ns_ConnReturnBadRequest(Ns_Conn *conn, char *reason); NS_EXTERN int Ns_ConnReturnUnauthorized(Ns_Conn *conn); ! NS_EXTERN int Ns_ConnReturnEntityTooLarge(Ns_Conn *conn); NS_EXTERN int Ns_ConnReturnForbidden(Ns_Conn *conn); NS_EXTERN int Ns_ConnReturnNotFound(Ns_Conn *conn); |
|
From: gustafn <gne...@us...> - 2011-07-05 18:45:37
|
Update of /cvsroot/aolserver/nspostgres
In directory vz-cvs-4.sog:/tmp/cvs-serv25890
Modified Files:
Makefile nspostgres.c
Log Message:
- using SQL escape string syntax E'...' when needed (required in PostgreSql 9.1)
- minor cleanup to get rid of compilation warnings
- adding -lnsdb to the libraries in the Makefile
Index: Makefile
===================================================================
RCS file: /cvsroot/aolserver/nspostgres/Makefile,v
retrieving revision 1.21
retrieving revision 1.22
diff -C2 -d -r1.21 -r1.22
*** Makefile 12 Jun 2007 15:17:45 -0000 1.21
--- Makefile 5 Jul 2011 18:45:35 -0000 1.22
***************
*** 93,97 ****
# Libraries required by this module
#
! MODLIBS += -L$(PGLIB) -lpq
#
--- 93,97 ----
# Libraries required by this module
#
! MODLIBS += -L$(PGLIB) -lpq -lnsdb
#
Index: nspostgres.c
===================================================================
RCS file: /cvsroot/aolserver/nspostgres/nspostgres.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -C2 -d -r1.15 -r1.16
*** nspostgres.c 25 Feb 2007 09:45:32 -0000 1.15
--- nspostgres.c 5 Jul 2011 18:45:35 -0000 1.16
***************
*** 909,913 ****
n = byte_len;
for (i=0, j=0; n > 0; i += 4, j += 3, n -= 3) {
! decode3(&data_column[i], &buf[j], n);
}
buf[byte_len] = '\0';
--- 909,913 ----
n = byte_len;
for (i=0, j=0; n > 0; i += 4, j += 3, n -= 3) {
! decode3((unsigned char*)&data_column[i], &buf[j], n);
}
buf[byte_len] = '\0';
***************
*** 981,985 ****
value_len -= segment_len;
for (i = 0, j = 0; i < segment_len; i += 3, j+=4) {
! encode3(&value_ptr[i], &out_buf[j]);
}
out_buf[j] = '\0';
--- 981,985 ----
value_len -= segment_len;
for (i = 0, j = 0; i < segment_len; i += 3, j+=4) {
! encode3((unsigned char *)&value_ptr[i], &out_buf[j]);
}
out_buf[j] = '\0';
***************
*** 1047,1051 ****
while (readlen > 0) {
for (i = 0, j = 0; i < readlen; i += 3, j+=4) {
! encode3(&in_buf[i], &out_buf[j]);
}
out_buf[j] = '\0';
--- 1047,1051 ----
while (readlen > 0) {
for (i = 0, j = 0; i < readlen; i += 3, j+=4) {
! encode3((unsigned char *)&in_buf[i], &out_buf[j]);
}
out_buf[j] = '\0';
***************
*** 1182,1186 ****
n = byte_len;
for (i=0, j=0; n > 0; i += 4, j += 3, n -= 3) {
! decode3(&data_column[i], &buf[j], n);
}
--- 1182,1186 ----
n = byte_len;
for (i=0, j=0; n > 0; i += 4, j += 3, n -= 3) {
! decode3((unsigned char *)&data_column[i], &buf[j], n);
}
***************
*** 1362,1366 ****
string_list_elt_t *felt, *fhead=0, *ftail=0;
int current_string_length = 0;
- int first_bind = 0;
fragbuf = (char*)Ns_Malloc((strlen(input)+1)*sizeof(char));
--- 1362,1365 ----
***************
*** 1478,1482 ****
char *value = NULL;
char *p;
- int value_frag_len = 0;
if (argc < 4 || (!STREQ("-bind", argv[3]) && (argc != 4)) ||
--- 1477,1480 ----
***************
*** 1564,1567 ****
--- 1562,1577 ----
Ns_DStringAppend(&ds, "NULL");
} else {
+ int needEscapeStringSyntax = 0;
+
+ /*
+ * Determine, if we need the SQL escape string Syntax E'...'
+ */
+ for (p = value; *p; p++) {
+ if (*p == '\\') {
+ needEscapeStringSyntax = 1;
+ break;
+ }
+ }
+
/*
* DRB: We really only need to quote strings, but there is one benefit
***************
*** 1572,1576 ****
* still used when appropriate.
*/
! Ns_DStringAppend(&ds, "'");
/*
--- 1582,1586 ----
* still used when appropriate.
*/
! Ns_DStringAppend(&ds, needEscapeStringSyntax ? "E'" : "'");
/*
***************
*** 1598,1602 ****
}
! Ns_DStringAppend(&ds, "'");
}
var_p = var_p->next;
--- 1608,1612 ----
}
! Ns_DStringAppend(&ds, "'");
}
var_p = var_p->next;
|
|
From: gustafn <gne...@us...> - 2011-07-05 18:37:49
|
Update of /cvsroot/aolserver/aolserver/nsd
In directory vz-cvs-4.sog:/tmp/cvs-serv24128
Modified Files:
queue.c server.c tclcache.c tclmisc.c uuencode.c
Log Message:
- reverting escaped commit
Index: tclmisc.c
===================================================================
RCS file: /cvsroot/aolserver/aolserver/nsd/tclmisc.c,v
retrieving revision 1.33
retrieving revision 1.34
diff -C2 -d -r1.33 -r1.34
*** tclmisc.c 5 Jul 2011 18:24:40 -0000 1.33
--- tclmisc.c 5 Jul 2011 18:37:47 -0000 1.34
***************
*** 366,374 ****
return TCL_ERROR;
}
! string = Tcl_GetString(objv[1]);
! nbytes = objv[1]->length;
! fprintf(stderr, "STRANGE %d %d\n",(unsigned char)string[0],(unsigned char)string[1]);
! /* string = Tcl_GetStringFromObj(objv[1], &nbytes);*/
!
if (nbytes > 48) {
Tcl_AppendStringsToObj(Tcl_GetObjResult(interp), "invalid string \"",
--- 366,370 ----
return TCL_ERROR;
}
! string = Tcl_GetStringFromObj(objv[1], &nbytes);
if (nbytes > 48) {
Tcl_AppendStringsToObj(Tcl_GetObjResult(interp), "invalid string \"",
Index: tclcache.c
===================================================================
RCS file: /cvsroot/aolserver/aolserver/nsd/tclcache.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** tclcache.c 5 Jul 2011 18:24:40 -0000 1.4
--- tclcache.c 5 Jul 2011 18:37:47 -0000 1.5
***************
*** 189,194 ****
cachePtr = objv[2]->internalRep.otherValuePtr;
- //fprintf(stderr,"CACHE %s %s\n",Tcl_GetString(objv[1]),Tcl_GetString(objv[2]));
-
Ns_GetTime(&now);
err = 0;
--- 189,192 ----
***************
*** 505,511 ****
}
cache = Tcl_GetString(objv[2]);
-
- //fprintf(stderr,"CACHE create %s\n",cache);
-
wait.sec = 2;
ttl.sec = 60;
--- 503,506 ----
Index: queue.c
===================================================================
RCS file: /cvsroot/aolserver/aolserver/nsd/queue.c,v
retrieving revision 1.48
retrieving revision 1.49
diff -C2 -d -r1.48 -r1.49
*** queue.c 5 Jul 2011 18:24:40 -0000 1.48
--- queue.c 5 Jul 2011 18:37:47 -0000 1.49
***************
*** 556,639 ****
*/
- /*
- *----------------------------------------------------------------------
- *
- * ConnAuthorize --
- *
- * Try to authorize a connection.
- *
- * Results:
- * NS_OK on successful authorization,
- * NS_FILTER_RETURN on authorization failure, or
- * NS_ERROR on error.
- *
- * Side effects:
- * Connection request is authorized. On failure an alternative
- * response may be sent to the client.
- *
- *----------------------------------------------------------------------
- */
-
- static int
- ConnAuthorize(Conn *connPtr)
- {
- Ns_Conn *conn = (Ns_Conn *) connPtr;
- NsServer *servPtr = connPtr->servPtr;
- int status;
-
- status = Ns_AuthorizeRequest(servPtr->server,
- connPtr->request->method, connPtr->request->url,
- connPtr->authUser, connPtr->authPasswd, connPtr->peer);
-
- switch (status) {
- case NS_OK:
- break;
- case NS_FORBIDDEN:
- /*
- * NS_OK indicates that a response was sent to the client
- * a this point, we must fast-forward to traces,
- * so we convert the NS_OK to NS_FILTER_RETURN.
- */
- if ((status = Ns_ConnReturnForbidden(conn)) == NS_OK) {
- status = NS_FILTER_RETURN;
- }
- break;
- case NS_UNAUTHORIZED:
- /*
- * NS_OK indicates that a response was sent to the client
- * a this point, we must fast-forward to traces,
- * so we convert the NS_OK to NS_FILTER_RETURN.
- */
- if ((status = Ns_ConnReturnUnauthorized(conn)) == NS_OK) {
- status = NS_FILTER_RETURN;
- }
- break;
- case NS_ERROR:
- default:
- status = NS_ERROR;
- break;
- }
-
- return status;
- }
-
-
- /*
- *----------------------------------------------------------------------
- *
- * ConnRun --
- *
- * Run a valid connection.
- *
- * Results:
- * None.
- *
- * Side effects:
- * Connection request is read and parsed and the cooresponding
- * service routine is called.
- *
- *----------------------------------------------------------------------
- */
-
static void
ConnRun(Conn *connPtr)
--- 556,559 ----
***************
*** 670,749 ****
*/
! while (1) {
!
! /*
! * Proxy requests replace request logic
! */
!
! if (connPtr->request->protocol != NULL
! && connPtr->request->host != NULL) {
!
! status = NsConnRunProxyRequest((Ns_Conn *) connPtr);
! break;
! }
!
! /*
! * Each stage of request processing can return one of three
! * possible results:
! * NS_OK means continue to next stage
! * NS_FILTER_RETURN means skip to traces
! * NS_ERROR means skip to 500 response attempt
! */
! status = NsRunFilters(conn, NS_FILTER_PRE_AUTH);
! if (status != NS_OK) {
! break;
! }
! status = ConnAuthorize(connPtr);
! if (status != NS_OK) {
! break;
! }
! status = NsRunFilters(conn, NS_FILTER_POST_AUTH);
! if (status != NS_OK) {
! break;
}
-
- status = Ns_ConnRunRequest(conn);
- break;
}
-
- if (status == NS_ERROR) {
- status = Ns_ConnReturnInternalError(conn);
- }
-
- /*
- * Closing connection also runs code registered with
- * ns_atclose.
- */
-
Ns_ConnClose(conn);
-
- /*
- * Trace filters, void filter traces and server traces
- * run a response was sent to the client
- * Note that a successful response includes sending
- * an internal server error response.
- */
-
if (status == NS_OK || status == NS_FILTER_RETURN) {
! /*
! * Filter Traces are registered with ns_register_filter
! * Ignore the return code? We need to do NsRunTraces based
! * upon status before trace filters ran. Question is if we
! * should skip void trace filters. We could wrap them in another
! * status check, then move on to NsRunTraces.
! */
! NsRunFilters(conn, NS_FILTER_TRACE);
! /*
! * Filters registered outside the context of a particular server
! */
! (void) NsRunFilters(conn, NS_FILTER_VOID_TRACE);
! /*
! * Server traces registered with Ns_RegisterServerTrace
! * Access logging is handled at this point.
! */
! NsRunTraces(conn);
}
--- 590,639 ----
*/
! if (connPtr->request->protocol != NULL && connPtr->request->host != NULL) {
! status = NsConnRunProxyRequest((Ns_Conn *) connPtr);
! } else {
! status = NsRunFilters(conn, NS_FILTER_PRE_AUTH);
! if (status == NS_OK) {
! status = Ns_AuthorizeRequest(servPtr->server,
! connPtr->request->method, connPtr->request->url,
! connPtr->authUser, connPtr->authPasswd, connPtr->peer);
! switch (status) {
! case NS_OK:
! status = NsRunFilters(conn, NS_FILTER_POST_AUTH);
! if (status == NS_OK) {
! status = Ns_ConnRunRequest(conn);
! }
! break;
! case NS_FORBIDDEN:
! Ns_ConnReturnForbidden(conn);
! break;
! case NS_UNAUTHORIZED:
! Ns_ConnReturnUnauthorized(conn);
! break;
! case NS_ERROR:
! default:
! Ns_ConnReturnInternalError(conn);
! break;
! }
! } else if (status != NS_FILTER_RETURN) {
! /* if not ok or filter_return, then the pre-auth filter coughed
! * an error. We are not going to proceed, but also we
! * can't count on the filter to have sent a response
! * back to the client. So, send an error response.
! */
! Ns_ConnReturnInternalError(conn);
! status = NS_FILTER_RETURN; /* to allow tracing to happen */
}
}
Ns_ConnClose(conn);
if (status == NS_OK || status == NS_FILTER_RETURN) {
! status = NsRunFilters(conn, NS_FILTER_TRACE);
! if (status == NS_OK) {
! (void) NsRunFilters(conn, NS_FILTER_VOID_TRACE);
! NsRunTraces(conn);
! }
}
***************
*** 752,770 ****
* followed by free the connection interp if it was used.
*/
-
- /*
- * Cleanups are registered with either:
- * Ns_RegisterConnCleanup: same signature as Ns_RegisterServerTrace
- * Ns_RegisterCleanup: runs for all servers
- */
NsRunCleanups(conn);
-
- /* Finished with conn */
-
NsFreeConnInterp(connPtr);
}
-
/*
--- 642,650 ----
Index: server.c
===================================================================
RCS file: /cvsroot/aolserver/aolserver/nsd/server.c,v
retrieving revision 1.48
retrieving revision 1.49
diff -C2 -d -r1.48 -r1.49
*** server.c 5 Jul 2011 18:24:40 -0000 1.48
--- server.c 5 Jul 2011 18:37:47 -0000 1.49
***************
*** 298,301 ****
--- 298,302 ----
* is no encoding, i.e., assume UTF-8.
*/
+
GetCharsetEncoding(path, "urlcharset", NULL, &servPtr->urlEncoding);
Index: uuencode.c
===================================================================
RCS file: /cvsroot/aolserver/aolserver/nsd/uuencode.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** uuencode.c 5 Jul 2011 18:24:40 -0000 1.3
--- uuencode.c 5 Jul 2011 18:37:47 -0000 1.4
***************
*** 111,130 ****
p = input;
! q = (unsigned char*)output;
for (n = len / 3; n > 0; --n) {
*q++ = ENC(p[0] >> 2);
- fprintf(stderr,"1 (%d) %d\n",p[0] >> 2, p[0]);
- *q++ = ENC(((p[0] & 0x03) << 4) | ((p[1] & 0xf0) >> 4));
- fprintf(stderr,"2 (%d) %d %d\n",(((p[0] & 0x03) << 4) | ((p[1] & 0xf0) >> 4)), p[0], p[1]);
- *q++ = ENC(((p[1] & 0x0f) << 2) | ((p[2] & 0xc0) >> 6));
- fprintf(stderr,"3 (%d) %d %d\n",(((p[1] & 0x0f) << 2) | ((p[2] & 0xc0) >> 6)), p[1], p[2]);
- *q++ = ENC(p[2] & 0x3f);
- fprintf(stderr,"4 (%d) %d\n",(p[2] & 0x3f),p[2]);
-
- /*
*q++ = ENC(((p[0] << 4) & 060) | ((p[1] >> 4) & 017));
*q++ = ENC(((p[1] << 2) & 074) | ((p[2] >> 6) & 03));
*q++ = ENC(p[2] & 077);
- */
p += 3;
}
--- 111,120 ----
p = input;
! q = output;
for (n = len / 3; n > 0; --n) {
*q++ = ENC(p[0] >> 2);
*q++ = ENC(((p[0] << 4) & 060) | ((p[1] >> 4) & 017));
*q++ = ENC(((p[1] << 2) & 074) | ((p[2] >> 6) & 03));
*q++ = ENC(p[2] & 077);
p += 3;
}
***************
*** 138,146 ****
*q++ = ENC(p[0] >> 2);
if (n == 1) {
! *q++ = ENC(((p[0] & 0x03) << 4));
*q++ = '=';
} else {
! *q++ = ENC(((p[0] & 0x03) << 4) | ((p[1] & 0xf0) >> 4));
! *q++ = ENC(((p[1] & 0x0f) << 2));
}
*q++ = '=';
--- 128,136 ----
*q++ = ENC(p[0] >> 2);
if (n == 1) {
! *q++ = ENC((p[0] << 4) & 060);
*q++ = '=';
} else {
! *q++ = ENC(((p[0] << 4) & 060) | ((p[1] >> 4) & 017));
! *q++ = ENC((p[1] << 2) & 074);
}
*q++ = '=';
|