September 16, 2007
Trom has came into #lnet recenently and told me of some odd problems with HTTP and SMTP he had. The HTTP problem is most probably a GTK bug in TMemo, but the SMTP problem turned out to be a bug in lNet regarding RFC compliance.
I had 2 problems.
1. The DATA command is defined by RFC to be “DATA <CRLF>” and one should wait for reply from the server before commencing the send of actual data. I had not only omitted the wait, but also used the format “DATA <first line of data><CRLF>”. Oddly enough some servers have accepted this happily. This has been fixed in 0.5.8 release.
2. The line length I used in SMTP was 74. This is a very outdated number, and since a long time ago, 1000 chars per line are allowed. There was also a bug in the line breaking algorithm which could cause data corruption on bigger attachments. I fixed both of these issues in 0.5.8 release.
I must say that I was honestly skeptical about Trom’s reports because SMTP worked reliably for most people until now. It just proves that skepticism isn’t always the best course of action.
Hopefully 0.5.8 is the last of 0.5 line and 0.6 will be released soon. More on that later…