From 792b114e78d5d2a23498fb8b784b404f89c4106a Mon Sep 17 00:00:00 2001 From: adam Date: Fri, 3 Sep 2004 00:24:33 +0000 Subject: [PATCH] allowed classloader-sharing between ports darcs-hash:20040903002433-5007d-b5655e074a278a466b5bbf8ebdddfb2ac06da685.gz --- src/org/ibex/jinetd/Loader.java | 2 +- src/org/ibex/jinetd/Port.java | 23 +++++++++++++++++------ src/org/ibex/jinetd/Root.java | 6 +++--- www/index.html | 2 +- 4 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/org/ibex/jinetd/Loader.java b/src/org/ibex/jinetd/Loader.java index 96093bd..8f9fef8 100644 --- a/src/org/ibex/jinetd/Loader.java +++ b/src/org/ibex/jinetd/Loader.java @@ -59,7 +59,7 @@ public class Loader extends Watcher { public String getClassPath() { String classpath = System.getProperty("java.class.path"); String [] l = new File(Root.root + "/LIB/").list(); - for(int i=0; i "+ (p.bindTo+":"+p.port)); + p.spawn(bindTo, port); + return p; + } + + void spawn(InetAddress bindTo, int port) { new PortThread(bindTo, port).start(); } + private Port(String path, InetAddress bindTo, int port) { super(path); this.bindTo = bindTo; this.port = port; - this.listener = new PortThread(); - listener.start(); } public void changed(Watched w) { @@ -90,6 +98,9 @@ public class Port extends Loader { } private class PortThread extends Thread { + InetAddress bindTo; + int port; + public PortThread(InetAddress bindTo, int port) { this.bindTo = bindTo; this.port = port; } public void run() { try { Log.warn(this, "Now listening on address " + (bindTo == null ? "all interfaces" : bindTo.toString()) + diff --git a/src/org/ibex/jinetd/Root.java b/src/org/ibex/jinetd/Root.java index 9c2fa93..078ec05 100644 --- a/src/org/ibex/jinetd/Root.java +++ b/src/org/ibex/jinetd/Root.java @@ -50,9 +50,9 @@ public class Root extends Loader { String ipaddr = part.indexOf('_') == -1 ? null : part.substring(0, part.indexOf('_')); String portnum = part.indexOf('_') == -1 ? part : part.substring(part.indexOf('_') + 1); try { - return new Port(this.path + File.separatorChar + part, - ipaddr == null ? null : InetAddress.getByName(ipaddr), - portnum.equals("*") ? 0 : Integer.parseInt(portnum)); + return Port.newPort(this.path + File.separatorChar + part, + ipaddr == null ? null : InetAddress.getByName(ipaddr), + portnum.equals("*") ? 0 : Integer.parseInt(portnum)); } catch (UnknownHostException e) { Log.warn(this, "can't resolve host for port directory: " + part); } catch (NumberFormatException e) { Log.warn(this, "invalid port directory: " + part); } catch (Exception e) { Log.warn(this, "error instantiating Port: " + part); diff --git a/www/index.html b/www/index.html index 943fbe9..2f99367 100644 --- a/www/index.html +++ b/www/index.html @@ -79,4 +79,4 @@ different network protocol handlers to share the following facilities: - \ No newline at end of file + -- 1.7.10.4