Package net.i2p.i2ptunnel.irc
Class I2PTunnelDCCServer
- java.lang.Object
-
- net.i2p.util.EventDispatcherImpl
-
- net.i2p.i2ptunnel.I2PTunnelTask
-
- net.i2p.i2ptunnel.I2PTunnelServer
-
- net.i2p.i2ptunnel.irc.I2PTunnelDCCServer
-
- All Implemented Interfaces:
Runnable
,EventDispatcher
public class I2PTunnelDCCServer extends I2PTunnelServer
A standard server that only answers for registered ports, and each port can only be used once.direct conn <---> I2PTunnelDCCServer <--------------->I2PTunnelDCCClient <----> originating responding chat client chat client CHAT ---> I2PTunnelIRCClient --> IRC server --> I2TunnelIRCClient -----> SEND ---> I2PTunnelIRCClient --> IRC server --> I2TunnelIRCClient -----> RESUME <--- I2PTunnelIRCClient <-- IRC server <-- I2TunnelIRCClient <----- ACCEPT ---> I2PTunnelIRCClient --> IRC server --> I2TunnelIRCClient ----->
- Since:
- 0.8.9
-
-
Field Summary
-
Fields inherited from class net.i2p.i2ptunnel.I2PTunnelServer
__serverId, _clientExecutor, _log, bidir, i2pss, l, localPort, PROP_ALT_PKF, PROP_UNIQUE_LOCAL, PROP_USE_SSL, readTimeout, remoteHost, remotePort, slock, sockMgr, sslLock, task
-
Fields inherited from class net.i2p.i2ptunnel.I2PTunnelTask
open
-
-
Constructor Summary
Constructors Constructor Description I2PTunnelDCCServer(I2PSocketManager sktMgr, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)
There's no support for unsolicited incoming I2P connections, so there's no server host or port parameters.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
acceptOutgoing(int port)
An outgoing ACCEPT responseprotected void
blockingHandle(I2PSocket socket)
An incoming DCC connection, only accept for a known port.boolean
close(boolean forced)
Note that the tunnel can be reopened after this by calling startRunning().int
newOutgoing(byte[] ip, int port, String type)
An outgoing DCC requestint
resumeIncoming(int port)
An incoming RESUME request-
Methods inherited from class net.i2p.i2ptunnel.I2PTunnelServer
destroy, getHandlerCount, getReadTimeout, getSocket, getSocket, optionsUpdated, run, setReadTimeout, shouldUsePool, startRunning
-
Methods inherited from class net.i2p.i2ptunnel.I2PTunnelTask
connected, disconnected, errorOccurred, getId, getTunnel, isOpen, reportAbuse, routerDisconnected, setId, setName, setTunnel, toString
-
Methods inherited from class net.i2p.util.EventDispatcherImpl
attachEventDispatcher, detachEventDispatcher, getEventDispatcher, getEvents, getEventValue, ignoreEvents, notifyEvent, unIgnoreEvents, waitEventValue
-
-
-
-
Constructor Detail
-
I2PTunnelDCCServer
public I2PTunnelDCCServer(I2PSocketManager sktMgr, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel)
There's no support for unsolicited incoming I2P connections, so there's no server host or port parameters.- Parameters:
sktMgr
- an existing socket manager- Throws:
IllegalArgumentException
- if the I2PTunnel does not contain valid config to contact the router
-
-
Method Detail
-
blockingHandle
protected void blockingHandle(I2PSocket socket)
An incoming DCC connection, only accept for a known port. Passed through without filtering.- Overrides:
blockingHandle
in classI2PTunnelServer
-
close
public boolean close(boolean forced)
Description copied from class:I2PTunnelServer
Note that the tunnel can be reopened after this by calling startRunning(). This does not release all resources. In particular, the I2PSocketManager remains and it may have timer threads that continue running. To release all resources permanently, call destroy().- Overrides:
close
in classI2PTunnelServer
- Returns:
- success
-
newOutgoing
public int newOutgoing(byte[] ip, int port, String type)
An outgoing DCC request- Parameters:
ip
- local irc client IPport
- local irc client porttype
- ignored- Returns:
- i2p port or -1 on error
-
resumeIncoming
public int resumeIncoming(int port)
An incoming RESUME request- Parameters:
port
- local dcc server I2P port- Returns:
- local IRC client DCC port or -1 on error
-
acceptOutgoing
public int acceptOutgoing(int port)
An outgoing ACCEPT response- Parameters:
port
- local irc client DCC port- Returns:
- local DCC server i2p port or -1 on error
-
-