support HUGE requests too

This commit is contained in:
Daniel Stenberg 2002-02-25 09:42:58 +00:00
parent 6a62fc4a40
commit d86f9611b3
1 changed files with 17 additions and 8 deletions

View File

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