]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
pop3: Recent corking change caused hangs.
authorTimo Sirainen <tss@iki.fi>
Sat, 16 Oct 2010 17:33:42 +0000 (18:33 +0100)
committerTimo Sirainen <tss@iki.fi>
Sat, 16 Oct 2010 17:33:42 +0000 (18:33 +0100)
src/pop3/pop3-client.c

index 63d7361d0a37199eec4db920f6c294be777290ff..66d4eb17eef0458f35399d3e60018306a979555b 100644 (file)
@@ -667,7 +667,15 @@ static int client_output(struct client *client)
        }
 
        o_stream_uncork(client->output);
-       return client->cmd == NULL;
+       if (client->cmd != NULL) {
+               /* command not finished yet */
+               return 0;
+       } else if (client->io == NULL) {
+               /* data still in output buffer, get back here to add IO */
+               return 0;
+       } else {
+               return 1;
+       }
 }
 
 void clients_destroy_all(void)