GNOME Bugzilla – Bug 580623
Mishandling of evolution's proxy ignore_hosts key
Last modified: 2010-09-08 15:01:02 UTC
Forwarding https://bugzilla.novell.com/show_bug.cgi?id=497975 with a simple summary. Apparently, /apps/evolution/shell/network_config/ignore_hosts is a list of strings according to the gconf schemas. However, all the code dealing with it assumes the key contains a simple string, and not a list. So there's a mismatch here :-)
Yeah, looks like the schema is wrong unfortunately. That's more of a pain to fix. Confirming.
*** Bug 616191 has been marked as a duplicate of this bug. ***
Created attachment 169415 [details] [review] evo patch for evolution; This makes a migration and changes string GConf entry to a list<string> GConf entry, and operates with it as expected by EProxy. The initial list should be comma-separated, as is written in the help, though slightly hidden in the text. Note that the migration happens only if the /apps/evolution/version is less than 2.32.0, which is a version (or quite long left 3.0.0) used in the master, so the migration doesn't run for users of git master or a development version. That's a limitation of a migration code for years.
Created commit aa61df9 in evo master (2.31.92+)
(In reply to comment #4) > Created commit aa61df9 in evo master (2.31.92+) I applied this to my gnome-2-30 build and I still get the following warnings on startup: (evolution:18632): e-utils-WARNING **: GConf error: Type mismatch: Expected list, got string (evolution:18632): e-utils-WARNING **: GConf error: Type mismatch: Expected list, got string Which also show up in dialogs. I even tried going into the network proxy settings application and added a host to the ignore list and then removed it and applied, hoping that evolution would get the callback and do whatever it needed to. I still get the same warnings. Is there something I am misunderstanding?
Nope, I do thing you understand this correctly. I'm wondering whether the patch applied properly, because it seems to me it didn't. I bet the callback ignore_hosts_entry_changed_cb wasn't called. Could you add there a breakpoint in gdb or some printf and retry? Specifically, whether in em_network_prefs_construct is this callback used.
The patch looks like it applied properly during the build. Maybe I should add some details about my environment here. In my gnome network proxy preferences, I have selected "Automatic proxy configuration" and point to a URL on a webserver here which serves a proxy "pac" file. In evolution's own proxy configuration however I have "Manual proxy configuration" with my squid3 proxy server selected for both HTTP Proxy and Secure HTTP Proxy. I also have my proxy username/password configured for Use Authentication. When I said in comment 5 that I added a value to the ignored hosts key, that was to the gnome network proxy settings, not the evolution settings. I have just now changed the ignored hosts in evolution from empty to the same (comma separated) list as I have configured in gnome and I no longer get the GConf errors on startup. Yay. I don't know that the ignore list is being honored yet though. However I think this bug is strictly about the mismatch between the code and the schema with regard to lists and strings of lists. As an aside, I just tried to "load images" in an HTML message but evolution failed to send the password along with the username in the in basic auth credentials to the proxy server. That's probably another/different bug though.
Probably this can be closed now although it would be nice to see a second confirmation (from Vincent perhaps?) that it fixed OP's problem too.
(In reply to comment #7) > ... > When I said in comment 5 that I added a value to the ignored hosts key, that > was to the gnome network proxy settings, not the evolution settings. > ... Aah, that might explain it, I was changing only parts in evolution gconf, which only those were incorrect, and changing anything in the system proxy settings doesn't influence this. So yes, you've properly applied the patch, because it fixed the key type when you changed the value in evolution's preferences. With respect of sending password, evolution sends user name and password to your proxy within the proxy url, without any special encoding, so if it contains any url-specific character, then it might prevent it from a correct behaviour. It just constructs uri as http://username:password@proxyurl and thinking of it, it might probably escape both username and password, to avoid any confusing for the url parser. You've right that this is out of scope of this bug, but should be fixed. I see the bug is already closed as fixed :)