LineInput line_in = new LineInput(chain_socket.getInputStream());
byte[] connect = request.toString().getBytes(org.openqa.jetty.util.StringUtil.__ISO_8859_1);
chain_socket.getOutputStream().write(connect);
String chain_response_line = line_in.readLine();
HttpFields chain_response = new HttpFields();
chain_response.read(line_in);
// decode response
int space0 = chain_response_line.indexOf(' ');
if (space0 > 0 && space0 + 1 < chain_response_line.length()) {
int space1 = chain_response_line.indexOf(' ', space0 + 1);
if (space1 > space0) {
int code = Integer.parseInt(chain_response_line.substring(space0 + 1, space1));
if (code >= 200 && code < 300) {
socket = chain_socket;
in = line_in;
} else {
Enumeration iter = chain_response.getFieldNames();
while (iter.hasMoreElements()) {
String name = (String) iter.nextElement();
if (!_DontProxyHeaders.containsKey(name)) {
Enumeration values = chain_response.getValues(name);
while (values.hasMoreElements()) {
String value = (String) values.nextElement();
response.setField(name, value);
}
}