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