Mercurial > pidgin
diff libpurple/util.c @ 26969:f303787f144d
Add yet another URL fetching function. This one takes an account as a
parameter. It's needed because the Yahoo 16 code uses URL fetching as part
of its login process, and without giving the account to purple_proxy_connect
(which wass called in purple_util_fetch_url_request_len), we ignore account-
specific proxy configurations. This is a bad thing, as evidenced by Adium's
ticket 12231. In adding this function, I deprecated
purple_util_fetch_url_request_len and made it a shell that calls this new
function with a NULL account parameter. This maintains the previous behavior
without a mountain of duplicated code.
| author | John Bailey <rekkanoryo@rekkanoryo.org> |
|---|---|
| date | Sat, 30 May 2009 00:07:50 +0000 |
| parents | 6ddb4932772a |
| children | af4a4ebc6441 |
line wrap: on
line diff
--- a/libpurple/util.c Fri May 29 20:56:46 2009 +0000 +++ b/libpurple/util.c Sat May 30 00:07:50 2009 +0000 @@ -4008,7 +4008,7 @@ const char *request, gboolean include_headers, PurpleUtilFetchUrlCallback callback, void *user_data) { - return purple_util_fetch_url_request_len(url, full, + return purple_util_fetch_url_request_len_with_account(NULL, url, full, user_agent, http11, request, include_headers, -1, callback, user_data); @@ -4020,6 +4020,17 @@ const char *request, gboolean include_headers, gssize max_len, PurpleUtilFetchUrlCallback callback, void *user_data) { + return purple_util_fetch_url_request_len_with_account(NULL, url, full, + user_agent, http11, request, include_headers, max_len, callback, + user_data); +} + +PurpleUtilFetchUrlData * +purple_util_fetch_url_request_len_with_account(PurpleAccount *account, + const char *url, gboolean full, const char *user_agent, gboolean http11, + const char *request, gboolean include_headers, gssize max_len, + PurpleUtilFetchUrlCallback callback, void *user_data) +{ PurpleUtilFetchUrlData *gfud; g_return_val_if_fail(url != NULL, NULL); @@ -4057,11 +4068,11 @@ } gfud->is_ssl = TRUE; - gfud->ssl_connection = purple_ssl_connect(NULL, + gfud->ssl_connection = purple_ssl_connect(account, gfud->website.address, gfud->website.port, ssl_url_fetch_connect_cb, ssl_url_fetch_error_cb, gfud); } else { - gfud->connect_data = purple_proxy_connect(NULL, NULL, + gfud->connect_data = purple_proxy_connect(NULL, account, gfud->website.address, gfud->website.port, url_fetch_connect_cb, gfud); }
