On Fri, 2009-06-19 at 21:17 +1000, John Marshall wrote:
After some help with debugging tips on #dovecot, I have established that a sieve script on Dovecot 1.1.16 has to be less than 8kB in order to be retrieved by a managesieve client. I have been using managesieve for about 6 months over as many 1.1.n versions of dovecot as have been around during that time and hit this problem when I upgraded to Dovecot 1.1.16. I have gone back to Dovecot 1.1.15 and can once again manage my 9kB sieve script remotely.
I suppose it's because of this patch: diff -r 6604f9980a93 -r 7f6aaca52639 src/lib/ostream-file.c --- a/src/lib/ostream-file.c Sun May 17 22:06:11 2009 -0400 +++ b/src/lib/ostream-file.c Mon Jun 01 01:46:52 2009 -0400 @@ -631,6 +631,10 @@ } while ((uoff_t)ret != send_size); i_stream_seek(instream, v_offset); + if (ret == 0) { + /* we should be at EOF, verify it by reading instream */ + (void)i_stream_read(instream); + } return ret < 0 ? -1 : (off_t)(instream->v_offset - start_offset); } But that code is supposed to fix it, not break it..