Hello, I am trying to make POP3 proxy/gateway, I am working linemode ON as it a CRLF lined protocol so its easier.
But I noticed that not all lines are sent back to POP3 client, so e-mail (especially the ones with attachements) get corrupted. Each time I go into OnDataAvailable on server-side socket I loop into ReceiveStr() and call TWSocketClient.SendStr() on client socket for each line. Is there something wrong with this scheme do I overload the WinSock internal buffer ? should I use a man-in-the-middle StringList buffer and when OnDataSend on client side I loop SendStr un until no more lines from StringList buffer ? Here the actual code sample : procedure TPOPOut.POPOutDataAvailable(Sender: TObject; ErrCode: Word); // We get data coming from server begin StringRLine := TPOPOut(sender).ReceiveStr; // Lets get the first line while (Length(StringRLine) > 0) begin // do the filtering part // ... // ... not yet implemented // ... // and proceed redirection TPOPOut(sender).POPIn.SendStr(StringRLine); // send it back to e-mail client side StringRLine := TPOPOut(sender).ReceiveStr; // let's get next line end; end; regards. -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be