diff --git a/guacamole-common/pom.xml b/guacamole-common/pom.xml
index 9ce28c816..514f9140b 100644
--- a/guacamole-common/pom.xml
+++ b/guacamole-common/pom.xml
@@ -24,38 +24,25 @@
-
-
-
-
- org.apache.maven.wagon
- wagon-ssh-external
-
-
-
+
+
javax.servlet
servlet-api
2.5
provided
+
+
+
+ org.slf4j
+ slf4j-api
+ 1.6.1
+
+
-
-
- guac-dev
- http://guac-dev.org/repo
-
-
-
-
-
- guac-dev
- ${guac-dev.dist.repo}
-
-
-
diff --git a/guacamole-common/src/main/java/net/sourceforge/guacamole/net/InetGuacamoleSocket.java b/guacamole-common/src/main/java/net/sourceforge/guacamole/net/InetGuacamoleSocket.java
index d966f2c2b..28add9689 100644
--- a/guacamole-common/src/main/java/net/sourceforge/guacamole/net/InetGuacamoleSocket.java
+++ b/guacamole-common/src/main/java/net/sourceforge/guacamole/net/InetGuacamoleSocket.java
@@ -33,6 +33,8 @@ import java.io.OutputStreamWriter;
import java.net.InetSocketAddress;
import java.net.SocketAddress;
import net.sourceforge.guacamole.GuacamoleException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
@@ -43,6 +45,8 @@ import net.sourceforge.guacamole.GuacamoleException;
*/
public class InetGuacamoleSocket implements GuacamoleSocket {
+ private Logger logger = LoggerFactory.getLogger(InetGuacamoleSocket.class);
+
private GuacamoleReader reader;
private GuacamoleWriter writer;
@@ -63,6 +67,8 @@ public class InetGuacamoleSocket implements GuacamoleSocket {
try {
+ logger.debug("Connecting to guacd at {}:{}.", hostname, port);
+
// Get address
SocketAddress address = new InetSocketAddress(
InetAddress.getByName(hostname),
@@ -90,6 +96,7 @@ public class InetGuacamoleSocket implements GuacamoleSocket {
@Override
public void close() throws GuacamoleException {
try {
+ logger.debug("Closing socket to guacd.");
sock.close();
}
catch (IOException e) {
diff --git a/guacamole-common/src/main/java/net/sourceforge/guacamole/servlet/GuacamoleSession.java b/guacamole-common/src/main/java/net/sourceforge/guacamole/servlet/GuacamoleSession.java
index 32c8468fb..762775372 100644
--- a/guacamole-common/src/main/java/net/sourceforge/guacamole/servlet/GuacamoleSession.java
+++ b/guacamole-common/src/main/java/net/sourceforge/guacamole/servlet/GuacamoleSession.java
@@ -24,6 +24,8 @@ import java.util.concurrent.ConcurrentMap;
import javax.servlet.http.HttpSession;
import net.sourceforge.guacamole.GuacamoleException;
import net.sourceforge.guacamole.net.GuacamoleTunnel;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* Provides abstract access to the tunnels associated with a Guacamole session.
@@ -32,6 +34,8 @@ import net.sourceforge.guacamole.net.GuacamoleTunnel;
*/
public class GuacamoleSession {
+ private Logger logger = LoggerFactory.getLogger(GuacamoleSession.class);
+
private ConcurrentMap tunnels;
/**
@@ -69,6 +73,7 @@ public class GuacamoleSession {
*/
public void attachTunnel(GuacamoleTunnel tunnel) {
tunnels.put(tunnel.getUUID().toString(), tunnel);
+ logger.debug("Attached tunnel {}.", tunnel.getUUID());
}
/**
@@ -77,6 +82,7 @@ public class GuacamoleSession {
*/
public void detachTunnel(GuacamoleTunnel tunnel) {
tunnels.remove(tunnel.getUUID().toString());
+ logger.debug("Detached tunnel {}.", tunnel.getUUID());
}
/**
diff --git a/guacamole-common/src/main/java/net/sourceforge/guacamole/servlet/GuacamoleTunnelServlet.java b/guacamole-common/src/main/java/net/sourceforge/guacamole/servlet/GuacamoleTunnelServlet.java
index 728afb237..3e7a34433 100644
--- a/guacamole-common/src/main/java/net/sourceforge/guacamole/servlet/GuacamoleTunnelServlet.java
+++ b/guacamole-common/src/main/java/net/sourceforge/guacamole/servlet/GuacamoleTunnelServlet.java
@@ -25,13 +25,14 @@ import java.io.UnsupportedEncodingException;
import java.io.Writer;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
-
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import net.sourceforge.guacamole.GuacamoleException;
import net.sourceforge.guacamole.io.GuacamoleReader;
import net.sourceforge.guacamole.io.GuacamoleWriter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* A HttpServlet implementing and abstracting the operations required by the
@@ -41,6 +42,8 @@ import net.sourceforge.guacamole.io.GuacamoleWriter;
*/
public abstract class GuacamoleTunnelServlet extends HttpServlet {
+ private Logger logger = LoggerFactory.getLogger(GuacamoleTunnelServlet.class);
+
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException {
handleTunnelRequest(request, response);
@@ -75,13 +78,19 @@ public abstract class GuacamoleTunnelServlet extends HttpServlet {
GuacamoleTunnel tunnel = doConnect(request);
if (tunnel != null) {
+
+ logger.info("Connection from {} succeeded.", request.getRemoteAddr());
+
try {
response.getWriter().println(tunnel.getUUID().toString());
}
catch (IOException e) {
throw new GuacamoleException(e);
}
+
}
+ else
+ logger.info("Connection from {} failed.", request.getRemoteAddr());
}
@@ -207,6 +216,10 @@ public abstract class GuacamoleTunnelServlet extends HttpServlet {
} while ((message = reader.read()) != null);
+ // Close tunnel immediately upon EOF
+ if (message == null)
+ tunnel.close();
+
// End-of-instructions marker
out.write(';');
out.flush();