<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="http://git.reviewboard.kde.org/r/102696/">http://git.reviewboard.kde.org/r/102696/</a>
     </td>
    </tr>
   </table>
   <br />


<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://git.reviewboard.kde.org/media/rb/images/review_request_box_top_bg.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
 <tr>
  <td>

<div>Review request for kdelibs.</div>
<div>By Dawit Alemayehu.</div>


<p style="color: grey;"><i>Updated Sept. 27, 2011, 9:12 p.m.</i></p>



<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Changes</h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Found more proxy related issues and fixed those as well:

     * Remove support for 'PersistentProxyConnection' option since it serves no
       purpose other than causing unnecessary failures and bugs when using
       proxy servers.  To see these problems, simply disable the 'Use persistent proxy conneciton' 
       option in the proxy configuration dialog and use a proxy server, e.g. privoxy.
    
     * Cleaned up how m_request.isKeepAlive is used:
         - No point in calling httpCloseConnection based on the state of this flag
           in proceedUntilResponseHeader since sendQuery will always take care of that.
    
         - Do not reset m_request.ikeepAlive flag in httpCloseConnection. Otherwise,
           it will inadvertently set the flag to false since it gets called way too
           much. This flag now is initially set to true in resetSessionConfiguration
           and only updated based on how the remote sever responds.
    
         - If the server sends back a "keep-alive" header, but reports itself as a
           HTTP/1.0 server, make sure this flag is set to true.
</pre>
  </td>
 </tr>
</table>




<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
 <table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">This 5th patch in a serious of patches meant to improve proxy support in KDE deals with support at the kioslave level. More specifically the http ioslave. The patch is necessary to provide proper support for PAC script based proxy configuration. Namely allowing aleternate proxy servers to be specified and used as necessary. Here are the change this patch makes:

     * Add a new function in TCPSlaveBase to connect to the a remote server without 
        automatically sending error notitification to the client. [NEW API]
    
     * Move the proxy related code from 'resetSessionSettings' to 'httpOpenConnection'.
       Proxy information will now be only set from 'setHost' and reset from 
       'reparseConfiguration' as it should have been from the beginning. No need to 
       reparse proxy related information on every request.
    
     * Added a new variable, proxyUrls, to HTTPRequest to store the multiple proxy URLs
        obtained from the "ProxyUrls" meta-data.
    
     * Modified 'httpShouldCloseConnection' to account for multiple proxy addresses.
    
     * Modified 'sendQuery' to connect to the remote server before formatting the HTTP
       headers so that the headers can properly reflect the correct proxy settings.
</pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing (updated)</h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">- Tested changes using a real proxy server, privoxy.

- Tested changes using a poor man's SOCKS proxy setup: 
      ssh -D <port#> <ssh-server-address>
   and the following PAC script:

function FindProxyForURL( url, host )
{
    var resolved_ip = dnsResolve(host);
    
    if (isInNet(resolved_ip, "127.0.0.1", "255.255.255.0"))
        return "DIRECT";

    return "SOCKS 127.0.0.1:9999; DIRECT";
}
</pre>
  </td>
 </tr>
</table>




<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> (updated)</h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>kio/kio/tcpslavebase.h <span style="color: grey">(3f87ea8)</span></li>

 <li>kio/kio/tcpslavebase.cpp <span style="color: grey">(ec70559)</span></li>

 <li>kioslave/http/http.h <span style="color: grey">(d8c47c7)</span></li>

 <li>kioslave/http/http.cpp <span style="color: grey">(6d41a13)</span></li>

</ul>

<p><a href="http://git.reviewboard.kde.org/r/102696/diff/" style="margin-left: 3em;">View Diff</a></p>




  </td>
 </tr>
</table>




  </div>
 </body>
</html>