Browse code

improve new database installation under w32

git-svn-id: file:///var/lib/svn/clamav-devel/trunk/clamav-devel@1429 77e5149b-7576-45b1-b177-96237e5ba77b

Tomasz Kojm authored on 2005/03/26 03:02:11
Showing 2 changed files
... ...
@@ -1,3 +1,8 @@
1
+Fri Mar 25 18:58:29 CET 2005 (tk)
2
+---------------------------------
3
+  * freshclam: improve new database installation under w32 (thanks to Boguslaw
4
+	       Brandys <bbrandys*clamav.net>)
5
+
1 6
 Fri Mar 25 18:47:34 CET 2005 (tk)
2 7
 ---------------------------------
3 8
   * freshclam: fork before system() call in daemon mode (patch by Per Jessen
... ...
@@ -410,9 +410,16 @@ int downloaddb(const char *localname, const char *remotename, const char *hostna
410 410
 	unlink(tempname);
411 411
 	free(tempname);
412 412
 	return 53;
413
-    } else
414
-	rename(tempname, localname);
415
-
413
+    } else {
414
+    	if(rename(tempname, localname) == -1) {
415
+    	    mprintf("@Can't rename %s to %s: %s\n", tempname, localname, strerror(errno));
416
+    	    if(errno == EEXIST) {
417
+    	        unlink(localname);
418
+    	        if(rename(tempname, localname) == -1)
419
+                   mprintf("@All attempts to rename the temporary file failed: %s\n", strerror(errno));
420
+            }
421
+        }
422
+    }
416 423
 
417 424
     mprintf("%s updated (version: %d, sigs: %d, f-level: %d, builder: %s)\n", localname, current->version, current->sigs, current->fl, current->builder);
418 425
     logg("%s updated (version: %d, sigs: %d, f-level: %d, builder: %s)\n", localname, current->version, current->sigs, current->fl, current->builder);