commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel F. Savarese" <...@savarese.org>
Subject Re: commons/net whois fails with whois.opensrs.net
Date Tue, 29 Jul 2003 02:06:48 GMT

In message <10804015.1059400334@[192.168.0.40]>, Mark Himsley writes:
>My basic question is: how do I stop commons/net from setting the TCP push 
>flag on the socket connection.
>
>I've looked through the source of WhoisClient, FingerClient, SocketClient, 
>SocketFactory, DefaultSocketFactory and as yet don't have a clue why the 
>push flag is set ant the query is fragmented.

I'm going to have to punt this to someone else (maybe you if you've
got the interest/time) to fix and patch, but if the push flag is being
set, it's being done automatically by the JVM's class library in native
code.  There's probably a call to OutputStream.flush() somewhere and
the underlying native code is turning that into TCP push.  Why that's
happening in the middle of as small amount of data as occurs in a
whois query, I don't know.  This is what happens when code written to
work around the limitations of JDK 1.0.2 and 1.1 finds itself running
in a J2SE 1.4 world.  If somebody could update the I/O stuff to avoid
using flush(), that would fix things.  Some of the stuff in the
org.apache.commons.net.io package could use an overhaul as some of it
is rather inefficient.  We should at least at it to the todo list.  I
can't volunteer to dig into it for another couple of weeks :(

daniel



Mime
View raw message