I2P Address: [http://git.idk.i2p]

Skip to content
Snippets Groups Projects
Commit 3733b78c authored by zzz's avatar zzz
Browse files

* I2PTunnelUDPClientBase: Fix client close, client target host

    * I2CP Mux: Fix UDP sends
parent 6648e182
No related branches found
No related tags found
No related merge requests found
...@@ -213,8 +213,15 @@ public class TunnelController implements Logging { ...@@ -213,8 +213,15 @@ public class TunnelController implements Logging {
_tunnel.runStreamrClient(new String[] { targetHost, targetPort, dest }, this); _tunnel.runStreamrClient(new String[] { targetHost, targetPort, dest }, this);
} }
/** Streamr server is a UDP client, use the targetPort field for listenPort */ /**
* Streamr server is a UDP client, use the targetPort field for listenPort
* and the targetHost field for the listenOnInterface
*/
private void startStreamrServer() { private void startStreamrServer() {
String listenOn = getTargetHost();
if ( (listenOn != null) && (listenOn.length() > 0) ) {
_tunnel.runListenOn(new String[] { listenOn }, this);
}
String listenPort = getTargetPort(); String listenPort = getTargetPort();
String privKeyFile = getPrivKeyFile(); String privKeyFile = getPrivKeyFile();
_tunnel.runStreamrServer(new String[] { listenPort, privKeyFile }, this); _tunnel.runStreamrServer(new String[] { listenPort, privKeyFile }, this);
......
...@@ -42,6 +42,7 @@ public class StreamrConsumer extends I2PTunnelUDPClientBase { ...@@ -42,6 +42,7 @@ public class StreamrConsumer extends I2PTunnelUDPClientBase {
super.startRunning(); super.startRunning();
// send subscribe-message // send subscribe-message
this.pinger.start(); this.pinger.start();
l.log("Streamr client ready");
} }
public boolean close(boolean forced) { public boolean close(boolean forced) {
......
...@@ -48,6 +48,7 @@ public class StreamrProducer extends I2PTunnelUDPServerBase { ...@@ -48,6 +48,7 @@ public class StreamrProducer extends I2PTunnelUDPServerBase {
public final void startRunning() { public final void startRunning() {
super.startRunning(); super.startRunning();
this.server.start(); this.server.start();
l.log("Streamr server ready");
} }
public boolean close(boolean forced) { public boolean close(boolean forced) {
......
...@@ -27,7 +27,8 @@ public class I2PSinkAnywhere implements Sink { ...@@ -27,7 +27,8 @@ public class I2PSinkAnywhere implements Sink {
this.raw = raw; this.raw = raw;
// create maker // create maker
this.maker = new I2PDatagramMaker(this.sess); if (!raw)
this.maker = new I2PDatagramMaker(this.sess);
} }
/** @param to - where it's going */ /** @param to - where it's going */
......
...@@ -141,9 +141,6 @@ public abstract class I2PTunnelUDPClientBase extends I2PTunnelTask implements So ...@@ -141,9 +141,6 @@ public abstract class I2PTunnelUDPClientBase extends I2PTunnelTask implements So
} else { } else {
_i2pSink = new I2PSinkAnywhere(_session, false); _i2pSink = new I2PSinkAnywhere(_session, false);
} }
//configurePool(tunnel);
} }
/** /**
...@@ -165,13 +162,7 @@ public abstract class I2PTunnelUDPClientBase extends I2PTunnelTask implements So ...@@ -165,13 +162,7 @@ public abstract class I2PTunnelUDPClientBase extends I2PTunnelTask implements So
startRunning = true; startRunning = true;
startLock.notify(); startLock.notify();
} }
open = true;
if (open && listenerReady) {
notifyEvent("openBaseClientResult", "ok");
} else {
l.log("Error listening - please see the logs!");
notifyEvent("openBaseClientResult", "error");
}
} }
/** /**
...@@ -187,6 +178,7 @@ public abstract class I2PTunnelUDPClientBase extends I2PTunnelTask implements So ...@@ -187,6 +178,7 @@ public abstract class I2PTunnelUDPClientBase extends I2PTunnelTask implements So
} catch (I2PSessionException ise) {} } catch (I2PSessionException ise) {}
} }
l.log("Closing client " + toString()); l.log("Closing client " + toString());
open = false;
return true; return true;
} }
......
...@@ -41,7 +41,7 @@ public class I2PTunnelUDPServerBase extends I2PTunnelTask implements Source, Sin ...@@ -41,7 +41,7 @@ public class I2PTunnelUDPServerBase extends I2PTunnelTask implements Source, Sin
private static volatile long __serverId = 0; private static volatile long __serverId = 0;
private Logging l; protected Logging l;
private static final long DEFAULT_READ_TIMEOUT = -1; // 3*60*1000; private static final long DEFAULT_READ_TIMEOUT = -1; // 3*60*1000;
/** default timeout to 3 minutes - override if desired */ /** default timeout to 3 minutes - override if desired */
...@@ -137,7 +137,6 @@ public class I2PTunnelUDPServerBase extends I2PTunnelTask implements Source, Sin ...@@ -137,7 +137,6 @@ public class I2PTunnelUDPServerBase extends I2PTunnelTask implements Source, Sin
start(); start();
//} //}
l.log("Ready!");
notifyEvent("openServerResult", "ok"); notifyEvent("openServerResult", "ok");
open = true; open = true;
} }
......
...@@ -88,14 +88,16 @@ ...@@ -88,14 +88,16 @@
<label>Target:</label> <label>Target:</label>
<% } %> <% } %>
</div> </div>
<% if (!"streamrserver".equals(tunnelType)) { %>
<div id="hostField" class="rowItem"> <div id="hostField" class="rowItem">
<label for="targetHost" accesskey="H"> <label for="targetHost" accesskey="H">
<% if ("streamrserver".equals(tunnelType)) { %>
<span class="accessKey">R</span>eachable by:
<% } else { %>
<span class="accessKey">H</span>ost: <span class="accessKey">H</span>ost:
<% } %>
</label> </label>
<input type="text" size="20" id="targetHost" name="targetHost" title="Target Hostname or IP" value="<%=editBean.getTargetHost(curTunnel)%>" class="freetext" /> <input type="text" size="20" id="targetHost" name="targetHost" title="Target Hostname or IP" value="<%=editBean.getTargetHost(curTunnel)%>" class="freetext" />
</div> </div>
<% } // !streamrserver %>
<div id="portField" class="rowItem"> <div id="portField" class="rowItem">
<label for="targetPort" accesskey="P"> <label for="targetPort" accesskey="P">
<span class="accessKey">P</span>ort: <span class="accessKey">P</span>ort:
......
...@@ -118,12 +118,13 @@ class I2PSessionMuxedImpl extends I2PSessionImpl2 implements I2PSession { ...@@ -118,12 +118,13 @@ class I2PSessionMuxedImpl extends I2PSessionImpl2 implements I2PSession {
@Override @Override
public boolean sendMessage(Destination dest, byte[] payload) throws I2PSessionException { public boolean sendMessage(Destination dest, byte[] payload) throws I2PSessionException {
return sendMessage(dest, payload, 0, 0, null, null, 0, PROTO_UNSPECIFIED, PORT_UNSPECIFIED, PORT_UNSPECIFIED); return sendMessage(dest, payload, 0, payload.length, null, null,
0, PROTO_UNSPECIFIED, PORT_UNSPECIFIED, PORT_UNSPECIFIED);
} }
@Override @Override
public boolean sendMessage(Destination dest, byte[] payload, int proto, int fromport, int toport) throws I2PSessionException { public boolean sendMessage(Destination dest, byte[] payload, int proto, int fromport, int toport) throws I2PSessionException {
return sendMessage(dest, payload, 0, 0, null, null, 0, proto, fromport, toport); return sendMessage(dest, payload, 0, payload.length, null, null, 0, proto, fromport, toport);
} }
@Override @Override
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment