]>
Commit | Line | Data |
---|---|---|
b0581306 AM |
1 | diff -urN exim-4.62.org/src/malware.c exim-4.62/src/malware.c |
2 | --- exim-4.62.org/src/malware.c 2006-04-28 12:32:22.000000000 +0200 | |
3 | +++ exim-4.62/src/malware.c 2006-06-13 18:41:29.000000000 +0200 | |
4 | @@ -20,6 +20,8 @@ | |
5 | #define SHUT_WR 1 | |
6 | #endif | |
7 | ||
8 | +#define MALWARE_TIMEOUT 120 | |
9 | + | |
10 | #define DRWEBD_SCAN_CMD (1) /* scan file, buffer or diskfile */ | |
11 | #define DRWEBD_RETURN_VIRUSES (1<<0) /* ask daemon return to us viruses names from report */ | |
12 | #define DRWEBD_IS_MAIL (1<<19) /* say to daemon that format is "archive MAIL" */ | |
13 | @@ -557,7 +559,7 @@ | |
14 | return DEFER; | |
15 | }; | |
16 | ||
17 | - bread = read(sock, av_buffer, sizeof(av_buffer)); | |
18 | + bread = ip_recv(sock, av_buffer, sizeof(av_buffer), MALWARE_TIMEOUT); | |
19 | if (bread >0) av_buffer[bread]='\0'; | |
20 | if (bread < 0) { | |
21 | (void)close(sock); | |
22 | @@ -591,7 +593,7 @@ | |
23 | i = 0; | |
24 | memset(av_buffer, 0, sizeof(av_buffer)); | |
25 | do { | |
26 | - bread=read(sock, &av_buffer[i], 1); | |
27 | + bread=ip_recv(sock, &av_buffer[i], 1, MALWARE_TIMEOUT); | |
28 | if (bread < 0) { | |
29 | (void)close(sock); | |
30 | log_write(0, LOG_MAIN|LOG_PANIC, | |
31 | @@ -976,7 +978,7 @@ | |
32 | ||
33 | /* wait for result */ | |
34 | memset(av_buffer, 0, sizeof(av_buffer)); | |
35 | - if ((!(bread = read(sock, av_buffer, sizeof(av_buffer))) > 0)) { | |
36 | + if ((!(bread = ip_recv(sock, av_buffer, sizeof(av_buffer), MALWARE_TIMEOUT)) > 0)) { | |
37 | (void)close(sock); | |
38 | log_write(0, LOG_MAIN|LOG_PANIC, | |
39 | "malware acl condition: unable to read from sophie UNIX socket (%s)", sophie_options); | |
40 | @@ -1098,7 +1100,7 @@ | |
41 | return DEFER; | |
42 | } | |
43 | memset(av_buffer2, 0, sizeof(av_buffer2)); | |
44 | - bread = read(sock, av_buffer2, sizeof(av_buffer2)); | |
68530e40 | 45 | + bread = ip_recv(sock, av_buffer2, sizeof(av_buffer2), MALWARE_TIMEOUT); |
b0581306 AM |
46 | |
47 | if (bread < 0) { | |
48 | log_write(0, LOG_MAIN|LOG_PANIC, | |
b0581306 AM |
49 | @@ -1238,7 +1240,7 @@ |
50 | ||
51 | /* Read the result */ | |
52 | memset(av_buffer, 0, sizeof(av_buffer)); | |
53 | - bread = read(sock, av_buffer, sizeof(av_buffer)); | |
54 | + bread = ip_recv(sock, av_buffer, sizeof(av_buffer), MALWARE_TIMEOUT); | |
55 | (void)close(sock); | |
56 | ||
57 | if (!(bread > 0)) { |