--- a/libpurple/protocols/facebook/api.c Sat Oct 12 22:49:37 2019 -0400
+++ b/libpurple/protocols/facebook/api.c Tue Oct 15 03:58:49 2019 +0000
@@ -20,6 +20,7 @@
#include <json-glib/json-glib.h>
+#include <libsoup/soup.h> @@ -31,8 +32,6 @@
-typedef struct _FbApiData FbApiData;
@@ -50,9 +49,8 @@
@@ -81,12 +79,6 @@
static void fb_api_error_literal(FbApi *api, FbApiError error,
@@ -178,24 +170,15 @@
fb_api_dispose(GObject *obj)
FbApiPrivate *priv = FB_API(obj)->priv;
- fb_http_conns_cancel_all(priv->cons);
- g_hash_table_iter_init(&iter, priv->data);
- while (g_hash_table_iter_next(&iter, NULL, (gpointer) &fata)) {
- fata->func(fata->data);
+ soup_session_abort(priv->cons); if (G_UNLIKELY(priv->mqtt != NULL)) {
g_object_unref(priv->mqtt);
- fb_http_conns_free(priv->cons);
- g_hash_table_destroy(priv->data);
+ g_object_unref(priv->cons); g_queue_free_full(priv->msgs, (GDestroyNotify) fb_api_message_free);
@@ -521,13 +504,9 @@
FbApiPrivate *priv = fb_api_get_instance_private(api);
- priv->cons = fb_http_conns_new();
priv->msgs = g_queue_new();
- priv->data = g_hash_table_new_full(g_direct_hash, g_direct_equal,
@@ -542,38 +521,6 @@
-fb_api_data_set(FbApi *api, gpointer handle, gpointer data,
- FbApiPrivate *priv = api->priv;
- fata = g_new0(FbApiData, 1);
- g_hash_table_replace(priv->data, handle, fata);
-fb_api_data_take(FbApi *api, gconstpointer handle)
- FbApiPrivate *priv = api->priv;
- fata = g_hash_table_lookup(priv->data, handle);
- g_hash_table_remove(priv->data, handle);
fb_api_json_chk(FbApi *api, gconstpointer data, gssize size, JsonNode **node)
@@ -686,36 +633,27 @@
-fb_api_http_chk(FbApi *api, PurpleHttpConnection *con, PurpleHttpResponse *res,
+fb_api_http_chk(FbApi *api, SoupMessage *res, JsonNode **root) - FbApiPrivate *priv = api->priv;
- if (fb_http_conns_is_canceled(priv->cons)) {
+ msg = res->reason_phrase; + code = res->status_code; + data = res->response_body->data; + size = res->response_body->length; + fb_util_debug(FB_UTIL_DEBUG_INFO, "HTTP Response (%p):", res); + fb_util_debug(FB_UTIL_DEBUG_INFO, " Response Error: %s (%d)", msg, + fb_util_debug(FB_UTIL_DEBUG_INFO, " Response Error: %d", code); - msg = purple_http_response_get_error(res);
- code = purple_http_response_get_code(res);
- data = purple_http_response_get_data(res, &size);
- fb_http_conns_remove(priv->cons, con);
- emsg = g_strdup_printf("%s (%d)", msg, code);
- emsg = g_strdup_printf("%d", code);
- fb_util_debug(FB_UTIL_DEBUG_INFO, "HTTP Response (%p):", con);
- fb_util_debug(FB_UTIL_DEBUG_INFO, " Response Error: %s", emsg);
if (G_LIKELY(size > 0)) {
fb_util_debug(FB_UTIL_DEBUG_INFO, " Response Data: %.*s",
@@ -742,10 +680,10 @@
-static PurpleHttpConnection *
fb_api_http_req(FbApi *api, const gchar *url, const gchar *name,
const gchar *method, FbHttpParams *params,
- PurpleHttpCallback callback)
+ SoupSessionCallback callback) FbApiPrivate *priv = api->priv;
@@ -754,8 +692,7 @@
- PurpleHttpConnection *ret;
- PurpleHttpRequest *req;
fb_http_params_set_str(params, "api_key", FB_API_KEY);
fb_http_params_set_str(params, "device_id", priv->did);
@@ -767,10 +704,6 @@
fb_http_params_set_str(params, "locale", val);
- req = purple_http_request_new(url);
- purple_http_request_set_max_len(req, -1);
- purple_http_request_set_method(req, "POST");
/* Ensure an old signature is not computed */
g_hash_table_remove(params, "sig");
@@ -792,32 +725,28 @@
+ msg = soup_form_request_new_from_hash("POST", url, params); + fb_http_params_free(params); if (priv->token != NULL) {
data = g_strdup_printf("OAuth %s", priv->token);
- purple_http_request_header_set(req, "Authorization", data);
+ soup_message_headers_replace(msg->request_headers, "Authorization", - purple_http_request_header_set(req, "User-Agent", FB_API_AGENT);
- purple_http_request_header_set(req, "Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
- data = fb_http_params_close(params, NULL);
- purple_http_request_set_contents(req, data, -1);
- ret = purple_http_request(priv->gc, req, callback, api);
- fb_http_conns_add(priv->cons, ret);
- purple_http_request_unref(req);
- fb_util_debug(FB_UTIL_DEBUG_INFO, "HTTP Request (%p):", ret);
+ soup_session_queue_message(priv->cons, msg, callback, api); + fb_util_debug(FB_UTIL_DEBUG_INFO, "HTTP Request (%p):", msg); fb_util_debug(FB_UTIL_DEBUG_INFO, " Request URL: %s", url);
fb_util_debug(FB_UTIL_DEBUG_INFO, " Request Data: %s", data);
-static PurpleHttpConnection *
fb_api_http_query(FbApi *api, gint64 query, JsonBuilder *builder,
- PurpleHttpCallback hcb)
+ SoupSessionCallback hcb) @@ -865,19 +794,16 @@
-fb_api_cb_http_bool(PurpleHttpConnection *con, PurpleHttpResponse *res,
+fb_api_cb_http_bool(G_GNUC_UNUSED SoupSession *session, SoupMessage *res,
- if (!fb_api_http_chk(api, con, res, NULL)) {
+ if (!fb_api_http_chk(api, res, NULL)) { - hata = purple_http_response_get_data(res, NULL);
- if (!purple_strequal(hata, "true")) {
+ if (!purple_strequal(res->response_body->data, "true")) { fb_api_error_literal(api, FB_API_ERROR,
_("Failed generic API operation"));
@@ -1057,7 +983,7 @@
-fb_api_cb_seqid(PurpleHttpConnection *con, PurpleHttpResponse *res,
+fb_api_cb_seqid(G_GNUC_UNUSED SoupSession *session, SoupMessage *res, @@ -1067,7 +993,7 @@
- if (!fb_api_http_chk(api, con, res, &root)) {
+ if (!fb_api_http_chk(api, res, &root)) { @@ -1962,7 +1888,7 @@
-fb_api_new(PurpleConnection *gc)
+fb_api_new(PurpleConnection *gc, GProxyResolver *resolver) @@ -1971,6 +1897,9 @@
+ priv->cons = soup_session_new_with_options( + SOUP_SESSION_PROXY_RESOLVER, resolver, SOUP_SESSION_USER_AGENT, priv->mqtt = fb_mqtt_new(gc);
g_signal_connect(priv->mqtt,
@@ -2068,7 +1997,7 @@
-fb_api_cb_attach(PurpleHttpConnection *con, PurpleHttpResponse *res,
+fb_api_cb_attach(G_GNUC_UNUSED SoupSession *session, SoupMessage *res, @@ -2083,7 +2012,7 @@
static const gchar *imgexts[] = {".jpg", ".png", ".gif"};
- if (!fb_api_http_chk(api, con, res, &root)) {
+ if (!fb_api_http_chk(api, res, &root)) { @@ -2098,7 +2027,7 @@
- msg = fb_api_data_take(api, con);
+ msg = g_object_steal_data(G_OBJECT(res), "fb-api-msg"); str = fb_json_values_next_str(values, NULL);
name = g_ascii_strdown(str, -1);
@@ -2124,7 +2053,7 @@
fb_api_attach(FbApi *api, FbId aid, const gchar *msgid, FbApiMessage *msg)
- PurpleHttpConnection *http;
prms = fb_http_params_new();
fb_http_params_set_str(prms, "mid", msgid);
@@ -2133,11 +2062,12 @@
http = fb_api_http_req(api, FB_API_URL_ATTACH, "getAttachment",
"messaging.getAttachment", prms,
- fb_api_data_set(api, http, msg, (GDestroyNotify) fb_api_message_free);
+ g_object_set_data_full(G_OBJECT(http), "fb-api-msg", msg, + (GDestroyNotify)fb_api_message_free); -fb_api_cb_auth(PurpleHttpConnection *con, PurpleHttpResponse *res,
+fb_api_cb_auth(G_GNUC_UNUSED SoupSession *session, SoupMessage *res, @@ -2146,7 +2076,7 @@
- if (!fb_api_http_chk(api, con, res, &root)) {
+ if (!fb_api_http_chk(api, res, &root)) { @@ -2205,7 +2135,7 @@
-fb_api_cb_contact(PurpleHttpConnection *con, PurpleHttpResponse *res,
+fb_api_cb_contact(G_GNUC_UNUSED SoupSession *session, SoupMessage *res, @@ -2216,7 +2146,7 @@
- if (!fb_api_http_chk(api, con, res, &root)) {
+ if (!fb_api_http_chk(api, res, &root)) { @@ -2358,7 +2288,7 @@
-fb_api_cb_contacts(PurpleHttpConnection *con, PurpleHttpResponse *res,
+fb_api_cb_contacts(G_GNUC_UNUSED SoupSession *session, SoupMessage *res, @@ -2375,7 +2305,7 @@
- if (!fb_api_http_chk(api, con, res, &root)) {
+ if (!fb_api_http_chk(api, res, &root)) { @@ -2686,7 +2616,7 @@
-fb_api_cb_unread_msgs(PurpleHttpConnection *con, PurpleHttpResponse *res,
+fb_api_cb_unread_msgs(G_GNUC_UNUSED SoupSession *session, SoupMessage *res, @@ -2704,7 +2634,7 @@
- if (!fb_api_http_chk(api, con, res, &root)) {
+ if (!fb_api_http_chk(api, res, &root)) { @@ -2818,7 +2748,7 @@
-fb_api_cb_unread(PurpleHttpConnection *con, PurpleHttpResponse *res,
+fb_api_cb_unread(G_GNUC_UNUSED SoupSession *session, SoupMessage *res, @@ -2829,7 +2759,7 @@
- if (!fb_api_http_chk(api, con, res, &root)) {
+ if (!fb_api_http_chk(api, res, &root)) { @@ -2899,7 +2829,7 @@
-fb_api_cb_sticker(PurpleHttpConnection *con, PurpleHttpResponse *res,
+fb_api_cb_sticker(G_GNUC_UNUSED SoupSession *session, SoupMessage *res, @@ -2910,7 +2840,7 @@
- if (!fb_api_http_chk(api, con, res, &root)) {
+ if (!fb_api_http_chk(api, res, &root)) { @@ -2926,7 +2856,7 @@
- msg = fb_api_data_take(api, con);
+ msg = g_object_steal_data(G_OBJECT(res), "fb-api-msg"); msg->flags |= FB_API_MESSAGE_FLAG_IMAGE;
msg->text = fb_json_values_next_str_dup(values, NULL);
msgs = g_slist_prepend(msgs, msg);
@@ -2941,7 +2871,7 @@
fb_api_sticker(FbApi *api, FbId sid, FbApiMessage *msg)
- PurpleHttpConnection *http;
bldr = fb_json_bldr_new(JSON_NODE_OBJECT);
fb_json_bldr_arr_begin(bldr, "0");
@@ -2950,7 +2880,8 @@
http = fb_api_http_query(api, FB_API_QUERY_STICKER, bldr,
- fb_api_data_set(api, http, msg, (GDestroyNotify) fb_api_message_free);
+ g_object_set_data_full(G_OBJECT(http), "fb-api-msg", msg, + (GDestroyNotify)fb_api_message_free); @@ -3028,8 +2959,8 @@
-fb_api_cb_thread(PurpleHttpConnection *con, PurpleHttpResponse *res,
+fb_api_cb_thread(G_GNUC_UNUSED SoupSession *session, SoupMessage *res, @@ -3037,7 +2968,7 @@
- if (!fb_api_http_chk(api, con, res, &root)) {
+ if (!fb_api_http_chk(api, res, &root)) { @@ -3088,7 +3019,7 @@
-fb_api_cb_thread_create(PurpleHttpConnection *con, PurpleHttpResponse *res,
+fb_api_cb_thread_create(G_GNUC_UNUSED SoupSession *session, SoupMessage *res, @@ -3098,7 +3029,7 @@
- if (!fb_api_http_chk(api, con, res, &root)) {
+ if (!fb_api_http_chk(api, res, &root)) { @@ -3222,7 +3153,7 @@
-fb_api_cb_threads(PurpleHttpConnection *con, PurpleHttpResponse *res,
+fb_api_cb_threads(G_GNUC_UNUSED SoupSession *session, SoupMessage *res, @@ -3235,7 +3166,7 @@
- if (!fb_api_http_chk(api, con, res, &root)) {
+ if (!fb_api_http_chk(api, res, &root)) { --- a/libpurple/protocols/facebook/data.c Sat Oct 12 22:49:37 2019 -0400
+++ b/libpurple/protocols/facebook/data.c Tue Oct 15 03:58:49 2019 +0000
@@ -19,6 +19,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
+#include <libsoup/soup.h> @@ -30,7 +31,7 @@
PurpleRoomlist *roomlist;
@@ -91,7 +92,7 @@
- fb_http_conns_cancel_all(priv->cons);
+ soup_session_abort(priv->cons); g_hash_table_iter_init(&iter, priv->evs);
while (g_hash_table_iter_next(&iter, NULL, &ptr)) {
@@ -102,7 +103,7 @@
g_object_unref(priv->api);
- fb_http_conns_free(priv->cons);
+ g_object_unref(priv->cons); g_queue_free_full(priv->msgs, (GDestroyNotify) fb_api_message_free);
g_hash_table_destroy(priv->imgs);
@@ -124,7 +125,6 @@
FbDataPrivate *priv = fb_data_get_instance_private(fata);
- priv->cons = fb_http_conns_new();
priv->msgs = g_queue_new();
priv->imgs = g_hash_table_new_full(g_direct_hash, g_direct_equal,
@@ -166,7 +166,7 @@
-fb_data_new(PurpleConnection *gc)
+fb_data_new(PurpleConnection *gc, GProxyResolver *resolver) @@ -174,7 +174,9 @@
fata = g_object_new(FB_TYPE_DATA, NULL);
- priv->api = fb_api_new(gc);
+ priv->cons = soup_session_new_with_options(SOUP_SESSION_PROXY_RESOLVER, + priv->api = fb_api_new(gc, resolver); @@ -553,22 +555,17 @@
-fb_data_image_cb(PurpleHttpConnection *con, PurpleHttpResponse *res,
+fb_data_image_cb(G_GNUC_UNUSED SoupSession *session, SoupMessage *res, FbDataImagePrivate *priv = img->priv;
- FbDataPrivate *driv = priv->fata->priv;
- if (fb_http_conns_is_canceled(driv->cons)) {
- fb_http_conns_remove(driv->cons, con);
fb_http_error_chk(res, &err);
- priv->image = (guint8 *) purple_http_response_get_data(res, &priv->size);
+ priv->image = (guint8 *)res->response_body->data; + priv->size = res->response_body->length; if (G_LIKELY(err == NULL)) {
@@ -588,7 +585,6 @@
- PurpleHttpConnection *con;
g_return_if_fail(FB_IS_DATA(fata));
@@ -607,7 +603,7 @@
g_hash_table_iter_init(&iter, priv->imgs);
while (g_hash_table_iter_next(&iter, (gpointer *) &img, NULL)) {
- PurpleHttpRequest *req;
if (fb_data_image_get_active(img)) {
@@ -616,12 +612,9 @@
img->priv->active = TRUE;
url = fb_data_image_get_url(img);
- req = purple_http_request_new(url);
- purple_http_request_set_max_len(req, FB_DATA_ICON_SIZE_MAX);
- con = purple_http_request(priv->gc, req,
- fb_data_image_cb, img);
- fb_http_conns_add(priv->cons, con);
- purple_http_request_unref(req);
+ msg = soup_message_new("GET", url); + // purple_http_request_set_max_len(req, FB_DATA_ICON_SIZE_MAX); + soup_session_queue_message(priv->cons, msg, fb_data_image_cb, img); if (++active >= FB_DATA_ICON_MAX) {
--- a/libpurple/protocols/facebook/http.c Sat Oct 12 22:49:37 2019 -0400
+++ b/libpurple/protocols/facebook/http.c Tue Oct 15 03:58:49 2019 +0000
@@ -25,12 +25,6 @@
fb_http_error_quark(void)
@@ -43,87 +37,15 @@
- cons = g_new0(FbHttpConns, 1);
- cons->cons = g_hash_table_new(g_direct_hash, g_direct_equal);
-fb_http_conns_free(FbHttpConns *cons)
- g_return_if_fail(cons != NULL);
- g_hash_table_destroy(cons->cons);
-fb_http_conns_cancel_all(FbHttpConns *cons)
+fb_http_error_chk(SoupMessage *res, GError **error)
- g_return_if_fail(cons != NULL);
- g_return_if_fail(!cons->canceled);
- g_hash_table_iter_init(&iter, cons->cons);
- while (g_hash_table_iter_next(&iter, &con, NULL)) {
- g_hash_table_iter_remove(&iter);
- purple_http_conn_cancel(con);
-fb_http_conns_is_canceled(FbHttpConns *cons)
- g_return_val_if_fail(cons != NULL, TRUE);
-fb_http_conns_add(FbHttpConns *cons, PurpleHttpConnection *con)
- g_return_if_fail(cons != NULL);
- g_return_if_fail(!cons->canceled);
- g_hash_table_replace(cons->cons, con, con);
-fb_http_conns_remove(FbHttpConns *cons, PurpleHttpConnection *con)
- g_return_if_fail(cons != NULL);
- g_return_if_fail(!cons->canceled);
- g_hash_table_remove(cons->cons, con);
-fb_http_conns_reset(FbHttpConns *cons)
- g_return_if_fail(cons != NULL);
- cons->canceled = FALSE;
- g_hash_table_remove_all(cons->cons);
-fb_http_error_chk(PurpleHttpResponse *res, GError **error)
- if (purple_http_response_is_successful(res)) {
+ if (SOUP_STATUS_IS_SUCCESSFUL(res->status_code)) { - msg = purple_http_response_get_error(res);
- code = purple_http_response_get_code(res);
- g_set_error(error, FB_HTTP_ERROR, code, "%s", msg);
+ g_set_error(error, FB_HTTP_ERROR, res->status_code, "%s", @@ -136,56 +58,29 @@
fb_http_params_new_parse(const gchar *data, gboolean isurl)
- params = fb_http_params_new();
+ return fb_http_params_new(); - data = strchr(data, '?');
+ uri = soup_uri_new(data);
+ return fb_http_params_new(); - tail = strchr(++data, '#');
- data = g_strndup(data, tail - data);
- ps = g_strsplit(data, "&", 0);
- for (i = 0; ps[i] != NULL; i++) {
- val = strchr(ps[i], '=');
+ params = soup_form_decode(data);
- key = g_uri_unescape_string(key, NULL);
- val = g_uri_unescape_string(val, NULL);
- g_hash_table_replace(params, key, val);
- g_free((gchar *) data);
@@ -195,41 +90,6 @@
g_hash_table_destroy(params);
-fb_http_params_close(FbHttpParams *params, const gchar *url)
- g_hash_table_iter_init(&iter, params);
- ret = g_string_new(NULL);
- while (g_hash_table_iter_next(&iter, &key, &val)) {
- g_hash_table_iter_remove(&iter);
- g_string_append_c(ret, '&');
- g_string_append_uri_escaped(ret, key, NULL, TRUE);
- g_string_append_c(ret, '=');
- g_string_append_uri_escaped(ret, val, NULL, TRUE);
- g_string_prepend_c(ret, '?');
- g_string_prepend(ret, url);
- fb_http_params_free(params);
- return g_string_free(ret, FALSE);
fb_http_params_get(FbHttpParams *params, const gchar *name, GError **error)
@@ -372,25 +232,9 @@
fb_http_urlcmp(const gchar *url1, const gchar *url2, gboolean protocol)
- static const gchar * (*funcs[]) (const PurpleHttpURL *url) = {
- /* Always first so it can be skipped */
- purple_http_url_get_protocol,
- purple_http_url_get_fragment,
- purple_http_url_get_host,
- purple_http_url_get_password,
- purple_http_url_get_path,
- purple_http_url_get_username
if ((url1 == NULL) || (url2 == NULL)) {
@@ -400,39 +244,28 @@
- purl1 = purple_http_url_parse(url1);
+ uri1 = soup_uri_new(url1);
return g_ascii_strcasecmp(url1, url2) == 0;
- purl2 = purple_http_url_parse(url2);
+ uri2 = soup_uri_new(url2);
- purple_http_url_free(purl1);
return g_ascii_strcasecmp(url1, url2) == 0;
- for (i = protocol ? 0 : 1; i < G_N_ELEMENTS(funcs); i++) {
- str1 = funcs[i](purl1);
- str2 = funcs[i](purl2);
- if (!purple_strequal(str1, str2)) {
+ /* Force the same scheme (and same port). */ + soup_uri_set_scheme(uri1, SOUP_URI_SCHEME_HTTPS); + soup_uri_set_scheme(uri2, SOUP_URI_SCHEME_HTTPS);
- int1 = purple_http_url_get_port(purl1);
- int2 = purple_http_url_get_port(purl2);
+ ret = soup_uri_equal(uri1, uri2);
- purple_http_url_free(purl1);
- purple_http_url_free(purl2);
--- a/libpurple/protocols/facebook/http.h Sat Oct 12 22:49:37 2019 -0400
+++ b/libpurple/protocols/facebook/http.h Tue Oct 15 03:58:49 2019 +0000
@@ -32,6 +32,7 @@
+#include <libsoup/soup.h> #include <libpurple/http.h>
@@ -43,13 +44,6 @@
#define FB_HTTP_ERROR fb_http_error_quark()
- * Represents a set of #PurpleHttpConnection.
-typedef struct _FbHttpConns FbHttpConns;
* Represents a set of key/value HTTP parameters.
@@ -80,89 +74,16 @@
fb_http_error_quark(void);
- * Creates a new #FbHttpConns. The returned #FbHttpConns should be
- * freed with #fb_http_conns_free() when no longer needed.
- * Returns: The new #FbHttpConns.
-fb_http_conns_new(void);
- * @cons: The #FbHttpConns.
- * Frees all memory used by the #FbHttpConns. This will *not* cancel
- * the any of the added #PurpleHttpConnection.
-fb_http_conns_free(FbHttpConns *cons);
- * fb_http_conns_cancel_all:
- * @cons: The #FbHttpConns.
- * Cancels each #PurpleHttpConnection in the #FbHttpConns.
-fb_http_conns_cancel_all(FbHttpConns *cons);
- * fb_http_conns_is_canceled:
- * @cons: The #FbHttpConns.
- * Determines if the #FbHttpConns has been canceled.
- * Returns: #TRUE if it has been canceled, otherwise #FALSE.
-fb_http_conns_is_canceled(FbHttpConns *cons);
- * @cons: The #FbHttpConns.
- * @con: The #PurpleHttpConnection.
- * Adds a #PurpleHttpConnection to the #FbHttpConns.
-fb_http_conns_add(FbHttpConns *cons, PurpleHttpConnection *con);
- * fb_http_conns_remove:
- * @cons: The #FbHttpConns.
- * @con: The #PurpleHttpConnection.
- * Removes a #PurpleHttpConnection from the #FbHttpConns.
-fb_http_conns_remove(FbHttpConns *cons, PurpleHttpConnection *con);
- * @cons: The #FbHttpConns.
- * Resets the #FbHttpConns. This removes each #PurpleHttpConnection
- * from the #FbHttpConns *without* canceling it. This allows the the
- * #FbHttpConns to be reused.
-fb_http_conns_reset(FbHttpConns *cons);
- * @res: The #PurpleHttpResponse.
+ * @res: The #SoupMessage. * @error: The return location for the #GError or #NULL.
- * Checks a #PurpleHttpResponse for success. This optionally assigns an
+ * Checks a #SoupMessage for success. This optionally assigns an * appropriate #GError upon failure.
* Returns: #TRUE if the request was successful, otherwise #FALSE.
-fb_http_error_chk(PurpleHttpResponse *res, GError **error);
+gboolean fb_http_error_chk(SoupMessage *res, GError **error); @@ -203,21 +124,6 @@
fb_http_params_free(FbHttpParams *params);
- * fb_http_params_close:
- * @params: The #FbHttpParams.
- * @url: The URL or #NULL.
- * Closes the #FbHttpParams by returning a string representing the HTTP
- * parameters. If @url is non-#NULL, then the parameters are appended
- * to the value of @url. This frees the #FbHttpParams. The returned
- * string should be freed with #g_free() when no longer needed.
- * Returns: The string representation of the HTTP parameters.
-fb_http_params_close(FbHttpParams *params, const gchar *url);
* fb_http_params_get_bool:
* @params: The #FbHttpParams.
* @name: The parameter name.