[Dovecot] Mail.app IDLE support
Martin R. Ehmsen
martin at ehmsen.org
Thu Nov 15 22:08:31 EET 2007
On 14/11/2007, at 14.21, Jason Fesler wrote:
>> Any hint on how to use tcpdump to only grab the interesting parts?
>
> tcpdump port 143
>
> or whatever.
>
>> My knowledge of tcpdump is very limited and I only seem to be able
>> to get a lot of noise out of it.
>
> Look at ngrep - it lets you use both tcpdump expressions, *and*
> further filter by regular expression. And, it shows ascii output
> instead of all the hex crap - makes it a lot easier to follow ascii
> based protocols.
>
> Either way, you'll want to disable SSL on the client, so that you
> can see the traffic properly. :-)
I installed dovecot 1.0.7 on my leopard laptop, disabled SSL and
started it on the loopback device.
Then I connected to it from Mail.app using IMAP and the IDLE option in
Mail.app, while running:
tcpdump -A -s 0 -i lo0 'tcp port imap and (((ip[2:2] -
((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' > dump.txt
Here is what initially came out of the dump:
<cut a lot of stuff>
14:46:52.589999 IP localhost.50770 > localhost.imap: P 394:404(10) ack
1237 win 65535 <nop,nop,timestamp 497198901 497198901>
E..>.. at .@............R...V?2(k.......2.....
...5...57.2 IDLE
14:46:52.590346 IP localhost.imap > localhost.50770: P 1237:1247(10)
ack 404 win 65535 <nop,nop,timestamp 497198901 497198901>
E..> . at .@..............R(k...V?<.....2.....
...5...5+ idling
14:46:57.448879 IP localhost.imap > localhost.50777: P
355780982:355781003(21) ack 2104750877 win 65535 <nop,nop,timestamp
497198950 497198950>
E..I.. at .@..............Y.4.v}s.......=.....
...f...f* OK Dovecot ready.
14:46:57.459450 IP localhost.50777 > localhost.imap: P 1:17(16) ack 21
win 65535 <nop,nop,timestamp 497198950 497198950>
E..D.. at .@............Y..}s...4.......8.....
...f...f1.6 CAPABILITY
14:46:57.459654 IP localhost.imap > localhost.50777: P 21:187(166) ack
17 win 65535 <nop,nop,timestamp 497198950 497198950>
E..... at .@..............Y.4..}s.-...........
...f...f* CAPABILITY IMAP4rev1 SASL-IR SORT THREAD=REFERENCES
MULTIAPPEND UNSELECT LITERAL+ IDLE CHILDREN NAMESPACE LOGIN-REFERRALS
AUTH=PLAIN
1.6 OK Capability completed.
<and a lot of more stuff and finally it came to a halt>
14:46:57.542907 IP localhost.imap > localhost.50772: P 449:525(76) ack
209 win 65535 <nop,nop,timestamp 497198951 497198951>
E...w. at .@..............T.E....o`.....t.....
...g...g* STATUS "Deleted Messages" (UIDNEXT 3 UNSEEN 0)
7.3 OK Status completed.
14:48:52.590857 IP localhost.imap > localhost.50770: P 1247:1264(17)
ack 404 win 65535 <nop,nop,timestamp 497200094 497198901>
E..EI. at .@..............R(k...V?<.....9.....
.......5* OK Still here
14:50:52.590661 IP localhost.imap > localhost.50770: P 1264:1281(17)
ack 404 win 65535 <nop,nop,timestamp 497201286 497200094>
E..E.. at .@..............R(k...V?<.....9.....
........* OK Still here
14:52:52.590964 IP localhost.imap > localhost.50770: P 1281:1298(17)
ack 404 win 65535 <nop,nop,timestamp 497202478 497201286>
E..E.. at .@..............R(k...V?<.....9.....
........* OK Still here
The above shows the only time IDLE is every used (except when Mail.app
asks for the capabilities of the server).
Somewhere after 14:46:57, but before 14:48:52, I copied (since I have
no SMTP server running on my laptop) a new mail into the new directory
of the maildir I subscribed to. But as you can see from the above,
somehow dovecot failed to notice the new mail.
I don't use (d/i)notify or kqueue, but I did set dovecot up to check
every 30 sec, which it obviously didn't.
Btw. the mail arrives fine if I manually check for new mail in Mail.app.
I can provide the full dump above if anybody thinks it is going to be
useful?
Martin
More information about the dovecot
mailing list