> 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