Handle SIGPIPE separately. Many clients seem to not wait for a response to LOGOUT command.
Showing
1 changed file
with
12 additions
and
1 deletions
... | @@ -47,7 +47,18 @@ imap4d_signal (int signo) | ... | @@ -47,7 +47,18 @@ imap4d_signal (int signo) |
47 | exit (1); /* abort(); */ | 47 | exit (1); /* abort(); */ |
48 | } | 48 | } |
49 | 49 | ||
50 | if (signo == SIGALRM) | 50 | switch (signo) |
51 | { | ||
52 | case SIGALRM: | ||
51 | imap4d_bye (ERR_TIMEOUT); | 53 | imap4d_bye (ERR_TIMEOUT); |
54 | |||
55 | case SIGPIPE: | ||
56 | exit (0); | ||
57 | |||
58 | default: | ||
52 | imap4d_bye (ERR_SIGNAL); | 59 | imap4d_bye (ERR_SIGNAL); |
53 | } | 60 | } |
61 | } | ||
62 | |||
63 | |||
64 | ... | ... |
-
Please register or sign in to post a comment