Browse code

Honor 'Connection: close' header

Dario Rodriguez authored on 02/07/2014 12:27:46
Showing 1 changed files
... ...
@@ -1027,9 +1027,12 @@ wk_clientservicereadheader(_wk *web, wk_client *client)
1027 1027
                 if((sep=strchr(ptr,':'))==NULL || sep[1]!=' ')
1028 1028
                         return(-1); /* header not in format "name: value" */
1029 1029
                 /* check for keepalive header */
1030
-                if(memcmp(ptr,"Connection: ",12)==0 &&
1031
-                  (strcmp(ptr+12,"keep-alive")==0 || strcmp(ptr+12,"Keep-Alive")==0))
1030
+                if(memcmp(ptr,"Connection: ",12)==0) {
1031
+		  if(strcmp(ptr+12,"keep-alive")==0 || strcmp(ptr+12,"Keep-Alive")==0)
1032 1032
                         client->keepalive=1;
1033
+                  else if(strcmp(ptr+12,"close")==0 || strcmp(ptr+12,"Close")==0)
1034
+                        client->keepalive=0;
1035
+		}
1033 1036
                 sbuf_add(hbuf,ptr,strlen(ptr)+1);
1034 1037
                 ptr+=strlen(ptr)+1;
1035 1038
         }