aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/server/sws.c25
1 files changed, 17 insertions, 8 deletions
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;