Diff of /jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/server/ProxyRequestHandler.java
Parent Directory
| Revision Log
| Patch
--- jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/server/ProxyRequestHandler.java 2005/05/12 17:01:17 169848
+++ jakarta/commons/proper/httpclient/trunk/src/test/org/apache/commons/httpclient/server/ProxyRequestHandler.java 2005/05/12 17:05:07 169849
@@ -30,12 +30,14 @@
package org.apache.commons.httpclient.server;
import java.io.IOException;
+import java.net.UnknownHostException;
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.HttpVersion;
import org.apache.commons.httpclient.URI;
+import org.apache.commons.httpclient.URIException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -72,14 +74,27 @@ public class ProxyRequestHandler impleme
final SimpleHttpServerConnection conn,
final SimpleRequest request) throws IOException {
- RequestLine oldreqline = request.getRequestLine();
- URI uri = new URI(oldreqline.getUri(), true);
- SimpleHost host = new SimpleHost(uri.getHost(), uri.getPort());
- SimpleHttpServerConnection proxyconn = this.connmanager.openConnection(host);
- proxyconn.setSocketTimeout(0);
+ RequestLine oldreqline = request.getRequestLine();
+ URI uri = null;
+ SimpleHost host = null;
try {
-
-
+ uri = new URI(oldreqline.getUri(), true);
+ host = new SimpleHost(uri.getHost(), uri.getPort());
+ } catch (URIException ex) {
+ SimpleResponse response = ErrorResponse.getResponse(HttpStatus.SC_BAD_REQUEST);
+ conn.writeResponse(response);
+ return;
+ }
+ SimpleHttpServerConnection proxyconn = null;
+ try {
+ proxyconn = this.connmanager.openConnection(host);
+ } catch (UnknownHostException e) {
+ SimpleResponse response = ErrorResponse.getResponse(HttpStatus.SC_NOT_FOUND);
+ conn.writeResponse(response);
+ return;
+ }
+ try {
+ proxyconn.setSocketTimeout(0);
// Rewrite target url
RequestLine newreqline = new RequestLine(
oldreqline.getMethod(),
@@ -103,6 +118,7 @@ public class ProxyRequestHandler impleme
if (response == null) {
return;
}
+ response.setHeader(new Header("Via", "1.1 test (Test-Proxy)"));
connheader = response.getFirstHeader("Connection");
if (connheader != null) {
String s = connheader.getValue();