public int connectToServer(int port, DXChild c) { bool wasQueued = false; String server; if (c != null) { server = c.getServer(); if (!c.IsQueued) { serverInfo.children.Remove(c); c.unQueue(); } } else { server = serverInfo.server; } DXPacketIF p = new DXPacketIF(server, port, DXChild.HostIsLocal(server)); if (DXApplication.resource.debugMode) p.setEchoCallback(DXApplication.DebugEchoCallback, "need to get stderr"); if (p.Error) { ErrorDialog ed = new ErrorDialog(); ed.post("Connection to {0} failed.", server); p = null; return 0; } clearErrorList(); if (serverInfo.packet == null) { if (wasQueued) { InfoDialog id = new InfoDialog(); id.post("Your connection to {0} has been accepted.", server); } packetIFAccept(p); } else { serverInfo.queuedPackets.Insert(0, p); QuestionDialog qd = new QuestionDialog(); String s = String.Format("Your connection to server {0} has been accepted. Do you want to disconnect from {0} and connect to it?", server, serverInfo.server); qd.modalPost(this.getAnchorForm(), s, null, p, DXApplication.QueuedPacketAccept, DXApplication.QueuedPacketCancel, null, "Yes", "No", null, 2); } return 1; }
public void completeConnection(DXChild c) { if (c != null) { switch (c.waitForConnection()) { case -1: ErrorDialog ed = new ErrorDialog(); ed.post("Connection to server {0} failed: {1}", c.getServer(), c.failed()); closeConnection(c); break; case 0: if (resource.executeProgram) getExecCtl().executeOnce(); break; case 1: InfoDialog id = new InfoDialog(); id.post("Connection to server {0} has been queued", c.getServer()); break; } } else if (!serverInfo.autoStart) { connectToServer(serverInfo.port, null); } // Let the application packet know that a new connection to // the server has been created. if (applicationPacket != null) applicationPacket.handleServerConnection(); if (resource.executeOnChange) getExecCtl().enableExecOnChange(); }