X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Ffcp%2FFcpConnection.java;h=0eda39ddf8b5d9396ef3289c8b7e23fead5f0dd0;hb=064ea7223eef47bdcef90d2c63f91620171fc955;hp=84f7ce9f8cba0451b471a0ae7dc967f4730a10f8;hpb=2300288313c9c24fc254a21c6324a698e4a786ad;p=jFCPlib.git diff --git a/src/main/java/net/pterodactylus/fcp/FcpConnection.java b/src/main/java/net/pterodactylus/fcp/FcpConnection.java index 84f7ce9..0eda39d 100644 --- a/src/main/java/net/pterodactylus/fcp/FcpConnection.java +++ b/src/main/java/net/pterodactylus/fcp/FcpConnection.java @@ -31,8 +31,6 @@ import java.util.HashMap; import java.util.Map; import java.util.logging.Logger; -import net.pterodactylus.util.logging.Logging; - /** * An FCP connection to a Freenet node. * @@ -41,7 +39,7 @@ import net.pterodactylus.util.logging.Logging; public class FcpConnection implements Closeable { /** Logger. */ - private static final Logger logger = Logging.getLogger(FcpConnection.class.getName()); + private static final Logger logger = Logger.getLogger(FcpConnection.class.getName()); /** The default port for FCP v2. */ public static final int DEFAULT_PORT = 9481; @@ -68,7 +66,7 @@ public class FcpConnection implements Closeable { private FcpConnectionHandler connectionHandler; /** Incoming message statistics. */ - private Map incomingMessageStatistics = Collections.synchronizedMap(new HashMap()); + private static final Map incomingMessageStatistics = Collections.synchronizedMap(new HashMap()); /** * Creates a new FCP connection to the freenet node running on localhost, @@ -158,6 +156,10 @@ public class FcpConnection implements Closeable { fcpListenerManager.removeListener(fcpListener); } + public synchronized boolean isClosed() { + return connectionHandler != null; + } + // // ACTIONS // @@ -193,9 +195,10 @@ public class FcpConnection implements Closeable { } /** - * Closes the connection. If there is no connection to the node, this method - * does nothing. + * Closes the connection. If there is no connection to the node, this + * method does nothing. */ + @Override public void close() { handleDisconnect(null); } @@ -262,6 +265,8 @@ public class FcpConnection implements Closeable { fcpListenerManager.fireReceivedDataFound(new DataFound(fcpMessage)); } else if ("SubscribedUSKUpdate".equals(messageName)) { fcpListenerManager.fireReceivedSubscribedUSKUpdate(new SubscribedUSKUpdate(fcpMessage)); + } else if ("SubscribedUSK".equals(messageName)) { + fcpListenerManager.fireReceivedSubscribedUSK(new SubscribedUSK(fcpMessage)); } else if ("IdentifierCollision".equals(messageName)) { fcpListenerManager.fireReceivedIdentifierCollision(new IdentifierCollision(fcpMessage)); } else if ("AllData".equals(messageName)) { @@ -298,6 +303,8 @@ public class FcpConnection implements Closeable { } } else if ("PluginInfo".equals(messageName)) { fcpListenerManager.fireReceivedPluginInfo(new PluginInfo(fcpMessage)); + } else if ("PluginRemoved".equals(messageName)) { + fcpListenerManager.fireReceivedPluginRemoved(new PluginRemoved(fcpMessage)); } else if ("NodeData".equals(messageName)) { fcpListenerManager.fireReceivedNodeData(new NodeData(fcpMessage)); } else if ("TestDDAReply".equals(messageName)) { @@ -323,8 +330,8 @@ public class FcpConnection implements Closeable { * Handles a disconnect from the node. * * @param throwable - * The exception that caused the disconnect, or null - * if there was no exception + * The exception that caused the disconnect, or + * null if there was no exception */ synchronized void handleDisconnect(Throwable throwable) { FcpUtils.close(remoteInputStream); @@ -372,8 +379,8 @@ public class FcpConnection implements Closeable { } /** - * A wrapper around an {@link InputStream} that only supplies a limit number - * of bytes from the underlying input stream. + * A wrapper around an {@link InputStream} that only supplies a limit + * number of bytes from the underlying input stream. * * @author David ‘Bombe’ Roden <bombe@freenetproject.org> */ @@ -454,7 +461,7 @@ public class FcpConnection implements Closeable { * @see java.io.FilterInputStream#mark(int) */ @Override - public void mark(int readlimit) { + public synchronized void mark(int readlimit) { /* do nothing. */ } @@ -476,7 +483,7 @@ public class FcpConnection implements Closeable { * @see java.io.FilterInputStream#reset() */ @Override - public void reset() throws IOException { + public synchronized void reset() throws IOException { /* do nothing. */ }