summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--src/reqs.c14
2 files changed, 12 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 96deb2d..5edac72 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,9 @@
* src/reqs.c (clientreq): Removed the hack for POST methods with
regard to anonymous access.
+ (clientreq): fixed a bug with the request line. If the PATH was
+ empty, it would send an malformed request to the server. This is
+ checked now and if the path is empty, a "/" is used instread.
* src/config.h (SOCK_TIMEOUT): Increased the time out to 10
seconds.
diff --git a/src/reqs.c b/src/reqs.c
index bf5fca4..0c33e19 100644
--- a/src/reqs.c
+++ b/src/reqs.c
@@ -1,4 +1,4 @@
-/* $Id: reqs.c,v 1.6 2000-03-31 20:13:36 rjkaes Exp $
+/* $Id: reqs.c,v 1.7 2000-03-31 22:55:22 rjkaes Exp $
*
* This is where all the work in tinyproxy is actually done. Incoming
* connections are added to the active list of connections and then the header
@@ -230,10 +230,14 @@ static int clientreq(struct conn_s *connptr)
memcpy(request, inbuf, pmatch[METHOD_IND].rm_eo);
request[pmatch[METHOD_IND].rm_eo] = '\0';
strcat(request, " ");
- strcat(request, uri->path);
- if (uri->query) {
- strcat(request, "?");
- strcat(request, uri->query);
+ if (strlen(uri->path) > 0) {
+ strcat(request, uri->path);
+ if (uri->query) {
+ strcat(request, "?");
+ strcat(request, uri->query);
+ }
+ } else {
+ strcat(request, "/");
}
strcat(request, " HTTP/1.0\r\n");