# HG changeset patch # User Shinji KONO # Date 1398832990 -32400 # Node ID 2951dd85e9fc4603ed33e09295909e27b95ef263 # Parent 015321785ddfb460b4328ff730125eb2c41ba595 connect to real connection address instead of bad getLocalAddress(). diff -r 015321785ddf -r 2951dd85e9fc src/main/java/jp/ac/u_ryukyu/treevnc/CreateConnectionParam.java --- a/src/main/java/jp/ac/u_ryukyu/treevnc/CreateConnectionParam.java Wed Apr 30 11:52:34 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/treevnc/CreateConnectionParam.java Wed Apr 30 13:43:10 2014 +0900 @@ -18,6 +18,7 @@ GetHostClient bCast = new GetHostClient("who"); bCast.getHost(); GetDataClient getBcast = new GetDataClient(); + // we should try this in a loop until get correct hostName Thread runBcast = new Thread(getBcast); runBcast.start(); hostName = getBcast.textAddress(); diff -r 015321785ddf -r 2951dd85e9fc src/main/java/jp/ac/u_ryukyu/treevnc/client/EchoClient.java --- a/src/main/java/jp/ac/u_ryukyu/treevnc/client/EchoClient.java Wed Apr 30 11:52:34 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/treevnc/client/EchoClient.java Wed Apr 30 13:43:10 2014 +0900 @@ -28,14 +28,13 @@ public void openport() { try { - // if(echoSocket==null) echoSocket = new Socket(proxyName, echoPort); echoSocket.setReuseAddress(true); os = new DataOutputStream(echoSocket.getOutputStream()); is = new BufferedReader(new InputStreamReader( echoSocket.getInputStream())); } catch (UnknownHostException e) { - System.err.println("Don't know about host: localhost"); + System.err.println("Don't know about host: "+proxyName); } catch (IOException e) { System.out.println(proxyName + " Connection Faild"); System.exit(0); @@ -51,14 +50,11 @@ public EchoClient requestHostName(String args) { if (echoSocket != null && os != null && is != null) { try { - - InetAddress addr = InetAddress.getLocalHost(); - myAddress = new String(addr.getHostAddress()); - // add = getIpV6(); - + InetAddress addr = echoSocket.getLocalAddress(); + myAddress = addr.getHostAddress(); os.writeBytes(myAddress + "\n"); os.writeBytes(args + "\n"); - getProxyData(is); + getProxyData(is, echoSocket); streamClose(); } catch (UnknownHostException e) { @@ -102,7 +98,7 @@ runflag = true; try { sendDataProxy("2", parentNum, null); - getProxyData(is); + getProxyData(is, echoSocket); reConnectionMain(echoSocket); streamClose(); } catch (UnknownHostException e) { @@ -116,12 +112,10 @@ public EchoClient Interruption(Socket _clientSocket) { clientSocket = _clientSocket; - BufferedReader lostis = null; - try { - lostis = new BufferedReader(new InputStreamReader( + BufferedReader lostis = new BufferedReader(new InputStreamReader( clientSocket.getInputStream())); - getProxyData(lostis); + getProxyData(lostis, clientSocket); clientSocket.close(); } catch (IOException e) { System.out.println(e); @@ -129,9 +123,9 @@ return this; } - void getProxyData(BufferedReader is) throws IOException { + void getProxyData(BufferedReader is, Socket soc) throws IOException { if ((parentAddress = is.readLine()) != null) { - System.out.println("Server: " + parentAddress); + System.out.println("Server received: " + parentAddress); } if ((parentNum = is.readLine()) != null) { System.out.println("parent: " + parentNum); @@ -142,48 +136,11 @@ if ((leaderFlag = is.readLine()) != null) { System.out.println("leaderflag: " + leaderFlag); } + InetAddress parent = soc.getInetAddress(); + parentAddress = parent.getHostName(); + System.out.println("Actual Server: " + parentAddress); } - /* - String getProxyData2(BufferedReader is) throws IOException { - String checkRepetition = null; - if (!("1".equals(leaderFlag))) { - ServerSocket waitReplyServer = new ServerSocket(9999); - Socket socketForWait = waitReplyServer.accept(); - BufferedReader isNotLeader = new BufferedReader( - new InputStreamReader(socketForWait.getInputStream())); - System.out - .println("-------------------renode----------------------------"); - if ((parentAddress = isNotLeader.readLine()) != null) { - System.out.println("Server: " + parentAddress); - } - if ((parentNum = isNotLeader.readLine()) != null) { - System.out.println("parent:test " + parentNum); - } - if ((checkRepetition = isNotLeader.readLine()) != null) { - System.out.println("checkRepetition: " + checkRepetition); - } - try { - Thread.sleep(1000); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } else { - System.out - .println("-------------------re----------------------------"); - if ((parentAddress = is.readLine()) != null) { - System.out.println("Server: " + parentAddress); - } - if ((parentNum = is.readLine()) != null) { - System.out.println("parent:test " + parentNum); - } - if ((checkRepetition = is.readLine()) != null) { - System.out.println("checkRepetition: " + checkRepetition); - } - } - return checkRepetition; - } - */ void reConnectionMain(Socket echoSocket) { while (true) { try { @@ -237,7 +194,6 @@ public void getParentName() { if (clientSocket == null) { - // echo = new EchoClient(pHost, this); openport(); requestHostName("1"); // 1 is normal connection type. } else { diff -r 015321785ddf -r 2951dd85e9fc src/main/java/jp/ac/u_ryukyu/treevnc/client/GetDataClient.java --- a/src/main/java/jp/ac/u_ryukyu/treevnc/client/GetDataClient.java Wed Apr 30 11:52:34 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/treevnc/client/GetDataClient.java Wed Apr 30 13:43:10 2014 +0900 @@ -45,6 +45,7 @@ // proxyAddr format // 5999:localhost:localhost:133.13.59.210: // port:hostnae:hostname:ip address: + // GetBroadCastProxy create this string on VNC root InetAddress adr = socket.getInetAddress(); String proxyAddr1 = adr.getHostName(); if (proxyAddr1 != null) { diff -r 015321785ddf -r 2951dd85e9fc src/main/java/jp/ac/u_ryukyu/treevnc/server/GetBroadCastProxy.java --- a/src/main/java/jp/ac/u_ryukyu/treevnc/server/GetBroadCastProxy.java Wed Apr 30 11:52:34 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/treevnc/server/GetBroadCastProxy.java Wed Apr 30 13:43:10 2014 +0900 @@ -23,9 +23,11 @@ private MulticastSocket soc; public GetBroadCastProxy(VncProxyService _vps,String desktopName,String host){ + String myaddress = getMyAddress(); + // getMyAddress is not always connectable eg. in private segment. vps = _vps; bCast = new BroadCastProxy(vps.getRfb().getAcceptPort()+":"+host+":" - +desktopName+":"+getMyAddress()+":"); + +desktopName+":"+myaddress+":"); } private synchronized void getData() { @@ -91,8 +93,8 @@ try { addr = InetAddress.getLocalHost(); } catch (UnknownHostException e) { - e.printStackTrace(); + return "localhost"; } - return new String(addr.getHostAddress()); + return addr.getHostAddress(); } } diff -r 015321785ddf -r 2951dd85e9fc src/main/java/jp/ac/u_ryukyu/treevnc/server/VncProxyService.java --- a/src/main/java/jp/ac/u_ryukyu/treevnc/server/VncProxyService.java Wed Apr 30 11:52:34 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/treevnc/server/VncProxyService.java Wed Apr 30 13:43:10 2014 +0900 @@ -93,15 +93,6 @@ } } -/* - private void cleanUpSession() { - if (prevVps != null) { - prevVps.cleanUpSession(); - prevVps = null; - } - // workingProtocol.cleanUpSession(); - } -*/ public void createConnectionAndStart() { Thread thread; opendPort = myRfb.selectPort(5999); diff -r 015321785ddf -r 2951dd85e9fc src/viewer_swing/java/com/glavsoft/viewer/ConnectionPresenter.java --- a/src/viewer_swing/java/com/glavsoft/viewer/ConnectionPresenter.java Wed Apr 30 11:52:34 2014 +0900 +++ b/src/viewer_swing/java/com/glavsoft/viewer/ConnectionPresenter.java Wed Apr 30 13:43:10 2014 +0900 @@ -36,9 +36,6 @@ import java.net.Socket; import java.util.logging.Logger; -import jp.ac.u_ryukyu.treevnc.CreateConnectionParam; -import jp.ac.u_ryukyu.treevnc.client.MyRfbProtoClient; - /** * @author dime at tightvnc.com */ @@ -128,7 +125,6 @@ private void connect() { final ConnectionParams connectionParams = (ConnectionParams) getModel(CONNECTION_PARAMS_MODEL); - // TODO check connectionWorkerFactory is init if(!cuiVersion) networkConnectionWorker = connectionWorkerFactory.createNetworkConnectionWorker(); else