blob: 3c56506b00c1f60cf9250c4f7457e9c1474b4857 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
Sendmail 8.12.x
The MTA may erroneously detect a communication failure with libmilter
(EINTR in select(2)). [ http://www.sendmail.org/~ca/email/sm-812.html ]
Index: milter.c
===================================================================
RCS file: /cvs/sendmail/milter.c,v
retrieving revision 8.187
retrieving revision 8.188
diff -u -r8.187 -r8.188
--- sendmail/milter.c 2002/01/19 00:48:57 8.187
+++ sendmail/milter.c 2002/01/21 04:07:02 8.188
@@ -139,14 +139,17 @@
return NULL; \
} \
\
- FD_ZERO(&fds); \
- SM_FD_SET(m->mf_sock, &fds); \
- tv.tv_sec = (secs); \
- tv.tv_usec = 0; \
- ret = select(m->mf_sock + 1, \
- (write) ? NULL : &fds, \
- (write) ? &fds : NULL, \
- NULL, &tv); \
+ do \
+ { \
+ FD_ZERO(&fds); \
+ SM_FD_SET(m->mf_sock, &fds); \
+ tv.tv_sec = (secs); \
+ tv.tv_usec = 0; \
+ ret = select(m->mf_sock + 1, \
+ (write) ? NULL : &fds, \
+ (write) ? &fds : NULL, \
+ NULL, &tv); \
+ } while (ret < 0 && errno == EINTR); \
\
switch (ret) \
{ \
|