You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mina.apache.org by Emmanuel Lecharny <el...@gmail.com> on 2008/11/19 15:05:20 UTC

About DefaultDatagramSessionConfig and DefaultSocketSessionConfig

Hi,

there are a few problematic JIRA's related to the way those classes are 
implemented. Mainly people are complaining on Vista and also when MINA 
is used inside an applet, that it creates some ServerSocket and a Socket 
in order to define the default socket/datagram configuration on the 
system those applications are running on.

Despite the fact that this test is done in order to provide a set of 
default values, it does more harm than it helps, as it's pretty 
intrusive. We have to find a better way to do that, or may be remove 
this feature from the framework.

Last, not least, it does not deal with ServerSocket options, which are a 
sub-set of the Socket options (and I'm not sure MINA 2 covers all the 
socket options anyway).

Here are the options supported by Socket/ServerSocket/Datagram on java 1.5 :

Datagram
--------
SO_BROADCAST
SO_RCVBUF
SO_REUSEADDR
SO_SNDBUF
SO_TIMEOUT
IP_TOS

Socket
------
SO_KEEPALIVE
SO_OOBINLINE
SO_RCVBUF
SO_REUSEADDR
SO_SNDBUF
SO_LINGER
SO_TIMEOUT
TCP_NODELAY
IP_TOS

ServerSocket
------------
SO_RCVBUF
SO_REUSEADDR
SO_TIMEOUT


As we need an existing socket to check this socket capability, the 
current framework tries to create such a socket/datagram, and check for 
the default options, setting some booleans accordingly. We can do it the 
same way but on the first created socket, and stores the result in 
static parameters. We just have to define a single boolean 
(configInitialized) which will be turned to true as soon as we have 
created the first socket/datagram/serverSocket. Of course, this part 
must be synchronized.

Anyone has a better idea ?

-- 
--
cordialement, regards,
Emmanuel Lécharny
www.iktek.com
directory.apache.org