Tue, 14 Dec 2021 01:58:31 -0600
Replace the removed soup_form_request_new API
They are gone in libsoup 3.
Testing Done:
Compiled against libsoup 2 and 3
Reviewed at https://reviews.imfreedom.org/r/1187/
--- a/libpurple/protocols/facebook/api.c Tue Dec 14 01:57:01 2021 -0600 +++ b/libpurple/protocols/facebook/api.c Tue Dec 14 01:58:31 2021 -0600 @@ -728,7 +728,7 @@ g_list_free(keys); g_free(data); - msg = soup_form_request_new_from_hash("POST", url, params); + msg = soup_message_new_from_encoded_form("POST", url, soup_form_encode_hash(params)); fb_http_params_free(params); if (priv->token != NULL) {
--- a/libpurple/protocols/gg/avatar.c Tue Dec 14 01:57:01 2021 -0600 +++ b/libpurple/protocols/gg/avatar.c Tue Dec 14 01:58:31 2021 -0600 @@ -279,8 +279,9 @@ purple_debug_misc("gg", "ggp_avatar_own_got_token: " "uploading new avatar...\n"); - req = soup_form_request_new("POST", "http://avatars.nowe.gg/upload", "uin", - uin_str, "photo", img_data, NULL); + req = soup_message_new_from_encoded_form( + "POST", "http://avatars.nowe.gg/upload", + soup_form_encode("uin", uin_str, "photo", img_data, NULL)); // purple_http_request_set_max_len(req, GGP_AVATAR_RESPONSE_MAX); headers = soup_message_get_request_headers(req); soup_message_headers_replace(headers, "Authorization", token);
--- a/libpurple/soupcompat.h Tue Dec 14 01:57:01 2021 -0600 +++ b/libpurple/soupcompat.h Tue Dec 14 01:58:31 2021 -0600 @@ -51,6 +51,43 @@ return msg->status_code; } +static inline SoupMessage * +soup_message_new_from_encoded_form(const gchar *method, + const gchar *uri_string, + gchar *encoded_form) +{ + SoupMessage *msg = NULL; + SoupURI *uri; + + g_return_val_if_fail(method != NULL, NULL); + g_return_val_if_fail(uri_string != NULL, NULL); + g_return_val_if_fail(encoded_form != NULL, NULL); + + uri = soup_uri_new(uri_string); + if (!uri || !uri->host) { + g_free(encoded_form); + soup_uri_free(uri); + return NULL; + } + + if (strcmp(method, "GET") == 0) { + g_free(uri->query); + uri->query = encoded_form; + msg = soup_message_new_from_uri(method, uri); + } else if (strcmp (method, "POST") == 0 || strcmp (method, "PUT") == 0) { + msg = soup_message_new_from_uri(method, uri); + soup_message_body_append_take(msg->request_body, + (guchar *)encoded_form, + strlen(encoded_form)); + } else { + g_free(encoded_form); + } + + soup_uri_free(uri); + + return msg; +} + #endif /* SOUP_MAJOR_VERSION < 3 */ #endif /* PURPLE_SOUPCOMPAT_H */
--- a/pidgin/plugins/relnot.c Tue Dec 14 01:57:01 2021 -0600 +++ b/pidgin/plugins/relnot.c Tue Dec 14 01:58:31 2021 -0600 @@ -101,15 +101,16 @@ purple_debug_info("relnot", "Checking for new version."); - msg = soup_form_request_new("GET", "https://pidgin.im/version.php", - "version", purple_core_get_version(), - "build", + msg = soup_message_new_from_encoded_form("GET", "https://pidgin.im/version.php", + soup_form_encode( + "version", purple_core_get_version(), + "build", #ifdef _WIN32 - "purple-win32", + "purple-win32", #else - "purple", + "purple", #endif - NULL); + NULL)); soup_session_queue_message(session, msg, version_fetch_cb, NULL);