From: Zoran V. <vas...@us...> - 2005-06-16 18:31:52
|
Update of /cvsroot/naviserver/naviserver/nsd In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21640 Modified Files: driver.c nsd.h server.c Log Message: Remove the "maxpost" configuration option as per RFE #1222107 Index: nsd.h =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/nsd.h,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** nsd.h 13 Jun 2005 01:55:14 -0000 1.17 --- nsd.h 16 Jun 2005 18:31:11 -0000 1.18 *************** *** 594,598 **** int maxheaders; int maxline; - int maxpost; int sendfdmin; int errorminsize; --- 594,597 ---- Index: driver.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/driver.c,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** driver.c 13 Jun 2005 01:55:14 -0000 1.11 --- driver.c 16 Jun 2005 18:31:10 -0000 1.12 *************** *** 1,8 **** - /* ! * The contents of this file are subject to the AOLserver Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at ! * http://aolserver.com/. * * Software distributed under the License is distributed on an "AS IS" --- 1,7 ---- /* ! * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at ! * http://mozilla.org/. * * Software distributed under the License is distributed on an "AS IS" *************** *** 1367,1394 **** char *s, *e, save; int cnt, len, nread, n; ! reqPtr = sockPtr->reqPtr; if (reqPtr == NULL) { ! Ns_MutexLock(&reqLock); ! reqPtr = firstReqPtr; ! if (reqPtr != NULL) { ! firstReqPtr = reqPtr->nextPtr; ! } ! Ns_MutexUnlock(&reqLock); ! if (reqPtr == NULL) { ! reqPtr = ns_malloc(sizeof(Request)); ! Tcl_DStringInit(&reqPtr->buffer); ! reqPtr->headers = Ns_SetCreate(NULL); ! reqPtr->request = NULL; ! reqPtr->next = reqPtr->content = NULL; ! reqPtr->length = reqPtr->avail = 0; ! reqPtr->coff = reqPtr->woff = reqPtr->roff = 0; ! reqPtr->leadblanks = 0; ! } ! sockPtr->reqPtr = reqPtr; reqPtr->port = ntohs(sockPtr->sa.sin_port); ! strcpy(reqPtr->peer, ns_inet_ntoa(sockPtr->sa.sin_addr)); } ! /* * On the first read, attempt to read-ahead bufsize bytes. --- 1366,1393 ---- char *s, *e, save; int cnt, len, nread, n; ! reqPtr = sockPtr->reqPtr; if (reqPtr == NULL) { ! Ns_MutexLock(&reqLock); ! reqPtr = firstReqPtr; ! if (reqPtr != NULL) { ! firstReqPtr = reqPtr->nextPtr; ! } ! Ns_MutexUnlock(&reqLock); ! if (reqPtr == NULL) { ! reqPtr = ns_malloc(sizeof(Request)); ! Tcl_DStringInit(&reqPtr->buffer); ! reqPtr->headers = Ns_SetCreate(NULL); ! reqPtr->request = NULL; ! reqPtr->next = reqPtr->content = NULL; ! reqPtr->length = reqPtr->avail = 0; ! reqPtr->coff = reqPtr->woff = reqPtr->roff = 0; ! reqPtr->leadblanks = 0; ! } ! sockPtr->reqPtr = reqPtr; reqPtr->port = ntohs(sockPtr->sa.sin_port); ! strcpy(reqPtr->peer, ns_inet_ntoa(sockPtr->sa.sin_addr)); } ! /* * On the first read, attempt to read-ahead bufsize bytes. *************** *** 1396,1405 **** * content. */ ! bufPtr = &reqPtr->buffer; if (reqPtr->length == 0) { ! nread = sockPtr->drvPtr->bufsize; } else { ! nread = reqPtr->length - reqPtr->avail; } --- 1395,1404 ---- * content. */ ! bufPtr = &reqPtr->buffer; if (reqPtr->length == 0) { ! nread = sockPtr->drvPtr->bufsize; } else { ! nread = reqPtr->length - reqPtr->avail; } *************** *** 1407,1411 **** * Grow the buffer to include space for the next bytes. */ ! len = bufPtr->length; n = len + nread; --- 1406,1410 ---- * Grow the buffer to include space for the next bytes. */ ! len = bufPtr->length; n = len + nread; *************** *** 1422,1466 **** n = (*sockPtr->drvPtr->proc)(DriverRecv, sock, &buf, 1); if (n <= 0) { ! return SOCK_ERROR; } Tcl_DStringSetLength(bufPtr, len + n); reqPtr->woff += n; reqPtr->avail += n; ! /* * Scan lines until start of content. */ ! while (reqPtr->coff == 0) { ! /* ! * Find the next line. ! */ ! ! s = bufPtr->string + reqPtr->roff; ! e = strchr(s, '\n'); ! if (e == NULL) { ! /* ! * Input not yet null terminated - request more. ! */ ! ! return SOCK_MORE; ! } ! ! /* ! * Update next read pointer to end of this line. ! */ ! ! cnt = e - s + 1; ! reqPtr->roff += cnt; ! reqPtr->avail -= cnt; ! if (e > s && e[-1] == '\r') { ! --e; ! } ! ! /* ! * Check for end of headers. ! */ ! ! if (e == s) { /* * Look for a blank line on its own prior to any "real" --- 1421,1465 ---- n = (*sockPtr->drvPtr->proc)(DriverRecv, sock, &buf, 1); if (n <= 0) { ! return SOCK_ERROR; } Tcl_DStringSetLength(bufPtr, len + n); reqPtr->woff += n; reqPtr->avail += n; ! /* * Scan lines until start of content. */ ! while (reqPtr->coff == 0) { ! /* ! * Find the next line. ! */ ! ! s = bufPtr->string + reqPtr->roff; ! e = strchr(s, '\n'); ! if (e == NULL) { ! /* ! * Input not yet null terminated - request more. ! */ ! ! return SOCK_MORE; ! } ! ! /* ! * Update next read pointer to end of this line. ! */ ! ! cnt = e - s + 1; ! reqPtr->roff += cnt; ! reqPtr->avail -= cnt; ! if (e > s && e[-1] == '\r') { ! --e; ! } ! ! /* ! * Check for end of headers. ! */ ! ! if (e == s) { /* * Look for a blank line on its own prior to any "real" *************** *** 1468,1517 **** * connection. */ ! if (bufPtr->length == 0) { ! if (++reqPtr->leadblanks > 2) { ! return SOCK_ERROR; ! } ! reqPtr->woff = reqPtr->roff = 0; ! Tcl_DStringSetLength(bufPtr, 0); ! return SOCK_MORE; ! } ! reqPtr->coff = reqPtr->roff; ! s = Ns_SetIGet(reqPtr->headers, "content-length"); ! if (s != NULL) { ! reqPtr->length = atoi(s); ! if (reqPtr->length < 0 ! && reqPtr->length > sockPtr->drvPtr->servPtr->limits.maxpost) { return SOCK_ERROR; } ! } ! } else { ! save = *e; ! *e = '\0'; ! if (reqPtr->request == NULL) { ! reqPtr->request = Ns_ParseRequest(s); ! if (reqPtr->request == NULL) { ! /* ! * Invalid request. ! */ ! ! return SOCK_ERROR; ! } ! } else if (Ns_ParseHeader(reqPtr->headers, s, Preserve) != NS_OK) { ! /* ! * Invalid header. ! */ ! return SOCK_ERROR; ! } ! *e = save; ! if (reqPtr->request->version <= 0.0) { ! /* ! * Pre-HTTP/1.0 request. ! */ ! reqPtr->coff = reqPtr->roff; ! } ! } } --- 1467,1522 ---- * connection. */ ! if (bufPtr->length == 0) { ! if (++reqPtr->leadblanks > 2) { return SOCK_ERROR; } ! reqPtr->woff = reqPtr->roff = 0; ! Tcl_DStringSetLength(bufPtr, 0); ! return SOCK_MORE; ! } ! reqPtr->coff = reqPtr->roff; ! s = Ns_SetIGet(reqPtr->headers, "content-length"); ! if (s != NULL) { ! int length; ! /* ! * Honour meaningfull remote ! * content-length hints only. ! */ ! length = atoi(s); ! if (length >= 0) { ! reqPtr->length = length; ! } ! } ! } else { ! save = *e; ! *e = '\0'; ! if (reqPtr->request == NULL) { ! reqPtr->request = Ns_ParseRequest(s); ! if (reqPtr->request == NULL) { ! /* ! * Invalid request. ! */ ! ! return SOCK_ERROR; ! } ! } else if (Ns_ParseHeader(reqPtr->headers, s, Preserve) != NS_OK) { ! /* ! * Invalid header. ! */ ! ! return SOCK_ERROR; ! } ! *e = save; ! if (reqPtr->request->version <= 0.0) { ! /* ! * Pre-HTTP/1.0 request. ! */ ! ! reqPtr->coff = reqPtr->roff; ! } ! } } *************** *** 1519,1528 **** * Check if all content has arrived. */ ! if (reqPtr->coff > 0 && reqPtr->length <= reqPtr->avail) { ! reqPtr->content = bufPtr->string + reqPtr->coff; ! reqPtr->next = reqPtr->content; ! reqPtr->avail = reqPtr->length; ! /* * Ensure that there are no 'bonus' crlf chars left visible --- 1524,1533 ---- * Check if all content has arrived. */ ! if (reqPtr->coff > 0 && reqPtr->length <= reqPtr->avail) { ! reqPtr->content = bufPtr->string + reqPtr->coff; ! reqPtr->next = reqPtr->content; ! reqPtr->avail = reqPtr->length; ! /* * Ensure that there are no 'bonus' crlf chars left visible *************** *** 1533,1544 **** reqPtr->content[reqPtr->length] = '\0'; } ! ! return (reqPtr->request ? SOCK_READY : SOCK_ERROR); } ! /* * Wait for more input. */ ! return SOCK_MORE; } --- 1538,1549 ---- reqPtr->content[reqPtr->length] = '\0'; } ! ! return (reqPtr->request ? SOCK_READY : SOCK_ERROR); } ! /* * Wait for more input. */ ! return SOCK_MORE; } Index: server.c =================================================================== RCS file: /cvsroot/naviserver/naviserver/nsd/server.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** server.c 13 Jun 2005 01:55:14 -0000 1.6 --- server.c 16 Jun 2005 18:31:11 -0000 1.7 *************** *** 1,7 **** /* ! * The contents of this file are subject to the AOLserver Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at ! * http://aolserver.com/. * * Software distributed under the License is distributed on an "AS IS" --- 1,7 ---- /* ! * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at ! * http://mozilla.org/. * * Software distributed under the License is distributed on an "AS IS" *************** *** 300,306 **** servPtr->limits.maxheaders = 64 * 1024; /* 64k */ } - if (!Ns_ConfigGetInt(path, "maxpost", &servPtr->limits.maxpost)) { - servPtr->limits.maxpost = 256 * 1024; /* 256k */ - } /* --- 300,303 ---- *************** *** 348,357 **** if (!Ns_ConfigGetBool(path, "cache", &i) || i) { if (!Ns_ConfigGetInt(path, "cachemaxsize", &n)) { ! n = 5 * 1024 * 1000; ! } ! if (!Ns_ConfigGetInt(path, "cachemaxentry", &i) || i < 0) { ! i = n / 10; ! } ! servPtr->fastpath.cachemaxentry = i; servPtr->fastpath.cache = NsFastpathCache(server, n); } --- 345,354 ---- if (!Ns_ConfigGetBool(path, "cache", &i) || i) { if (!Ns_ConfigGetInt(path, "cachemaxsize", &n)) { ! n = 5 * 1024 * 1000; ! } ! if (!Ns_ConfigGetInt(path, "cachemaxentry", &i) || i < 0) { ! i = n / 10; ! } ! servPtr->fastpath.cachemaxentry = i; servPtr->fastpath.cache = NsFastpathCache(server, n); } *************** *** 365,384 **** if (dirf != NULL) { dirf = ns_strdup(dirf); ! p = dirf; ! n = 1; while ((p = (strchr(p, ','))) != NULL) { ! ++n; ! ++p; ! } ! servPtr->fastpath.dirc = n; ! servPtr->fastpath.dirv = ns_malloc(sizeof(char *) * n); ! for (i = 0; i < n; ++i) { p = strchr(dirf, ','); ! if (p != NULL) { ! *p++ = '\0'; ! } ! servPtr->fastpath.dirv[i] = dirf; ! dirf = p; ! } } servPtr->fastpath.serverdir = Ns_ConfigGetValue(path, "serverdir"); --- 362,381 ---- if (dirf != NULL) { dirf = ns_strdup(dirf); ! p = dirf; ! n = 1; while ((p = (strchr(p, ','))) != NULL) { ! ++n; ! ++p; ! } ! servPtr->fastpath.dirc = n; ! servPtr->fastpath.dirv = ns_malloc(sizeof(char *) * n); ! for (i = 0; i < n; ++i) { p = strchr(dirf, ','); ! if (p != NULL) { ! *p++ = '\0'; ! } ! servPtr->fastpath.dirv[i] = dirf; ! dirf = p; ! } } servPtr->fastpath.serverdir = Ns_ConfigGetValue(path, "serverdir"); *************** *** 403,407 **** p = Ns_ConfigGetValue(path, "directorylisting"); if (p != NULL && (STREQ(p, "simple") || STREQ(p, "fancy"))) { ! p = "_ns_dirlist"; } servPtr->fastpath.dirproc = Ns_ConfigGetValue(path, "directoryproc"); --- 400,404 ---- p = Ns_ConfigGetValue(path, "directorylisting"); if (p != NULL && (STREQ(p, "simple") || STREQ(p, "fancy"))) { ! p = "_ns_dirlist"; } servPtr->fastpath.dirproc = Ns_ConfigGetValue(path, "directoryproc"); |