pike.git / lib / modules / Protocols.pmod / HTTP.pmod / module.pmod

version» Context lines:

pike.git/lib/modules/Protocols.pmod/HTTP.pmod/module.pmod:175:       if( user || password )    {    if( !request_headers )    proxy_headers = ([]);    else    proxy_headers = request_headers + ([]);       proxy_headers["Proxy-Authorization"] = "Basic "    + MIME.encode_base64((user || "") + ":" + (password || "")); +  if (has_value(proxy->host, ":")) { +  proxy_headers["host"] = "[" + proxy->host + "]:" + proxy->port; +  } else { +  proxy_headers["host"] = proxy->host + ":" + proxy->port;    } -  +  }       if (url->scheme == "http") {    if( query_variables )    url->set_query_variables( url->get_query_variables() +    query_variables );    string web_url = (string)url;       // Note: url object is wrecked here    url->host = proxy->host;    url->port = proxy->port;
pike.git/lib/modules/Protocols.pmod/HTTP.pmod/module.pmod:202: Inside #if constant(SSL.File)
  #endif    if (!con || (con->host != url->host) || (con->port != url->port)) {    // Make a CONNECT request to the proxy,    // and use keep-alive to stack the real request on top.    proxy->path = url->host + ":" + url->port;    if (!proxy_headers) proxy_headers = ([]);    proxy_headers->connection = "keep-alive";    m_delete(proxy_headers, "authorization"); // Keep the proxy in the dark.    con = do_method("CONNECT", proxy, 0, proxy_headers);    con->data(0); -  if (con->status/100 > 2) { +  if (con->status >= 300) { +  // Proxy did not like us or failed to connect to the remote.    return con;    }    con->headers["connection"] = "keep-alive";    con->headers["content-length"] = "0";    con->host = url->host;    con->port = url->port;    con->https = 1;    con->start_tls(1);    }    proxy_headers = request_headers;
pike.git/lib/modules/Protocols.pmod/HTTP.pmod/module.pmod:467:   }      protected void https_proxy_connect_ok(Protocols.HTTP.Query con,    array(mixed) orig_cb_info,    Standards.URI url, string method,    mapping(string:string) query_variables,    mapping(string:string) request_headers,    string data)   {    con->set_callbacks(@orig_cb_info); +  if (con->status >= 300) { +  // Proxy did not like us or failed to connect to the remote. +  // Return the failure message. +  if (con->request_ok) { +  con->request_ok(con, @con->extra_args); +  } +  return; +  }       con->con->set_nonblocking(0,    lambda() {    do_async_method(method, url, query_variables,    request_headers, con, data);    }, con->async_failed);       con->headers["connection"] = "keep-alive";    con->headers["content-length"] = "0";    con->host = url->host;
pike.git/lib/modules/Protocols.pmod/HTTP.pmod/module.pmod:547:       if( user || password )    {    if( !request_headers )    proxy_headers = ([]);    else    proxy_headers = request_headers + ([]);       proxy_headers["Proxy-Authorization"] = "Basic "    + MIME.encode_base64((user || "") + ":" + (password || "")); +  if (has_value(proxy->host, ":")) { +  proxy_headers["host"] = "[" + proxy->host + "]:" + proxy->port; +  } else { +  proxy_headers["host"] = proxy->host + ":" + proxy->port;    } -  +  }       if (url->scheme == "http") {    if( query_variables )    url->set_query_variables( url->get_query_variables() +    query_variables );    string web_url = (string)url;       // Note: url object is wrecked here    url->host = proxy->host;    url->port = proxy->port;