hc-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ol...@apache.org
Subject svn commit: r1166921 - /httpcomponents/httpcore/trunk/httpcore-nio/src/examples/org/apache/http/examples/nio/NHttpReverseProxy.java
Date Thu, 08 Sep 2011 21:54:28 GMT
Author: olegk
Date: Thu Sep  8 21:54:28 2011
New Revision: 1166921

URL: http://svn.apache.org/viewvc?rev=1166921&view=rev
Log:
Fixed end of incoming request / response message handling by the reverse proxy

Modified:
    httpcomponents/httpcore/trunk/httpcore-nio/src/examples/org/apache/http/examples/nio/NHttpReverseProxy.java

Modified: httpcomponents/httpcore/trunk/httpcore-nio/src/examples/org/apache/http/examples/nio/NHttpReverseProxy.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpcore/trunk/httpcore-nio/src/examples/org/apache/http/examples/nio/NHttpReverseProxy.java?rev=1166921&r1=1166920&r2=1166921&view=diff
==============================================================================
--- httpcomponents/httpcore/trunk/httpcore-nio/src/examples/org/apache/http/examples/nio/NHttpReverseProxy.java
(original)
+++ httpcomponents/httpcore/trunk/httpcore-nio/src/examples/org/apache/http/examples/nio/NHttpReverseProxy.java
Thu Sep  8 21:54:28 2011
@@ -453,12 +453,14 @@ public class NHttpReverseProxy {
                 // space in the buffer
                 if (!buf.hasRemaining()) {
                     ioctrl.suspendInput();
+                    System.out.println("[client->proxy] " + this.httpExchange.getId()
+ " suspend client input");
                 }
                 // If there is some content in the input buffer make sure origin
                 // output is active
                 if (buf.position() > 0) {
                     if (this.httpExchange.getOriginIOControl() != null) {
                         this.httpExchange.getOriginIOControl().requestOutput();
+                        System.out.println("[client->proxy] " + this.httpExchange.getId()
+ " request origin output");
                     }
                 }
             }
@@ -469,6 +471,10 @@ public class NHttpReverseProxy {
                 this.completed = true;;
                 System.out.println("[client->proxy] " + this.httpExchange.getId() + "
request completed");
                 this.httpExchange.setRequestReceived();
+                if (this.httpExchange.getOriginIOControl() != null) {
+                    this.httpExchange.getOriginIOControl().requestOutput();
+                    System.out.println("[client->proxy] " + this.httpExchange.getId()
+ " request origin output");
+                }
             }
         }
 
@@ -530,23 +536,23 @@ public class NHttpReverseProxy {
                 int n = encoder.write(buf);
                 buf.compact();
                 System.out.println("[proxy->origin] " + this.httpExchange.getId() + "
" + n + " bytes written");
-                if (encoder.isCompleted()) {
-                    System.out.println("[proxy->origin] " + this.httpExchange.getId()
+ " content fully written");
-                }
                 // If there is space in the buffer and the message has not been
                 // transferred, make sure the client is sending more data
                 if (buf.hasRemaining() && !this.httpExchange.isRequestReceived())
{
                     if (this.httpExchange.getClientIOControl() != null) {
                         this.httpExchange.getClientIOControl().requestInput();
+                        System.out.println("[proxy->origin] " + this.httpExchange.getId()
+ " request client input");
                     }
                 }
                 if (buf.position() == 0) {
                     if (this.httpExchange.isRequestReceived()) {
                         encoder.complete();
+                        System.out.println("[proxy->origin] " + this.httpExchange.getId()
+ " content fully written");
                     } else {
                         // Input buffer is empty. Wait until the client fills up
                         // the buffer
                         ioctrl.suspendOutput();
+                        System.out.println("[proxy->origin] " + this.httpExchange.getId()
+ " suspend origin output");
                     }
                 }
             }
@@ -608,12 +614,14 @@ public class NHttpReverseProxy {
                 // space in the buffer
                 if (!buf.hasRemaining()) {
                     ioctrl.suspendInput();
+                    System.out.println("[proxy<-origin] " + this.httpExchange.getId()
+ " suspend origin input");
                 }
                 // If there is some content in the input buffer make sure client
                 // output is active
                 if (buf.position() > 0) {
                     if (this.httpExchange.getClientIOControl() != null) {
                         this.httpExchange.getClientIOControl().requestOutput();
+                        System.out.println("[proxy<-origin] " + this.httpExchange.getId()
+ " request client output");
                     }
                 }
             }
@@ -627,6 +635,10 @@ public class NHttpReverseProxy {
                 this.completed = true;
                 System.out.println("[proxy<-origin] " + this.httpExchange.getId() + "
response completed");
                 this.httpExchange.setResponseReceived();
+                if (this.httpExchange.getClientIOControl() != null) {
+                    this.httpExchange.getClientIOControl().requestOutput();
+                    System.out.println("[proxy<-origin] " + this.httpExchange.getId()
+ " request client output");
+                }
             }
         }
 
@@ -705,23 +717,23 @@ public class NHttpReverseProxy {
                 int n = encoder.write(buf);
                 buf.compact();
                 System.out.println("[client<-proxy] " + this.httpExchange.getId() + "
" + n + " bytes written");
-                if (encoder.isCompleted()) {
-                    System.out.println("[client<-proxy] " + this.httpExchange.getId()
+ " content fully written");
-                }
                 // If there is space in the buffer and the message has not been
                 // transferred, make sure the origin is sending more data
                 if (buf.hasRemaining() && !this.httpExchange.isResponseReceived())
{
                     if (this.httpExchange.getOriginIOControl() != null) {
                         this.httpExchange.getOriginIOControl().requestInput();
+                        System.out.println("[client<-proxy] " + this.httpExchange.getId()
+ " request origin input");
                     }
                 }
                 if (buf.position() == 0) {
                     if (this.httpExchange.isResponseReceived()) {
                         encoder.complete();
+                        System.out.println("[client<-proxy] " + this.httpExchange.getId()
+ " content fully written");
                     } else {
                         // Input buffer is empty. Wait until the origin fills up
                         // the buffer
                         ioctrl.suspendOutput();
+                        System.out.println("[client<-proxy] " + this.httpExchange.getId()
+ " suspend client output");
                     }
                 }
             }



Mime
View raw message