Browse code

better handling of status codes from remote servers

git-svn: trunk@2135

Tomasz Kojm authored on 2006/07/28 07:39:04
Showing 2 changed files
... ...
@@ -1,3 +1,8 @@
1
+Fri Jul 28 00:32:31 CEST 2006 (tk)
2
+----------------------------------
3
+  * freshclam/manager.c: better handling of status codes from remote servers
4
+			 Thanks to Luca and Nigel
5
+
1 6
 Thu Jul 27 14:21:01 CEST 2006 (tk)
2 7
 ----------------------------------
3 8
   * sigtool/sigtool.c: --build: automatically create and verify cdiff file
... ...
@@ -392,6 +392,12 @@ static struct cl_cvd *remote_cvdhead(const char *file, const char *hostname, cha
392 392
 	*ims = 1;
393 393
     }
394 394
 
395
+    if(!strstr(buffer, "HTTP/1.1 200") && !strstr(buffer, "HTTP/1.0 200") &&
396
+       !strstr(buffer, "HTTP/1.1 206") && !strstr(buffer, "HTTP/1.0 206")) {
397
+	logg("!Unknown response from remote server\n");
398
+	return NULL;
399
+    }
400
+
395 401
     i = 3;
396 402
     ch = buffer + i;
397 403
     while(i < sizeof(buffer)) {
... ...
@@ -519,6 +525,12 @@ static int getfile(const char *srcfile, const char *destfile, const char *hostna
519 519
 	return 58;
520 520
     }
521 521
 
522
+    if(!strstr(buffer, "HTTP/1.1 200") && !strstr(buffer, "HTTP/1.0 200") &&
523
+       !strstr(buffer, "HTTP/1.1 206") && !strstr(buffer, "HTTP/1.0 206")) {
524
+	logg("!getfile: Unknown response from remote server\n");
525
+	return NULL;
526
+    }
527
+
522 528
     /* get size of resource */
523 529
     for(i = 0; (headerline = cli_strtok(buffer, i, "\n")); i++){
524 530
         if(strstr(headerline, "Content-Length:")) {