X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Futils%2Fserial%2Fserver%2FServerObject.java;h=4f72013a3e7008896a65107d6e8737f87a640c0e;hb=8468bb79f0fc9c88fa21355509731625732eb10e;hp=67dfa4a020d3a0cb8f8a70446298ddb7e0b0f7ee;hpb=0ff71477abf90d4843b8d9a3dc9907b5edc95fc0;p=fanfix.git diff --git a/src/be/nikiroo/utils/serial/server/ServerObject.java b/src/be/nikiroo/utils/serial/server/ServerObject.java index 67dfa4a..4f72013 100644 --- a/src/be/nikiroo/utils/serial/server/ServerObject.java +++ b/src/be/nikiroo/utils/serial/server/ServerObject.java @@ -2,6 +2,7 @@ package be.nikiroo.utils.serial.server; import java.io.IOException; import java.net.Socket; +import java.net.UnknownHostException; import be.nikiroo.utils.Version; @@ -23,14 +24,20 @@ abstract public class ServerObject extends Server { * the port to listen on, or 0 to assign any unallocated port * found (which can later on be queried via * {@link ServerObject#getPort()} - * @param ssl - * use a SSL connection (or not) + * @param key + * an optional key to encrypt all the communications (if NULL, + * everything will be sent in clear text) * * @throws IOException * in case of I/O error + * @throws UnknownHostException + * if the IP address of the host could not be determined + * @throws IllegalArgumentException + * if the port parameter is outside the specified range of valid + * port values, which is between 0 and 65535, inclusive */ - public ServerObject(int port, boolean ssl) throws IOException { - super(port, ssl); + public ServerObject(int port, String key) throws IOException { + super(port, key); } /** @@ -41,19 +48,25 @@ abstract public class ServerObject extends Server { * the server name (only used for debug info and traces) * @param port * the port to listen on - * @param ssl - * use a SSL connection (or not) + * @param key + * an optional key to encrypt all the communications (if NULL, + * everything will be sent in clear text) * * @throws IOException * in case of I/O error + * @throws UnknownHostException + * if the IP address of the host could not be determined + * @throws IllegalArgumentException + * if the port parameter is outside the specified range of valid + * port values, which is between 0 and 65535, inclusive */ - public ServerObject(String name, int port, boolean ssl) throws IOException { - super(name, port, ssl); + public ServerObject(String name, int port, String key) throws IOException { + super(name, port, key); } @Override protected ConnectActionServer createConnectActionServer(Socket s) { - return new ConnectActionServerObject(s) { + return new ConnectActionServerObject(s, key) { @Override public void action(Version clientVersion) throws Exception { try { @@ -61,6 +74,9 @@ abstract public class ServerObject extends Server { Object rep = null; try { rep = onRequest(this, clientVersion, data); + if (isClosing()) { + return; + } } catch (Exception e) { onError(e); } @@ -73,7 +89,7 @@ abstract public class ServerObject extends Server { @Override protected void onError(Exception e) { - getTraceHandler().error(e); + ServerObject.this.onError(e); } }; }