|
...
|
...
|
@@ -1144,12 +1144,15 @@ static int getfile(const char *srcfile, const char *destfile, const char *hostna
|
|
1144
|
1144
|
closesocket(sd);
|
|
1145
|
1145
|
close(fd);
|
|
1146
|
1146
|
|
|
1147
|
|
- if(bread == -1 || !totaldownloaded) {
|
|
|
1147
|
+ if(bread == -1) {
|
|
1148
|
1148
|
logg("%cgetfile: Download interrupted: %s (IP: %s)\n", logerr ? '!' : '^', strerror(errno), ipaddr);
|
|
1149
|
1149
|
mirman_update(mdat->currip, mdat->af, mdat, 2);
|
|
1150
|
1150
|
return 52;
|
|
1151
|
1151
|
}
|
|
1152
|
1152
|
|
|
|
1153
|
+ if(!totaldownloaded)
|
|
|
1154
|
+ return 53;
|
|
|
1155
|
+
|
|
1153
|
1156
|
if(totalsize > 0)
|
|
1154
|
1157
|
logg("Downloading %s [%i%%]\n", srcfile, percentage);
|
|
1155
|
1158
|
else
|
|
...
|
...
|
@@ -1250,7 +1253,10 @@ static int getpatch(const char *dbname, const char *tmpdir, int version, const c
|
|
1250
|
1250
|
|
|
1251
|
1251
|
logg("*Retrieving http://%s/%s\n", hostname, patch);
|
|
1252
|
1252
|
if((ret = getfile(patch, tempname, hostname, ip, localip, proxy, port, user, pass, uas, ctimeout, rtimeout, mdat, logerr, can_whitelist))) {
|
|
1253
|
|
- logg("%cgetpatch: Can't download %s from %s\n", logerr ? '!' : '^', patch, hostname);
|
|
|
1253
|
+ if(ret == 53)
|
|
|
1254
|
+ logg("Empty script %s, need to download entire database\n", patch);
|
|
|
1255
|
+ else
|
|
|
1256
|
+ logg("%cgetpatch: Can't download %s from %s\n", logerr ? '!' : '^', patch, hostname);
|
|
1254
|
1257
|
unlink(tempname);
|
|
1255
|
1258
|
free(tempname);
|
|
1256
|
1259
|
CHDIR_ERR(olddir);
|
|
...
|
...
|
@@ -1643,7 +1649,8 @@ static int updatedb(const char *dbname, const char *hostname, char *ip, int *sig
|
|
1643
|
1643
|
if(ret) {
|
|
1644
|
1644
|
cli_rmdirs(tmpdir);
|
|
1645
|
1645
|
free(tmpdir);
|
|
1646
|
|
- logg("^Incremental update failed, trying to download %s\n", cvdfile);
|
|
|
1646
|
+ if(ret != 53)
|
|
|
1647
|
+ logg("^Incremental update failed, trying to download %s\n", cvdfile);
|
|
1647
|
1648
|
mirman_whitelist(mdat, 2);
|
|
1648
|
1649
|
ret = getcvd(cvdfile, newfile, hostname, ip, localip, proxy, port, user, pass, uas, newver, ctimeout, rtimeout, mdat, logerr, can_whitelist);
|
|
1649
|
1650
|
if(ret) {
|