[prev in list] [next in list] [prev in thread] [next in thread] 

List:       konq-bugs
Subject:    [Bug 61916] New: Proxy config file causes Konqueror to hang
From:       Laurence Withers <l () lww ! demon ! co ! uk>
Date:       2003-07-31 15:58:09
[Download RAW message or body]

------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
     
http://bugs.kde.org/show_bug.cgi?id=61916     
           Summary: Proxy config file causes Konqueror to hang momentarily
           Product: konqueror
           Version: unspecified
          Platform: Compiled Sources
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: NOR
         Component: general
        AssignedTo: konq-bugs@kde.org
        ReportedBy: l@lww.demon.co.uk


Version:            (using KDE KDE 3.1.3)
Installed from:    Compiled From Sources
Compiler:          GCC 3.3 
OS:          Linux

The proxy config file, below, seems to cause Konqueror to hang momentarily (with some \
component going to 100% CPU usage for a few seconds). The effect is fairly obvious - \
Konqueror does not draw to the screen, and if you minimise and then restore it, the \
window is not redrawn.

This behaviour happens whenever you go to a HTTP URL. Bizarrely, it does not always \
occur. It happens both on my machine (KDE 3.1.3, everything compiled from sources) \
and on the machines in the lab they have here (running 3.0.something, perhaps 3.0.5).

This occurs whether you set the proxy file address ("Specified script file") either \
to a HTTP URL where you can get the script, or to a file URL (eg. \
/home/lwithers/proxy.config).

The proxy file in question is:

function FindProxyForURL(url, host)
{
  // resolve the host part of the URL -> IP once (minimises DNS lookups)

  var hostIp = dnsResolve(host);


  // examine the request to determine how the browser should fetch it

  if (
    // request for local (inside Reading network) or loopback - go direct

    isInNet(hostIp, "127.0.0.0", "255.0.0.0") || 
    isInNet(hostIp, "134.225.0.0", "255.255.0.0") || 
    isInNet(hostIp, "192.133.244.0", "255.255.255.0") ||
    isInNet(hostIp, "192.100.154.0", "255.255.255.0") ||
    isInNet(hostIp, "192.171.166.0", "255.255.255.0") ||
    isInNet(hostIp, "10.0.0.0", "255.0.0.0") ||
    isInNet(hostIp, "172.16.0.0", "255.240.0.0") ||
    isInNet(hostIp, "192.168.0.0", "255.255.0.0")) {
      return "DIRECT";

  } else if (
    // request is for external resource fetchable through the cache

    shExpMatch(url, "http:*") ||
    shExpMatch(url, "HTTP:*") ||
    shExpMatch(url, "[hH][tT][tT][pP]:*") ||
    shExpMatch(url, "https:*") ||
    shExpMatch(url, "HTTPS:*") ||
    shExpMatch(url, "[hH][tT][tT][pP][sS]:*")) {
      // the list of proxies below is dynamically constructed

      return "PROXY wwwcache.rdg.ac.uk:8080; PROXY wwwcache1.rdg.ac.uk:8080";

  } else {
    // some other sort of request - go direct

    return "DIRECT";
  }
}

Please let me know if there are any other tests you need. I am capable of recompiling \
KDE with whatever options/flags you need, and can also use ethereal et al. to find \
out what is happening on the network. _______________________________________________
Konq-bugs mailing list
Konq-bugs@mail.kde.org
http://mail.kde.org/mailman/listinfo/konq-bugs


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic