> TPOP3Send
> //SZ
> function TPOP3Send.ReadRAWResult: Integer;
> var
>   s: string;
> begin
>   Result := 0;
>   FFullResult.Clear;
>   s := FSock.RecvString(FTimeout);
>   if Pos('+OK', s) = 1 then
>     Result := 1;
>   FResultString := s;
> 
>   FFullResult.Clear;
>   repeat
>     FFullResult.Add(s);
>     s := FSock.RecvString(FTimeout);
>   until FSock.LastError <> 0;
> 
>   FResultCode := Result;
> end;

What is purpose of this code? Reading until socket error or timeout? What 
is practical usage of this? I still not understand why this must be part 
of standard POP3 implementation, this is why I am asking you.

I understand if someone need some special non-standard feature. He can 
just create class descendant as he wish. But must be all non-standard 
features included in standard synapse distributions? No or yes.. it 
depending on real wide usability, and I must understand why you need this 
feature firts, then I can made decision.

> THTTPSend
>
> This is a bug I reported earlier regarding Range. However it is not
> corrected, and the problem is that given rage from 0 - n will fail. As
> well, it is useful to handle error 416. Corrections:

Yes, this is a bug. It is fixed now, but by different way. 

Default values of range definitons stay on 0. Here is not reason to 
change this, because it have only one limitation.. you cannot ask range 0-
0.

So, you can set RangeStart to non-zero value - you are requesting from 
rangestart position to document end.

You can set RangeEnd to non-zero value - you are requesting document from 
start to requested position.

And you can set both to non-zero value - you are requesting part form 
RangeStart to RangeEnd.

As you can see, you can handle all cases without changed  default values 
and with full compatibility with old code.

>   Receiving := Receiving and (FResultCode <> 204);
>   Receiving := Receiving and (FResultCode <> 304);
> 
>   //SZ
>   Receiving := Receiving and (FResultCode <> 416);

I not accept this, because it is wrong! With error 416 you can have body 
entity. If you are ignoring this fact and not trying to read it, then you 
can have a big problems if you are using persistent connection what goes 
out of sync in this case.

Result codes 204 and 304 is different case, because these responses must-
not have body entity, as is defined in RFC.

I know, you wish to hide error document response in case 416 error, but 
why I must to hide it? httpsend is HTTP protocol implementation, co I am 
returning data in HTTP purity. How to handle it, it is work for calling 
application. What about a program, what wish to see 416 error document?


--
Lukas Gebauer.

E-mail: [EMAIL PROTECTED]
WEB: http://www.ararat.cz/synapse - Synapse Delphi and Kylix TCP/IP 
Library



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
synalist-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/synalist-public

Reply via email to