From: Daniel Stenberg <daniel@haxx.se>
Date: Mon, 25 Feb 2002 09:42:58 +0000 (+0000)
Subject: support HUGE requests too
X-Git-Tag: curl-7_9_5-pre4~17
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d86f9611b334f47b995d332f5900d0681fff4c3e;p=curl

support HUGE requests too
---

diff --git a/tests/server/sws.c b/tests/server/sws.c
index 9f3076aa5..6b6585007 100644
--- a/tests/server/sws.c
+++ b/tests/server/sws.c
@@ -135,13 +135,18 @@ void storerequest(char *reqbuf)
 }
 
 
-#define REQBUFSIZ 4096
-#define MAXDOCNAMELEN 1024
+#define REQBUFSIZ 50000
+#define REQBUFSIZ_TXT "49999"
+
+/* very-big-path support */
+#define MAXDOCNAMELEN 40000
+#define MAXDOCNAMELEN_TXT "39999"
+
 #define REQUEST_KEYWORD_SIZE 256
 static int get_request(int sock, int *part)
 {
-  char reqbuf[REQBUFSIZ], doc[MAXDOCNAMELEN];
-  char request[REQUEST_KEYWORD_SIZE];
+  static char reqbuf[REQBUFSIZ], doc[MAXDOCNAMELEN];
+  static char request[REQUEST_KEYWORD_SIZE];
   unsigned int offset = 0;
   int prot_major, prot_minor;
   char logbuf[256];
@@ -177,7 +182,7 @@ static int get_request(int sock, int *part)
   /* dump the request to an external file */
   storerequest(reqbuf);
 
-  if (sscanf(reqbuf, "%s %s HTTP/%d.%d",
+  if (sscanf(reqbuf, "%" REQBUFSIZ_TXT"s %" MAXDOCNAMELEN_TXT "s HTTP/%d.%d",
              request,
              doc,
              &prot_major,
@@ -191,10 +196,14 @@ static int get_request(int sock, int *part)
     /* get the number after it */
     if(ptr) {
 
-      sprintf(logbuf, "Got request: %s %s HTTP/%d.%d",
-              request, doc, prot_major, prot_minor);
+      if((strlen(doc) + strlen(request)) < 200)
+        sprintf(logbuf, "Got request: %s %s HTTP/%d.%d",
+                request, doc, prot_major, prot_minor);
+      else
+        sprintf(logbuf, "Got a *HUGE* request HTTP/%d.%d",
+                prot_major, prot_minor);
       logmsg(logbuf);
-
+      
       if(!strncmp("/verifiedserver", ptr, 15)) {
         logmsg("Are-we-friendly question received");
         return -2;