summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/isode')
-rw-r--r--src/com/isode/stroke/filetransfer/SOCKS5BytestreamServerManager.java4
-rw-r--r--src/com/isode/stroke/network/Connection.java3
-rw-r--r--src/com/isode/stroke/network/DummyConnection.java14
-rw-r--r--src/com/isode/stroke/network/FakeConnection.java8
-rw-r--r--src/com/isode/stroke/network/JavaConnection.java29
-rw-r--r--src/com/isode/stroke/network/ProxiedConnection.java5
-rw-r--r--src/com/isode/stroke/network/TLSConnection.java5
7 files changed, 59 insertions, 9 deletions
diff --git a/src/com/isode/stroke/filetransfer/SOCKS5BytestreamServerManager.java b/src/com/isode/stroke/filetransfer/SOCKS5BytestreamServerManager.java
index 729193a..590ee60 100644
--- a/src/com/isode/stroke/filetransfer/SOCKS5BytestreamServerManager.java
+++ b/src/com/isode/stroke/filetransfer/SOCKS5BytestreamServerManager.java
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (c) 2012-2015 Isode Limited. 2 * Copyright (c) 2012-2016 Isode Limited.
3 * All rights reserved. 3 * All rights reserved.
4 * See the COPYING file for more information. 4 * See the COPYING file for more information.
5 */ 5 */
@@ -176,7 +176,7 @@ public class SOCKS5BytestreamServerManager {
176 int port; 176 int port;
177 for (port = LISTEN_PORTS_BEGIN; port < LISTEN_PORTS_END; ++port) { 177 for (port = LISTEN_PORTS_BEGIN; port < LISTEN_PORTS_END; ++port) {
178 logger_.fine("Trying to start server on port " + port + "\n"); 178 logger_.fine("Trying to start server on port " + port + "\n");
179 connectionServer = connectionServerFactory.createConnectionServer(new HostAddress("0.0.0.0"), port); 179 connectionServer = connectionServerFactory.createConnectionServer(new HostAddress("::"), port);
180 ConnectionServer.Error error = connectionServer.tryStart(); 180 ConnectionServer.Error error = connectionServer.tryStart();
181 if (error == null) { 181 if (error == null) {
182 break; 182 break;
diff --git a/src/com/isode/stroke/network/Connection.java b/src/com/isode/stroke/network/Connection.java
index b0e4799..ad01553 100644
--- a/src/com/isode/stroke/network/Connection.java
+++ b/src/com/isode/stroke/network/Connection.java
@@ -4,7 +4,7 @@
4 * See Documentation/Licenses/GPLv3.txt for more information. 4 * See Documentation/Licenses/GPLv3.txt for more information.
5 */ 5 */
6/* 6/*
7 * Copyright (c) 2010, Isode Limited, London, England. 7 * Copyright (c) 2010-2016, Isode Limited, London, England.
8 * All rights reserved. 8 * All rights reserved.
9 */ 9 */
10package com.isode.stroke.network; 10package com.isode.stroke.network;
@@ -33,6 +33,7 @@ public abstract class Connection {
33 public abstract void write(SafeByteArray data); 33 public abstract void write(SafeByteArray data);
34 34
35 public abstract HostAddressPort getLocalAddress(); 35 public abstract HostAddressPort getLocalAddress();
36 public abstract HostAddressPort getRemoteAddress();
36 public final Signal1<Boolean /*error*/> onConnectFinished = new Signal1<Boolean>(); 37 public final Signal1<Boolean /*error*/> onConnectFinished = new Signal1<Boolean>();
37 public final Signal1<Error> onDisconnected = new Signal1<Error>(); 38 public final Signal1<Error> onDisconnected = new Signal1<Error>();
38 public final Signal1<SafeByteArray> onDataRead = new Signal1<SafeByteArray>(); 39 public final Signal1<SafeByteArray> onDataRead = new Signal1<SafeByteArray>();
diff --git a/src/com/isode/stroke/network/DummyConnection.java b/src/com/isode/stroke/network/DummyConnection.java
index 51018ef..7cc302b 100644
--- a/src/com/isode/stroke/network/DummyConnection.java
+++ b/src/com/isode/stroke/network/DummyConnection.java
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (c) 2010 Isode Limited. 2 * Copyright (c) 2010-2016 Isode Limited.
3 * All rights reserved. 3 * All rights reserved.
4 * See the COPYING file for more information. 4 * See the COPYING file for more information.
5 */ 5 */
@@ -58,8 +58,14 @@ public class DummyConnection extends Connection implements EventOwner {
58 return localAddress; 58 return localAddress;
59 } 59 }
60 60
61 public Signal1<SafeByteArray> onDataSent = new Signal1<SafeByteArray>(); 61 @Override
62 public HostAddressPort getRemoteAddress() {
63 return remoteAddress;
64 }
62 65
63 public EventLoop eventLoop; 66 public Signal1<SafeByteArray> onDataSent = new Signal1<SafeByteArray>();
64 public HostAddressPort localAddress; 67
68 public EventLoop eventLoop;
69 public HostAddressPort localAddress = new HostAddressPort();
70 public HostAddressPort remoteAddress = new HostAddressPort();
65} \ No newline at end of file 71} \ No newline at end of file
diff --git a/src/com/isode/stroke/network/FakeConnection.java b/src/com/isode/stroke/network/FakeConnection.java
index ebcf239..1ce5c7b 100644
--- a/src/com/isode/stroke/network/FakeConnection.java
+++ b/src/com/isode/stroke/network/FakeConnection.java
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (c) 2010-2014 Isode Limited. 2 * Copyright (c) 2010-2016 Isode Limited.
3 * All rights reserved. 3 * All rights reserved.
4 * See the COPYING file for more information. 4 * See the COPYING file for more information.
5 */ 5 */
@@ -15,6 +15,7 @@ import com.isode.stroke.eventloop.EventOwner;
15import com.isode.stroke.eventloop.EventLoop; 15import com.isode.stroke.eventloop.EventLoop;
16import com.isode.stroke.eventloop.Event; 16import com.isode.stroke.eventloop.Event;
17import com.isode.stroke.base.SafeByteArray; 17import com.isode.stroke.base.SafeByteArray;
18
18import java.util.Vector; 19import java.util.Vector;
19 20
20public class FakeConnection extends Connection { 21public class FakeConnection extends Connection {
@@ -40,6 +41,11 @@ public class FakeConnection extends Connection {
40 public HostAddressPort getLocalAddress() { 41 public HostAddressPort getLocalAddress() {
41 return new HostAddressPort(); 42 return new HostAddressPort();
42 } 43 }
44
45 @Override
46 public HostAddressPort getRemoteAddress() {
47 return new HostAddressPort();
48 }
43 49
44 public void setError(final Error e) { 50 public void setError(final Error e) {
45 error = e; 51 error = e;
diff --git a/src/com/isode/stroke/network/JavaConnection.java b/src/com/isode/stroke/network/JavaConnection.java
index 29e3633..745655f 100644
--- a/src/com/isode/stroke/network/JavaConnection.java
+++ b/src/com/isode/stroke/network/JavaConnection.java
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (c) 2010-2015, Isode Limited, London, England. 2 * Copyright (c) 2010-2016, Isode Limited, London, England.
3 * All rights reserved. 3 * All rights reserved.
4 */ 4 */
5package com.isode.stroke.network; 5package com.isode.stroke.network;
@@ -7,8 +7,10 @@ package com.isode.stroke.network;
7import java.io.IOException; 7import java.io.IOException;
8import java.net.InetSocketAddress; 8import java.net.InetSocketAddress;
9import java.net.Socket; 9import java.net.Socket;
10import java.net.SocketAddress;
10import java.nio.ByteBuffer; 11import java.nio.ByteBuffer;
11import java.nio.channels.CancelledKeyException; 12import java.nio.channels.CancelledKeyException;
13import java.nio.channels.ClosedChannelException;
12import java.nio.channels.ClosedSelectorException; 14import java.nio.channels.ClosedSelectorException;
13import java.nio.channels.SelectionKey; 15import java.nio.channels.SelectionKey;
14import java.nio.channels.Selector; 16import java.nio.channels.Selector;
@@ -515,6 +517,31 @@ public class JavaConnection extends Connection implements EventOwner {
515 } 517 }
516 518
517 @Override 519 @Override
520 public HostAddressPort getRemoteAddress() {
521 if (socketChannel_ == null) {
522 return null;
523 }
524 SocketAddress remoteAddress;
525 try {
526 remoteAddress = socketChannel_.getRemoteAddress();
527 } catch (ClosedChannelException e) {
528 return null;
529 } catch (IOException e) {
530 return null;
531 }
532 if (!(remoteAddress instanceof InetSocketAddress)) {
533 // SocketChannel.getRemoteAddress should return a
534 // InetSocketAddress if it is bound to an IP Socket
535 // Address so return null if it does not
536 return null;
537 }
538 InetSocketAddress remoteInetAddress = (InetSocketAddress) remoteAddress;
539 return new HostAddressPort(
540 new HostAddress(remoteInetAddress.getAddress()),
541 remoteInetAddress.getPort());
542 }
543
544 @Override
518 public String toString() 545 public String toString()
519 { 546 {
520 return "JavaConnection " + 547 return "JavaConnection " +
diff --git a/src/com/isode/stroke/network/ProxiedConnection.java b/src/com/isode/stroke/network/ProxiedConnection.java
index 6f4c044..5eac083 100644
--- a/src/com/isode/stroke/network/ProxiedConnection.java
+++ b/src/com/isode/stroke/network/ProxiedConnection.java
@@ -87,6 +87,11 @@ public abstract class ProxiedConnection extends Connection {
87 public HostAddressPort getLocalAddress() { 87 public HostAddressPort getLocalAddress() {
88 return connection_.getLocalAddress(); 88 return connection_.getLocalAddress();
89 } 89 }
90
91 @Override
92 public HostAddressPort getRemoteAddress() {
93 return connection_.getRemoteAddress();
94 }
90 95
91 private void handleConnectFinished(Connection connection) { 96 private void handleConnectFinished(Connection connection) {
92 cancelConnector(); 97 cancelConnector();
diff --git a/src/com/isode/stroke/network/TLSConnection.java b/src/com/isode/stroke/network/TLSConnection.java
index d64f88b..4e7f304 100644
--- a/src/com/isode/stroke/network/TLSConnection.java
+++ b/src/com/isode/stroke/network/TLSConnection.java
@@ -124,6 +124,11 @@ public class TLSConnection extends Connection {
124 return connection.getLocalAddress(); 124 return connection.getLocalAddress();
125 } 125 }
126 126
127 @Override
128 public HostAddressPort getRemoteAddress() {
129 return connection.getRemoteAddress();
130 }
131
127 public TLSContext getContext() { 132 public TLSContext getContext() {
128 return context; 133 return context;
129 } 134 }