pidgin/pidgin

9f6a2c90800e
Parents 13fdc1beaf35
Children 43f994f7f9f2
Convert soup_message_set_request to soup_message_set_request_body_from_bytes

This does invoke an extra copy in the libsoup2.4 compatibility function, but that'll go away when we require libsoup3.

Testing Done:
Compile only.

Reviewed at https://reviews.imfreedom.org/r/1790/
--- a/libpurple/protocols/gg/edisc.c Sun Sep 18 22:30:19 2022 -0500
+++ b/libpurple/protocols/gg/edisc.c Sun Sep 18 22:34:12 2022 -0500
@@ -517,6 +517,7 @@
PurpleXfer *xfer = _xfer;
GGPXfer *edisc_xfer = GGP_XFER(xfer);
gchar *data;
+ GBytes *body = NULL;
if (purple_xfer_is_cancelled(xfer)) {
return;
@@ -544,9 +545,11 @@
purple_xfer_get_remote_user(xfer),
edisc_xfer->filename,
(int)purple_xfer_get_size(xfer));
- soup_message_set_request(msg,
- "application/x-www-form-urlencoded; charset=UTF-8",
- SOUP_MEMORY_TAKE, data, -1);
+ body = g_bytes_new_take(data, strlen(data));
+ soup_message_set_request_body_from_bytes(msg,
+ "application/x-www-form-urlencoded; charset=UTF-8",
+ body);
+ g_bytes_unref(body);
soup_session_queue_message(sdata->session, msg,
ggp_edisc_xfer_send_init_ticket_created, xfer);
--- a/libpurple/protocols/gg/oauth/oauth-purple.c Sun Sep 18 22:30:19 2022 -0500
+++ b/libpurple/protocols/gg/oauth/oauth-purple.c Sun Sep 18 22:34:12 2022 -0500
@@ -162,6 +162,7 @@
PurpleAccount *account;
PurpleXmlNode *xml;
gchar *request_data;
+ GBytes *body = NULL;
gboolean succ = TRUE;
PURPLE_ASSERT_CONNECTION_IS_VALID(data->gc);
@@ -208,8 +209,11 @@
// purple_http_request_set_max_len(msg, GGP_OAUTH_RESPONSE_MAX);
/* we don't need any results, nor 302 redirection */
soup_message_set_flags(msg, SOUP_MESSAGE_NO_REDIRECT);
- soup_message_set_request(msg, "application/x-www-form-urlencoded",
- SOUP_MEMORY_TAKE, request_data, -1);
+ body = g_bytes_new_take(request_data, strlen(request_data));
+ soup_message_set_request_body_from_bytes(msg,
+ "application/x-www-form-urlencoded",
+ body);
+ g_bytes_unref(body);
soup_session_queue_message(session, msg, ggp_oauth_authorization_done,
data);
}
--- a/libpurple/protocols/gg/pubdir-prpl.c Sun Sep 18 22:30:19 2022 -0500
+++ b/libpurple/protocols/gg/pubdir-prpl.c Sun Sep 18 22:34:12 2022 -0500
@@ -785,6 +785,7 @@
ggp_pubdir_record *record = _record;
GGPInfo *info = NULL;
SoupMessage *msg;
+ GBytes *body = NULL;
gchar *url;
gchar *request_data;
gchar *name, *surname, *city;
@@ -835,8 +836,11 @@
msg = soup_message_new("PUT", url);
soup_message_headers_replace(soup_message_get_request_headers(msg),
"Authorization", token);
- soup_message_set_request(msg, "application/x-www-form-urlencoded",
- SOUP_MEMORY_TAKE, request_data, -1);
+ body = g_bytes_new_take(request_data, strlen(request_data));
+ soup_message_set_request_body_from_bytes(msg,
+ "application/x-www-form-urlencoded",
+ body);
+ g_bytes_unref(body);
soup_session_queue_message(info->http, msg,
ggp_pubdir_set_info_got_response, NULL);
--- a/libpurple/protocols/jabber/bosh.c Sun Sep 18 22:30:19 2022 -0500
+++ b/libpurple/protocols/jabber/bosh.c Sun Sep 18 22:34:12 2022 -0500
@@ -493,12 +493,15 @@
const GString *data)
{
SoupMessage *req;
+ GBytes *body = NULL;
jabber_stream_restart_inactivity_timer(conn->js);
req = soup_message_new("POST", conn->url);
- soup_message_set_request(req, "text/xml; charset=utf-8", SOUP_MEMORY_TAKE,
- data->str, data->len);
+ body = g_bytes_new_take(data->str, data->len);
+ soup_message_set_request_body_from_bytes(req, "text/xml; charset=utf-8",
+ body);
+ g_bytes_unref(body);
return req;
}
--- a/libpurple/soupcompat.h Sun Sep 18 22:30:19 2022 -0500
+++ b/libpurple/soupcompat.h Sun Sep 18 22:34:12 2022 -0500
@@ -88,6 +88,19 @@
return msg;
}
+static inline void
+soup_message_set_request_body_from_bytes(SoupMessage *msg,
+ const gchar *content_type,
+ GBytes *bytes)
+{
+ gconstpointer data = NULL;
+ gsize length = 0;
+
+ data = g_bytes_get_data(bytes, &length);
+ soup_message_set_request(msg, content_type, SOUP_MEMORY_COPY,
+ data, length);
+}
+
#endif /* SOUP_MAJOR_VERSION < 3 */
#endif /* PURPLE_SOUPCOMPAT_H */