On 17 Jan 2002, Martin Wilck wrote:
As you may see from the different email address, I am currently off work
- I'll look deeper into your traces next week.
Many thanks for generating them, anyway.
From a first glance, it seems that the app doesn't do overlapped recv().
(lpOverlapped & completion_func are always NULL), so there should actually be no difference (well I'm now using recvmsg() instead of recv(), and the overhead for 16 bit Winsock apps is definitely larger, but I cannot see why that should slow everything down that much). Perhaps I screwed up the blocking semantics of non-overlapped IO.
That's what it looks like to me.
Have you generated the traces under exactly the same conditions? Can you explain what exactly you did?
Martin
To have exactly the same data being transferred, I would have to control both ends of the line, I think. I didn't do that.
What exactly do you mean, "what exactly I did?" ;-)
I have 2 versions of what is essentially the same app, a - well, functionally, it is sendmail/fetchmail: juno 2 and juno 4. I am not sure what protocol[s] it uses, but the app's internal logs mention postoffice, so maybe some perversion of POP3 or so. Anyway, start the app and it connects to its server, sends any mail queued to go out, and receives any mail the server has, and any ads the server sees fit to give it. I think it compresses/decompresses the data itself.
I applied the patches.
I sent this by juno 4 without trace:
Message-ID: 20020116.183513.134657248.0.lawson_whitney@juno.com
The app reported it failed to fetch my mail, try again later.
I tried again with a winsock trace, and it succeeded, producing socks.gz
I then ran juno 2 with trace, producing winsock.gz.
I reversed the patches, which took some time to compile and traced juno 4 again, producing sox.gz...
Put it this way: socks.gz and sox.gz are exactly the same app with and without the patches.
winsock.gz and winsox.gz are a different version of the app, with and without the patches.
Actual traffic is different for each session, but the pattern for each should be the same, if that makes any sense to you.
Lawson