Tk Library Source Code

View Ticket
Login
Ticket UUID: 533025
Title: sendmessage: response too short
Type: Bug Version: None
Submitter: nobody Created on: 2002-03-21 12:00:53
Subsystem: smtp Assigned To: mrose
Priority: 7 High Severity:
Status: Closed Last Modified: 2002-04-04 23:29:52
Resolution: Accepted Closed By: andreas_kupries
    Closed on: 2002-04-04 16:29:52
Description:
smtp::sendmessage can return the error "response too 
short" when sending through a mail server that 
responds very quickly.
This is due to smtp::readable not handling the "no 
full-line available" condition.
I have attached a fix that works for me, in the form 
of a diff against smtp.tcl from tcllib0.6.1.

Regards
Simon Scott
User Comments: andreas_kupries added on 2002-04-04 23:29:52:
Logged In: YES 
user_id=75003

And committed.

andreas_kupries added on 2002-04-04 23:28:39:

File Added - 20572: 533025.diff

Logged In: YES 
user_id=75003

Here is the final patch.

sjscott added on 2002-04-03 15:26:59:
Logged In: YES 
user_id=255303

I've downloaded tcllib-1.2, will generate patch and send it 
along.
Thanks

andreas_kupries added on 2002-04-03 10:39:55:
Logged In: YES 
user_id=75003

I got a 'go' by marshall. I don't have
tcllib 0.6.1 available and therefore
ask the submitter to generate a patch
against tcllib 1.2. Please use the
option "-u" when executing "diff". This
will generate a "unified diff" which is
generally easier to read and also easier
to apply as patch will get some context
to check against.

Either attach the patch here or send it
to me.

nobody added on 2002-03-21 19:04:20:
Logged In: NO 

Looks like the attachment didn't get there, here are the 
diffs:

1065c1065
<             vwait [subst $token](readable)
---
>             vwait $token
1144c1144,1147
<     if {[catch { gets $state(sd) state(line) } result]} {
---
>     if {[eof $state(sd)]} {
>         set state(readable) -3
>         set state(error) "premature end-of-file from 
server"
>     } elseif {[catch { gets $state(sd) state(line) } 
result]} {
1147,1151d1149
<     } elseif {$result == -1} {
<         if {[eof $state(sd)]} {
<             set state(readable) -3
<             set state(error) "premature end-of-file from 
server"
<         }
1160c1158
<     if {$state(readable) < 0} {
---
>     if {$state(readable) != 1} {

Attachments: