[Raw Msg Headers][Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: chunking without pipelining



> Hi,
> 
> 	I had a problem with chunking, because I had pipelining
> turned off. The thing is when smtp does bdata_flush, it uses
> SS->...pipelining value to pass to smtpwrite. If pipelining is
> off, smtpwrite will wait for synchorneous smtp response after
> saying BDAT and smtpserver wait for data right after BDAT and
> not supposed to say anything before all the data is transferred.
> :(

	Uh oh...  Right you are, this should be the cure
	(this is cut&paste from xterm, so apply by hand):

RCS file: /home/mea/src/CVSROOT/zmailer/transports/smtp/smtp.c,v
retrieving revision 1.16
diff -u -r1.16 smtp.c
--- smtp.c      1998/03/03 21:58:41     1.16
+++ smtp.c      1998/03/11 11:04:18
@@ -3208,7 +3208,7 @@
        else
          sprintf(linebuf, "BDAT %d", SS->chunksize);
 
-       r = smtpwrite(SS, 1, linebuf, SS->pipelining, NULL);
+       r = smtpwrite(SS, 1, linebuf, 1 /* ALWAYS "pipeline" */, NULL);
        /* XX: BDAT syncing processing ??? */
        if (r != EX_OK)
          return r;
@@ -3225,7 +3225,7 @@
        }
        SS->chunksize = 0;
                       
-       if (lastflg)
+       if (lastflg || ! SS->pipelining)
          r = smtp_sync(SS, r, 0);
 
        return r;


> 							alexis
> -- 
> 		You can't teach a new mouse old clicks

/Matti Aarnio <mea@nic.funet.fi>