From 4738584ccdf7749ffda92ffd26d165f47ddaf24e Mon Sep 17 00:00:00 2001 From: Simone Bordet Date: Mon, 9 Jul 2012 13:21:03 +0200 Subject: Improved proxy logging. --- .../eclipse/jetty/spdy/proxy/SPDYProxyEngine.java | 38 +++++++++++++++------- 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/jetty-spdy/spdy-jetty-http/src/main/java/org/eclipse/jetty/spdy/proxy/SPDYProxyEngine.java b/jetty-spdy/spdy-jetty-http/src/main/java/org/eclipse/jetty/spdy/proxy/SPDYProxyEngine.java index 23b38b0cdb..536e966d85 100644 --- a/jetty-spdy/spdy-jetty-http/src/main/java/org/eclipse/jetty/spdy/proxy/SPDYProxyEngine.java +++ b/jetty-spdy/spdy-jetty-http/src/main/java/org/eclipse/jetty/spdy/proxy/SPDYProxyEngine.java @@ -150,10 +150,8 @@ public class SPDYProxyEngine extends ProxyEngine addRequestProxyHeaders(headers); SynInfo serverSynInfo = new SynInfo(headers, clientSynInfo.isClose()); - logger.debug("P -> S {}", serverSynInfo); - StreamFrameListener listener = new ProxyStreamFrameListener(clientStream); - StreamHandler handler = new StreamHandler(clientStream); + StreamHandler handler = new StreamHandler(clientStream, serverSynInfo); clientStream.setAttribute(STREAM_HANDLER_ATTRIBUTE, handler); serverSession.syn(serverSynInfo, listener, timeout, TimeUnit.MILLISECONDS, handler); return this; @@ -254,6 +252,8 @@ public class SPDYProxyEngine extends ProxyEngine @Override public void onReply(final Stream stream, ReplyInfo replyInfo) { + logger.debug("S -> P {} on {}", replyInfo, stream); + short serverVersion = stream.getSession().getVersion(); Headers headers = new Headers(replyInfo.getHeaders(), false); short clientVersion = this.clientStream.getSession().getVersion(); @@ -263,7 +263,7 @@ public class SPDYProxyEngine extends ProxyEngine this.replyInfo = new ReplyInfo(headers, replyInfo.isClose()); if (replyInfo.isClose()) - reply(); + reply(stream); } @Override @@ -276,19 +276,29 @@ public class SPDYProxyEngine extends ProxyEngine @Override public void onData(final Stream stream, final DataInfo dataInfo) { + logger.debug("S -> P {} on {}", dataInfo, stream); + if (replyInfo != null) { if (dataInfo.isClose()) replyInfo.getHeaders().put("content-length", String.valueOf(dataInfo.available())); - reply(); + reply(stream); } - data(dataInfo); + data(stream, dataInfo); } - private void reply() + private void reply(final Stream stream) { - clientStream.reply(replyInfo, getTimeout(), TimeUnit.MILLISECONDS, new Handler.Adapter() + final ReplyInfo replyInfo = this.replyInfo; + this.replyInfo = null; + clientStream.reply(replyInfo, getTimeout(), TimeUnit.MILLISECONDS, new Handler() { + @Override + public void completed(Void context) + { + logger.debug("P -> C {} from {} to {}", replyInfo, stream, clientStream); + } + @Override public void failed(Void context, Throwable x) { @@ -296,10 +306,9 @@ public class SPDYProxyEngine extends ProxyEngine rst(clientStream); } }); - replyInfo = null; } - private void data(final DataInfo dataInfo) + private void data(final Stream stream, final DataInfo dataInfo) { clientStream.data(dataInfo, getTimeout(), TimeUnit.MILLISECONDS, new Handler() { @@ -307,6 +316,7 @@ public class SPDYProxyEngine extends ProxyEngine public void completed(Void context) { dataInfo.consume(dataInfo.length()); + logger.debug("P -> C {} from {} to {}", dataInfo, stream, clientStream); } @Override @@ -331,16 +341,20 @@ public class SPDYProxyEngine extends ProxyEngine { private final Queue queue = new LinkedList<>(); private final Stream clientStream; + private final SynInfo serverSynInfo; private Stream serverStream; - private StreamHandler(Stream clientStream) + private StreamHandler(Stream clientStream, SynInfo serverSynInfo) { this.clientStream = clientStream; + this.serverSynInfo = serverSynInfo; } @Override public void completed(Stream serverStream) { + logger.debug("P -> S {} from {} to {}", serverSynInfo, clientStream, serverStream); + serverStream.setAttribute(CLIENT_STREAM_ATTRIBUTE, clientStream); DataInfoHandler dataInfoHandler; @@ -475,7 +489,7 @@ public class SPDYProxyEngine extends ProxyEngine addResponseProxyHeaders(headers); - StreamHandler handler = new StreamHandler(clientStream); + StreamHandler handler = new StreamHandler(clientStream, serverSynInfo); serverStream.setAttribute(STREAM_HANDLER_ATTRIBUTE, handler); clientStream.syn(new SynInfo(headers, serverSynInfo.isClose()), getTimeout(), TimeUnit.MILLISECONDS, handler); return this; -- cgit v1.2.3