Second attempt unzip mail archives patch
This commit is contained in:
parent
6e31daa907
commit
509b9bbc2b
@ -4610,6 +4610,9 @@ v0.33.20 10-Feb-2002
|
|||||||
from a uplink which has a echomail taglist in one of the
|
from a uplink which has a echomail taglist in one of the
|
||||||
mailgroups defined. The area is created with the defaults
|
mailgroups defined. The area is created with the defaults
|
||||||
from the mailgroup.
|
from the mailgroup.
|
||||||
|
If mbfido fails to unzip a incoming mailarchive, a second
|
||||||
|
attempt is done after a sync() and one second delay. This
|
||||||
|
seems to be a kernel flush problem.
|
||||||
|
|
||||||
mball:
|
mball:
|
||||||
Will not crash anymore when it needs more then 10 minutes to
|
Will not crash anymore when it needs more then 10 minutes to
|
||||||
|
@ -164,14 +164,20 @@ int unpack(char *fn)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
rc = execute(cmd,fn,(char *)NULL,(char*)"/dev/null",(char*)"/dev/null",(char*)"/dev/null");
|
if ((rc = execute(cmd,fn,(char *)NULL,(char*)"/dev/null",(char*)"/dev/null",(char*)"/dev/null")) == 0) {
|
||||||
if (rc == 0)
|
|
||||||
unlink(fn);
|
unlink(fn);
|
||||||
else {
|
} else {
|
||||||
|
sync();
|
||||||
|
sleep(1);
|
||||||
|
Syslog('!', "Warning: unpack %s failed, trying again after sync()");
|
||||||
|
if ((rc = execute(cmd,fn,(char *)NULL,(char*)"/dev/null",(char*)"/dev/null",(char*)"/dev/null")) == 0) {
|
||||||
|
unlink(fn);
|
||||||
|
} else {
|
||||||
strncpy(newname,fn,sizeof(newname)-1);
|
strncpy(newname,fn,sizeof(newname)-1);
|
||||||
strcpy(newname+8,".bad");
|
strcpy(newname+8,".bad");
|
||||||
rename(fn,newname);
|
rename(fn,newname);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
free(cmd);
|
free(cmd);
|
||||||
funlock(ld);
|
funlock(ld);
|
||||||
|
Reference in New Issue
Block a user