diff options
Diffstat (limited to 'imap/mainloop.c')
| -rw-r--r-- | imap/mainloop.c | 7 | 
1 files changed, 5 insertions, 2 deletions
| diff --git a/imap/mainloop.c b/imap/mainloop.c index b58ae6f..f2224a8 100644 --- a/imap/mainloop.c +++ b/imap/mainloop.c @@ -19,7 +19,7 @@  #include	"numlib/numlib.h" -extern int do_imap_command(const char *); +extern int do_imap_command(const char *, int *);  extern unsigned long header_count, body_count;  extern unsigned long bytes_received_count, bytes_sent_count; @@ -119,18 +119,21 @@ void mainloop(void)  			curtoken->tokentype == IT_NUMBER)  		{  		int	rc; +		int	flushflag=0;  			if (strlen(tag)+strlen(curtoken->tokenbuf) > IT_MAX_ATOM_SIZE)  				write_error_exit("max atom size too small");  			strncat(tag, curtoken->tokenbuf, IT_MAX_ATOM_SIZE); -			rc=do_imap_command(tag); +			rc=do_imap_command(tag, &flushflag);  			if (rc == 0)  			{  				noerril = 0;  				writeflush();  				read_eol(); +				if (flushflag) +					readflush();  				continue;  			}  			if (rc == -2) | 
