Author: hannes
Date: 2008-12-13 03:53:10 +0100 (Sat, 13 Dec 2008)
New Revision: 9431
Modified:
helma/helma/trunk/src/helma/main/JettyServer.java
Log:
Be smarter about opening listeners in JettyServer
Details at http://dev.helma.org/trac/helma/changeset/9431
Modified: helma/helma/trunk/src/helma/main/JettyServer.java
===================================================================
--- helma/helma/trunk/src/helma/main/JettyServer.java 2008-12-13 02:36:39 UTC (rev 9430)
+++ helma/helma/trunk/src/helma/main/JettyServer.java 2008-12-13 02:53:10 UTC (rev 9431)
@@ -19,12 +19,12 @@
import org.mortbay.http.HttpServer;
import org.mortbay.http.HttpContext;
import org.mortbay.http.SocketListener;
+import org.mortbay.http.HttpListener;
import org.mortbay.http.ajp.AJP13Listener;
import org.mortbay.util.InetAddrPort;
import java.util.StringTokenizer;
import java.net.URL;
-import java.net.MalformedURLException;
import java.io.IOException;
public class JettyServer {
@@ -46,6 +46,7 @@
private JettyServer(URL url) throws IOException {
http = new org.mortbay.jetty.Server(url);
+ openListeners();
}
private JettyServer(InetEndpoint webPort, InetEndpoint ajpPort, Server server)
@@ -54,13 +55,7 @@
// create embedded web server if port is specified
if (webPort != null) {
- // opening the listener here allows us to run on priviledged port 80 under jsvc
- // even as non-root user, because init() is called with root privileges
- // while start() will be called with the user we will actually run as
- InetAddrPort addr = new InetAddrPort(webPort.getInetAddress(), webPort.getPort());
- SocketListener listener = new SocketListener(addr);
- listener.open();
- http.addListener(listener);
+ http.addListener(new InetAddrPort(webPort.getInetAddress(), webPort.getPort()));
}
// activate the ajp13-listener
@@ -88,6 +83,7 @@
ajp13.setRemoteServers(jkallowarr);
server.getLogger().info("Starting AJP13-Listener on port " + (ajpPort));
}
+ openListeners();
}
public HttpServer getHttpServer() {
@@ -119,4 +115,17 @@
public void destroy() {
http.destroy();
}
+
+ private void openListeners() throws IOException {
+ // opening the listener here allows us to run on priviledged port 80 under jsvc
+ // even as non-root user, because init() is called with root privileges
+ // while start() will be called with the user we will actually run as
+ HttpListener[] listeners = http.getListeners();
+ for (int i = 0; i < listeners.length; i++) {
+ if (listeners[i] instanceof SocketListener) {
+ SocketListener listener = (SocketListener) listeners[i];
+ listener.open();
+ }
+ }
+ }
}
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.