quick recovery of thread resources when clamd clients abandon stream connection requests

git-svn: trunk@1585
remotes/push_mirror/metadata
Tomasz Kojm 21 years ago
parent d704c68e6b
commit c477e3ba94
  1. 6
      clamav-devel/ChangeLog
  2. 10
      clamav-devel/clamd/scanner.c
  3. 3
      clamav-devel/shared/output.c

@ -1,3 +1,9 @@
Thu May 26 04:03:31 CEST 2005 (tk)
----------------------------------
* clamd/scanner.c: quick recovery of thread resources when clamd clients
abandon stream connection requests (patch by Mark
Pizzolato <clamav-devel*subscriptions.pizzolato.net>)
Thu May 26 03:20:44 CEST 2005 (tk)
----------------------------------
* libclamav/others.c: print warnings and errors in single call to write

@ -380,7 +380,11 @@ int scanstream(int odesc, unsigned long int *scanned, const struct cl_node *root
return -1;
} else {
listen(sockfd, 1);
mdprintf(odesc, "PORT %d\n", port);
if(mdprintf(odesc, "PORT %d\n", port) <= 0) {
logg("!ScanStream: error transmitting port.\n");
close(sockfd);
return -1;
}
}
switch(retval = poll_fd(sockfd, timeout)) {
@ -478,11 +482,11 @@ int scanstream(int odesc, unsigned long int *scanned, const struct cl_node *root
virusaction("stream", virname, copt);
} else if(ret != CL_CLEAN) {
mdprintf(odesc, "stream: %s ERROR\n", cl_strerror(ret));
logg("stream: %s ERROR\n", cl_strerror(ret));
logg("stream %d: %s ERROR\n", port, cl_strerror(ret));
} else {
mdprintf(odesc, "stream: OK\n");
if(logok)
logg("stream: OK\n");
logg("stream %d: OK\n", port);
}
return ret;

@ -73,8 +73,7 @@ int mdprintf(int desc, const char *str, ...)
va_start(args, str);
bytes = vsnprintf(buff, 512, str, args);
va_end(args);
write(desc, buff, bytes);
return bytes;
return send(desc, buff, bytes, 0);
}
void logg_close(void) {

Loading…
Cancel
Save