1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151
| // Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3)
// Source File Name: TimedSocketFactory.java
package org.jnp.interfaces;
import java.io.IOException;
import java.net.*;
import java.util.Hashtable;
import javax.net.SocketFactory;
public class TimedSocketFactory extends SocketFactory
{
public TimedSocketFactory()
{
timeout = 0;
soTimeout = 0;
}
public TimedSocketFactory(Hashtable env)
{
timeout = 0;
soTimeout = 0;
String value = (String)env.get("jnp.timeout");
if(value != null)
timeout = Integer.parseInt(value);
value = (String)env.get("jnp.sotimeout");
if(value != null)
soTimeout = Integer.parseInt(value);
}
public Socket createSocket(String host, int port)
throws IOException, UnknownHostException
{
InetAddress hostAddr = InetAddress.getByName(host);
return createSocket(hostAddr, port, null, 0);
}
public Socket createSocket(InetAddress hostAddr, int port)
throws IOException
{
return createSocket(hostAddr, port, null, 0);
}
public Socket createSocket(String host, int port, InetAddress localAddr, int localPort)
throws IOException, UnknownHostException
{
InetAddress hostAddr = InetAddress.getByName(host);
return createSocket(hostAddr, port, localAddr, localPort);
}
public Socket createSocket(InetAddress hostAddr, int port, InetAddress localAddr, int localPort)
throws IOException
{
Socket socket = null;
System.out.println("timeout: "+timeout);
if(timeout <= 0)
socket = new Socket(hostAddr, port, localAddr, localPort);
else
socket = createSocket(hostAddr, port, localAddr, localPort, timeout); // <<-- modification du Time out JEHA
socket.setSoTimeout(soTimeout);
System.out.println("soTimeout: "+soTimeout);
return socket;
}
protected Socket createSocket(InetAddress hostAddr, int port, InetAddress localAddr, int localPort, int connectTimeout)
throws IOException
{
ConnectThread t = new ConnectThread();
Socket socket = t.createSocket(hostAddr, port, localAddr, localPort, connectTimeout);
return socket;
}
public static final String JNP_TIMEOUT = "jnp.timeout";
public static final String JNP_SO_TIMEOUT = "jnp.sotimeout";
protected int timeout;
protected int soTimeout;
public class ConnectThread extends Thread
{
Socket createSocket(InetAddress hostAddr, int port, InetAddress localAddr, int localPort, int connectTimeout)
throws IOException
{
this.hostAddr = hostAddr;
this.port = port;
this.localAddr = localAddr;
this.localPort = localPort;
this.connectTimeout = connectTimeout;
try
{
synchronized(this)
{
start();
wait(connectTimeout);
}
}
catch(InterruptedException e)
{
throw new ConnectException("Connect attempt timed out");
}
if(ex != null)
throw ex;
if(socket == null)
throw new ConnectException("Connect attempt timed out");
else
return socket;
}
public void run()
{
try
{
socket = new Socket(hostAddr, port, localAddr, localPort);
synchronized(this)
{
notify();
}
}
catch(IOException e)
{
ex = e;
}
}
IOException ex;
InetAddress hostAddr;
InetAddress localAddr;
int port;
int localPort;
int connectTimeout;
Socket socket;
final TimedSocketFactory this$0;
ConnectThread()
{
this$0 = TimedSocketFactory.this;
// super("JNP ConnectThread");
super.setDaemon(true);
}
}
} |
Partager