# HG changeset patch # User Wolfgang Rosenauer # Date 1280392704 -7200 # Node ID 8fea954c3b288a9ca93ee8fbf9ac7a7016103581 # Parent deb8fdcf47922695396ae7887f372b28f4645e6f more minor changes to libproxy patch diff -r deb8fdcf4792 -r 8fea954c3b28 mozilla-libproxy.patch --- a/mozilla-libproxy.patch Thu Jul 29 10:37:59 2010 +0200 +++ b/mozilla-libproxy.patch Thu Jul 29 10:38:24 2010 +0200 @@ -169,7 +169,7 @@ new file mode 100644 --- /dev/null +++ b/toolkit/system/unixproxy/nsLibProxySettings.cpp -@@ -0,0 +1,159 @@ +@@ -0,0 +1,167 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 @@ -224,7 +224,7 @@ + NS_DECL_ISUPPORTS + NS_DECL_NSISYSTEMPROXYSETTINGS + -+ nsUnixSystemProxySettings() {} ++ nsUnixSystemProxySettings() { mProxyFactory = nsnull; } + nsresult Init(); + +private: @@ -241,7 +241,6 @@ +nsresult +nsUnixSystemProxySettings::Init() +{ -+ mProxyFactory = nsnull; + return NS_OK; +} + @@ -275,11 +274,15 @@ + NS_ENSURE_TRUE(proxyArray, NS_ERROR_NOT_AVAILABLE); + + // Translate libproxy's output to PAC string as expected -+ // libproxy's prefixes: http, proxy, socks, socks4, socks5, direct, unknown ++ // libproxy returns an array of proxies in the format: ++ // ://[username:password@]proxy:port ++ // or ++ // direct:// ++ // + // PAC format: "PROXY proxy1.foo.com:8080; PROXY proxy2.foo.com:8080; DIRECT" + int c = 0; + while (proxyArray[c] != NULL) { -+ if (c != 0) { ++ if (!aResult.IsEmpty()) { + aResult.AppendLiteral("; "); + } + @@ -292,7 +295,10 @@ + nsnull, + nsnull, + getter_AddRefs(proxyURI)); -+ NS_ENSURE_SUCCESS(rv, rv); ++ if (NS_FAILED(rv)) { ++ c++; ++ continue; ++ } + + proxyURI->GetScheme(schemeString); + if (NS_SUCCEEDED(proxyURI->SchemeIs("http", &isScheme)) && isScheme) { @@ -309,7 +315,9 @@ + c++; + } + -+//printf("returned PAC proxy string: %s\n", PromiseFlatCString(aResult).get()); ++#ifdef DEBUG ++ printf("returned PAC proxy string: %s\n", PromiseFlatCString(aResult).get()); ++#endif + + PR_Free(proxyArray); + return NS_OK;