You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by el...@apache.org on 2008/11/18 15:02:06 UTC
svn commit: r718595 - in
/mina/trunk/core/src/main/java/org/apache/mina/transport/socket:
DefaultDatagramSessionConfig.java DefaultSocketSessionConfig.java
Author: elecharny
Date: Tue Nov 18 06:02:06 2008
New Revision: 718595
URL: http://svn.apache.org/viewvc?rev=718595&view=rev
Log:
Removed the ServerSocket creation and socket connection in the Socket/DatagramConfigImpl classes : it breaks badly in an applet or on Vista.
Modified:
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/DefaultDatagramSessionConfig.java
mina/trunk/core/src/main/java/org/apache/mina/transport/socket/DefaultSocketSessionConfig.java
Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/DefaultDatagramSessionConfig.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/DefaultDatagramSessionConfig.java?rev=718595&r1=718594&r2=718595&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/socket/DefaultDatagramSessionConfig.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/socket/DefaultDatagramSessionConfig.java Tue Nov 18 06:02:06 2008
@@ -20,9 +20,6 @@
package org.apache.mina.transport.socket;
import java.net.DatagramSocket;
-import java.net.SocketException;
-
-import org.apache.mina.util.ExceptionMonitor;
/**
* A default implementation of {@link DatagramSessionConfig}.
@@ -42,53 +39,6 @@
private static int DEFAULT_SEND_BUFFER_SIZE = 1024;
private static int DEFAULT_TRAFFIC_CLASS = 0;
- static {
- initialize();
- }
-
- private static void initialize() {
- DatagramSocket socket = null;
-
- try {
- socket = new DatagramSocket();
- DEFAULT_BROADCAST = socket.getBroadcast();
- DEFAULT_REUSE_ADDRESS = socket.getReuseAddress();
- DEFAULT_RECEIVE_BUFFER_SIZE = socket.getReceiveBufferSize();
- DEFAULT_SEND_BUFFER_SIZE = socket.getSendBufferSize();
-
- // Check if setReceiveBufferSize is supported.
- try {
- socket.setReceiveBufferSize(DEFAULT_RECEIVE_BUFFER_SIZE);
- SET_RECEIVE_BUFFER_SIZE_AVAILABLE = true;
- } catch (SocketException e) {
- SET_RECEIVE_BUFFER_SIZE_AVAILABLE = false;
- }
-
- // Check if setSendBufferSize is supported.
- try {
- socket.setSendBufferSize(DEFAULT_SEND_BUFFER_SIZE);
- SET_SEND_BUFFER_SIZE_AVAILABLE = true;
- } catch (SocketException e) {
- SET_SEND_BUFFER_SIZE_AVAILABLE = false;
- }
-
- // Check if getTrafficClass is supported.
- try {
- DEFAULT_TRAFFIC_CLASS = socket.getTrafficClass();
- GET_TRAFFIC_CLASS_AVAILABLE = true;
- } catch (SocketException e) {
- GET_TRAFFIC_CLASS_AVAILABLE = false;
- DEFAULT_TRAFFIC_CLASS = 0;
- }
- } catch (SocketException e) {
- ExceptionMonitor.getInstance().exceptionCaught(e);
- } finally {
- if (socket != null) {
- socket.close();
- }
- }
- }
-
public static boolean isSetReceiveBufferSizeAvailable() {
return SET_RECEIVE_BUFFER_SIZE_AVAILABLE;
}
Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/DefaultSocketSessionConfig.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/DefaultSocketSessionConfig.java?rev=718595&r1=718594&r2=718595&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/socket/DefaultSocketSessionConfig.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/socket/DefaultSocketSessionConfig.java Tue Nov 18 06:02:06 2008
@@ -19,19 +19,7 @@
*/
package org.apache.mina.transport.socket;
-import java.io.IOException;
-import java.net.InetAddress;
-import java.net.InetSocketAddress;
-import java.net.ServerSocket;
-import java.net.Socket;
-import java.net.SocketException;
-import java.net.UnknownHostException;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.Map.Entry;
-
import org.apache.mina.core.service.IoService;
-import org.apache.mina.util.ExceptionMonitor;
/**
* A default implementation of {@link SocketSessionConfig}.
@@ -40,9 +28,6 @@
* @version $Rev$, $Date$
*/
public class DefaultSocketSessionConfig extends AbstractSocketSessionConfig {
-
- private static Map<InetSocketAddress, InetAddress> TEST_ADDRESSES = new LinkedHashMap<InetSocketAddress, InetAddress>();
-
private static boolean SET_RECEIVE_BUFFER_SIZE_AVAILABLE = false;
private static boolean SET_SEND_BUFFER_SIZE_AVAILABLE = false;
private static boolean GET_TRAFFIC_CLASS_AVAILABLE = false;
@@ -56,144 +41,6 @@
private static int DEFAULT_SO_LINGER = -1;
private static boolean DEFAULT_TCP_NO_DELAY = false;
- static {
- initializeTestAddresses();
-
- boolean success = false;
- for (Entry<InetSocketAddress, InetAddress> e : TEST_ADDRESSES
- .entrySet()) {
- success = initializeDefaultSocketParameters(e.getKey(), e
- .getValue());
- if (success) {
- break;
- }
- }
-
- if (!success) {
- initializeFallbackDefaultSocketParameters();
- }
- }
-
- private static void initializeFallbackDefaultSocketParameters() {
- Socket unconnectedSocket = new Socket(); // Use a unconnected socket.
- try {
- initializeDefaultSocketParameters(unconnectedSocket);
- } catch (SocketException se) {
- ExceptionMonitor.getInstance().exceptionCaught(se);
-
- try {
- unconnectedSocket.close();
- } catch (IOException ioe) {
- ExceptionMonitor.getInstance().exceptionCaught(ioe);
- }
- }
- }
-
- private static void initializeTestAddresses() {
- try {
- // These two tests were disabled due to DIRMINA-560
- // (IPv4 localhost TEST_ADDRESS causes server to hang)
-
- // IPv6 localhost
- //TEST_ADDRESSES.put(new InetSocketAddress(InetAddress
- // .getByAddress(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- // 0, 0, 0, 0, 1 }), 0), InetAddress
- // .getByAddress(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- // 0, 0, 0, 0, 1 }));
-
- // IPv4 localhost
- //TEST_ADDRESSES.put(new InetSocketAddress(InetAddress
- // .getByAddress(new byte[] { 127, 0, 0, 1 }), 0), InetAddress
- // .getByAddress(new byte[] { 127, 0, 0, 1 }));
-
- // Bind to wildcard interface and connect to IPv6 localhost
- TEST_ADDRESSES.put(new InetSocketAddress(0), InetAddress
- .getByAddress(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1 }));
-
- // Bind to wildcard interface and connect to IPv4 localhost
- TEST_ADDRESSES.put(new InetSocketAddress(0), InetAddress
- .getByAddress(new byte[] { 127, 0, 0, 1 }));
-
- } catch (UnknownHostException e) {
- ExceptionMonitor.getInstance().exceptionCaught(e);
- }
- }
-
- private static boolean initializeDefaultSocketParameters(
- InetSocketAddress bindAddress, InetAddress connectAddress) {
- ServerSocket ss = null;
- Socket socket = null;
-
- try {
- ss = new ServerSocket();
- ss.bind(bindAddress);
- socket = new Socket();
-
- // Timeout is set to 10 seconds in case of infinite blocking
- // on some platform.
- socket.connect(new InetSocketAddress(connectAddress, ss
- .getLocalPort()), 10000);
-
- initializeDefaultSocketParameters(socket);
- return true;
- } catch (IOException ioe) {
- return false;
- } finally {
- if (socket != null) {
- try {
- socket.close();
- } catch (IOException e) {
- ExceptionMonitor.getInstance().exceptionCaught(e);
- }
- }
-
- if (ss != null) {
- try {
- ss.close();
- } catch (IOException e) {
- ExceptionMonitor.getInstance().exceptionCaught(e);
- }
- }
- }
- }
-
- private static void initializeDefaultSocketParameters(Socket socket)
- throws SocketException {
- DEFAULT_REUSE_ADDRESS = socket.getReuseAddress();
- DEFAULT_RECEIVE_BUFFER_SIZE = socket.getReceiveBufferSize();
- DEFAULT_SEND_BUFFER_SIZE = socket.getSendBufferSize();
- DEFAULT_KEEP_ALIVE = socket.getKeepAlive();
- DEFAULT_OOB_INLINE = socket.getOOBInline();
- DEFAULT_SO_LINGER = socket.getSoLinger();
- DEFAULT_TCP_NO_DELAY = socket.getTcpNoDelay();
-
- // Check if setReceiveBufferSize is supported.
- try {
- socket.setReceiveBufferSize(DEFAULT_RECEIVE_BUFFER_SIZE);
- SET_RECEIVE_BUFFER_SIZE_AVAILABLE = true;
- } catch (SocketException e) {
- SET_RECEIVE_BUFFER_SIZE_AVAILABLE = false;
- }
-
- // Check if setSendBufferSize is supported.
- try {
- socket.setSendBufferSize(DEFAULT_SEND_BUFFER_SIZE);
- SET_SEND_BUFFER_SIZE_AVAILABLE = true;
- } catch (SocketException e) {
- SET_SEND_BUFFER_SIZE_AVAILABLE = false;
- }
-
- // Check if getTrafficClass is supported.
- try {
- DEFAULT_TRAFFIC_CLASS = socket.getTrafficClass();
- GET_TRAFFIC_CLASS_AVAILABLE = true;
- } catch (SocketException e) {
- GET_TRAFFIC_CLASS_AVAILABLE = false;
- DEFAULT_TRAFFIC_CLASS = 0;
- }
- }
-
public static boolean isSetReceiveBufferSizeAvailable() {
return SET_RECEIVE_BUFFER_SIZE_AVAILABLE;
}