From: Vlad S. <ser...@us...> - 2005-08-01 16:22:36
|
Update of /cvsroot/naviserver/naviserver/nsd In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18733/nsd Modified Files: adprequest.c conn.c nsd.h queue.c return.c Log Message: see ChangeLog Index: return.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/return.c,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** return.c 12 Jul 2005 03:16:05 -0000 1.13 --- return.c 1 Aug 2005 16:22:25 -0000 1.14 *************** *** 221,226 **** } ! Ns_DStringPrintf(dsPtr, "HTTP/%s %d %s\r\n", ! (conn->flags & NS_CONN_WRITE_CHUNKED) ? "1.1" : "1.0", connPtr->responseStatus, reason); --- 221,227 ---- } ! Ns_DStringPrintf(dsPtr, "%s %d %s\r\n", ! (connPtr->responseVersion != NULL) ? connPtr->responseVersion : ! (conn->flags & NS_CONN_WRITE_CHUNKED) ? "HTTP/1.1" : "HTTP/1.0", connPtr->responseStatus, reason); Index: nsd.h =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/nsd.h,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** nsd.h 30 Jul 2005 03:17:50 -0000 1.28 --- nsd.h 1 Aug 2005 16:22:25 -0000 1.29 *************** *** 482,485 **** --- 482,486 ---- int responseStatus; int responseLength; + char *responseVersion; int recursionCount; Index: conn.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/conn.c,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** conn.c 12 Jul 2005 03:16:05 -0000 1.20 --- conn.c 1 Aug 2005 16:22:25 -0000 1.21 *************** *** 264,267 **** --- 264,321 ---- *---------------------------------------------------------------------- * + * Ns_ConnResponseVersion -- + * + * Get the reponse protocol and version that will be sent + * + * Results: + * String like HTTP/1.0 + * + * Side effects: + * None + * + *---------------------------------------------------------------------- + */ + + char * + Ns_ConnResponseVersion(Ns_Conn *conn) + { + Conn *connPtr = (Conn *) conn; + + return connPtr->responseVersion; + + } + + + /* + *---------------------------------------------------------------------- + * + * Ns_ConnSetResponseVersion -- + * + * Set the response protocol an dversion that will be sent + * + * Results: + * None + * + * Side effects: + * None + * + *---------------------------------------------------------------------- + */ + + void + Ns_ConnSetResponseVersion(Ns_Conn *conn, char *new_version) + { + Conn *connPtr = (Conn *) conn; + + if (connPtr->responseVersion != NULL) { + ns_free(connPtr->responseVersion); + } + connPtr->responseVersion = ns_strcopy(new_version); + } + + + /* + *---------------------------------------------------------------------- + * * Ns_ConnContentSent -- * *************** *** 959,963 **** "query", "request", "server", "sock", "start", "status", "url", "urlc", "urlencoding", "urlv", "version", "write_encoded", ! "chunked", NULL }; --- 1013,1017 ---- "query", "request", "server", "sock", "start", "status", "url", "urlc", "urlencoding", "urlv", "version", "write_encoded", ! "chunked", "responseversion", NULL }; *************** *** 971,975 **** CServerIdx, CSockIdx, CStartIdx, CStatusIdx, CUrlIdx, CUrlcIdx, CUrlEncodingIdx, CUrlvIdx, CVersionIdx, CWriteEncodedIdx, ! CChunkedIdx }; --- 1025,1029 ---- CServerIdx, CSockIdx, CStartIdx, CStatusIdx, CUrlIdx, CUrlcIdx, CUrlEncodingIdx, CUrlvIdx, CVersionIdx, CWriteEncodedIdx, ! CChunkedIdx, CResponseVersionIdx }; *************** *** 1215,1218 **** --- 1269,1279 ---- break; + case CResponseVersionIdx: + if (objc > 2) { + Ns_ConnSetResponseVersion(conn, Tcl_GetString(objv[2])); + } + Tcl_SetResult(interp, Ns_ConnResponseVersion(conn), TCL_STATIC); + break; + case CRequestIdx: Tcl_SetResult(interp, request->line, TCL_STATIC); Index: adprequest.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/adprequest.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** adprequest.c 12 Jul 2005 11:19:21 -0000 1.4 --- adprequest.c 1 Aug 2005 16:22:25 -0000 1.5 *************** *** 228,231 **** --- 228,234 ---- if (AdpFlush(itPtr, 1) != NS_OK) { itPtr->adp.stream = 0; + if (Ns_ConnGetChunkedFlag(itPtr->conn)) { + Ns_ConnSetChunkedFlag(itPtr->conn, 0); + } } } *************** *** 244,248 **** * * Side effects: ! * Headers and current data, if any, are flushed. * *---------------------------------------------------------------------- --- 247,252 ---- * * Side effects: ! * Headers and current data, if any, are flushed. Can enable chunked ! * mode depending on the browser version. * *---------------------------------------------------------------------- *************** *** 253,258 **** { if (!itPtr->adp.stream && itPtr->conn != NULL) { ! itPtr->adp.stream = 1; ! NsAdpFlush(itPtr); } } --- 257,270 ---- { if (!itPtr->adp.stream && itPtr->conn != NULL) { ! itPtr->adp.stream = 1; ! ! /* Switch to chunked mode if browser supports chunked encoding and ! * streaming is enabled. ! */ ! ! if (itPtr->conn->request->version == 1.1) { ! Ns_ConnSetChunkedFlag(itPtr->conn, 1); ! } ! NsAdpFlush(itPtr); } } Index: queue.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/queue.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** queue.c 12 Jul 2005 07:31:39 -0000 1.5 --- queue.c 1 Aug 2005 16:22:25 -0000 1.6 *************** *** 714,717 **** --- 714,718 ---- connPtr->nContentSent = 0; connPtr->responseStatus = 0; + connPtr->responseVersion = 0; connPtr->responseLength = 0; connPtr->recursionCount = 0; *************** *** 825,828 **** --- 826,833 ---- NsFreeRequest(connPtr->reqPtr); connPtr->reqPtr = NULL; + if (connPtr->responseVersion != NULL) { + ns_free(connPtr->responseVersion); + connPtr->responseVersion = NULL; + } } |