about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2016-05-04 01:19:51 +0100
committerJames Booth <boothj5@gmail.com>2016-05-04 01:19:51 +0100
commitccabc08fef90b568ec08a9cf139ff225b28808d1 (patch)
treef5945c76e944e5aa848f80db7ac238fac356807b
parent2e1eb9210a2ed1d543a63dae442d4bd52f547841 (diff)
downloadprofani-tty-ccabc08fef90b568ec08a9cf139ff225b28808d1.tar.gz
Tidy xmpp headers
-rw-r--r--src/command/command.c2
-rw-r--r--src/command/command.h1
-rw-r--r--src/command/commands.c1
-rw-r--r--src/config/scripts.c1
-rw-r--r--src/plugins/plugins.c1
-rw-r--r--src/ui/console.c1
-rw-r--r--src/window_list.c1
-rw-r--r--src/xmpp/blocking.c7
-rw-r--r--src/xmpp/bookmark.c5
-rw-r--r--src/xmpp/bookmark.h9
-rw-r--r--src/xmpp/connection.c18
-rw-r--r--src/xmpp/connection.h9
-rw-r--r--src/xmpp/form.h3
-rw-r--r--src/xmpp/iq.c76
-rw-r--r--src/xmpp/iq.h10
-rw-r--r--src/xmpp/presence.c3
-rw-r--r--src/xmpp/roster.c13
-rw-r--r--src/xmpp/roster.h3
-rw-r--r--src/xmpp/stanza.c29
-rw-r--r--src/xmpp/stanza.h4
-rw-r--r--src/xmpp/xmpp.h30
-rw-r--r--tests/unittests/test_cmd_otr.c1
22 files changed, 86 insertions, 142 deletions
diff --git a/src/command/command.c b/src/command/command.c
index ac23fbce..3f9a18cc 100644
--- a/src/command/command.c
+++ b/src/command/command.c
@@ -61,7 +61,6 @@
 #include "contact.h"
 #include "roster_list.h"
 #include "jid.h"
-#include "xmpp/form.h"
 #include "log.h"
 #include "muc.h"
 #include "plugins/plugins.h"
@@ -76,7 +75,6 @@
 #include "tools/parser.h"
 #include "tools/tinyurl.h"
 #include "xmpp/xmpp.h"
-#include "xmpp/bookmark.h"
 #include "ui/ui.h"
 #include "window_list.h"
 
diff --git a/src/command/command.h b/src/command/command.h
index 656e2221..34beee86 100644
--- a/src/command/command.h
+++ b/src/command/command.h
@@ -37,7 +37,6 @@
 
 #include <glib.h>
 
-#include "xmpp/form.h"
 #include "ui/ui.h"
 
 GHashTable *commands;
diff --git a/src/command/commands.c b/src/command/commands.c
index c83bf908..ada01d3f 100644
--- a/src/command/commands.c
+++ b/src/command/commands.c
@@ -76,7 +76,6 @@
 #include "tools/parser.h"
 #include "tools/tinyurl.h"
 #include "xmpp/xmpp.h"
-#include "xmpp/bookmark.h"
 #include "ui/ui.h"
 #include "window_list.h"
 #include "event/client_events.h"
diff --git a/src/config/scripts.c b/src/config/scripts.c
index 2a667545..ef203fcb 100644
--- a/src/config/scripts.c
+++ b/src/config/scripts.c
@@ -45,6 +45,7 @@
 #include "window_list.h"
 #include "command/command.h"
 #include "ui/ui.h"
+#include "xmpp/xmpp.h"
 
 void
 scripts_init(void)
diff --git a/src/plugins/plugins.c b/src/plugins/plugins.c
index 6cde92ad..bb8e7563 100644
--- a/src/plugins/plugins.c
+++ b/src/plugins/plugins.c
@@ -39,6 +39,7 @@
 #include "common.h"
 #include "config/preferences.h"
 #include "log.h"
+#include "xmpp/xmpp.h"
 #include "plugins/callbacks.h"
 #include "plugins/autocompleters.h"
 #include "plugins/api.h"
diff --git a/src/ui/console.c b/src/ui/console.c
index 43cad63d..9d21f2d7 100644
--- a/src/ui/console.c
+++ b/src/ui/console.c
@@ -55,7 +55,6 @@
 #include "ui/ui.h"
 #include "ui/statusbar.h"
 #include "xmpp/xmpp.h"
-#include "xmpp/bookmark.h"
 
 #ifdef HAVE_GIT_VERSION
 #include "gitversion.h"
diff --git a/src/window_list.c b/src/window_list.c
index 6b9f2411..73fb37e8 100644
--- a/src/window_list.c
+++ b/src/window_list.c
@@ -47,6 +47,7 @@
 #include "ui/statusbar.h"
 #include "window_list.h"
 #include "plugins/plugins.h"
+#include "xmpp/xmpp.h"
 
 
 static GHashTable *windows;
diff --git a/src/xmpp/blocking.c b/src/xmpp/blocking.c
index 206e188d..c78f5452 100644
--- a/src/xmpp/blocking.c
+++ b/src/xmpp/blocking.c
@@ -48,6 +48,7 @@
 #include "ui/ui.h"
 #include "xmpp/connection.h"
 #include "xmpp/stanza.h"
+#include "xmpp/iq.h"
 
 static int _blocklist_result_handler(xmpp_stanza_t *const stanza, void *const userdata);
 static int _block_add_result_handler(xmpp_stanza_t *const stanza, void *const userdata);
@@ -77,7 +78,7 @@ blocking_request(void)
 
     iq = stanza_create_blocked_list_request(ctx);
     xmpp_stanza_set_id(iq, id);
-    send_iq_stanza(iq);
+    iq_send_stanza(iq);
     xmpp_stanza_release(iq);
     free(id);
 }
@@ -134,7 +135,7 @@ blocked_add(char *jid)
 
     iq_id_handler_add(id, _block_add_result_handler, strdup(jid));
 
-    send_iq_stanza(iq);
+    iq_send_stanza(iq);
     xmpp_stanza_release(iq);
     free(id);
 
@@ -173,7 +174,7 @@ blocked_remove(char *jid)
 
     iq_id_handler_add(id, _block_remove_result_handler, strdup(jid));
 
-    send_iq_stanza(iq);
+    iq_send_stanza(iq);
     xmpp_stanza_release(iq);
     free(id);
 
diff --git a/src/xmpp/bookmark.c b/src/xmpp/bookmark.c
index f76685e9..c4b0e4f1 100644
--- a/src/xmpp/bookmark.c
+++ b/src/xmpp/bookmark.c
@@ -52,6 +52,7 @@
 #include "muc.h"
 #include "event/server_events.h"
 #include "xmpp/connection.h"
+#include "xmpp/iq.h"
 #include "xmpp/stanza.h"
 #include "xmpp/xmpp.h"
 #include "xmpp/bookmark.h"
@@ -90,7 +91,7 @@ bookmark_request(void)
 
     iq = stanza_create_bookmarks_storage_request(ctx);
     xmpp_stanza_set_id(iq, id);
-    send_iq_stanza(iq);
+    iq_send_stanza(iq);
     xmpp_stanza_release(iq);
 }
 
@@ -454,6 +455,6 @@ _send_bookmarks(void)
     xmpp_stanza_release(storage);
     xmpp_stanza_release(query);
 
-    send_iq_stanza(iq);
+    iq_send_stanza(iq);
     xmpp_stanza_release(iq);
 }
diff --git a/src/xmpp/bookmark.h b/src/xmpp/bookmark.h
index ca6e75b8..4895c706 100644
--- a/src/xmpp/bookmark.h
+++ b/src/xmpp/bookmark.h
@@ -37,15 +37,6 @@
 
 #include <glib.h>
 
-struct bookmark_t {
-    char *jid;
-    char *nick;
-    char *password;
-    gboolean autojoin;
-};
-
-typedef struct bookmark_t Bookmark;
-
 void bookmark_request(void);
 
 #endif
diff --git a/src/xmpp/connection.c b/src/xmpp/connection.c
index 45c0b318..f76fdc14 100644
--- a/src/xmpp/connection.c
+++ b/src/xmpp/connection.c
@@ -218,7 +218,7 @@ jabber_connect_with_details(const char *const jid, const char *const passwd, con
 }
 
 void
-jabber_autoping_fail(void)
+connection_autoping_fail(void)
 {
     if (jabber_conn.conn_status == JABBER_CONNECTED) {
         log_info("Closing connection");
@@ -332,14 +332,8 @@ jabber_get_connection_status(void)
     return (jabber_conn.conn_status);
 }
 
-void
-jabber_set_connection_status(jabber_conn_status_t status)
-{
-    jabber_conn.conn_status = status;
-}
-
 GSList*
-jabber_get_disco_items(void)
+connection_get_disco_items(void)
 {
     return (disco_items);
 }
@@ -360,7 +354,7 @@ jabber_service_supports(const char *const feature)
 }
 
 void
-jabber_set_disco_items(GSList *_disco_items)
+connection_set_disco_items(GSList *_disco_items)
 {
     disco_items = _disco_items;
 }
@@ -383,12 +377,6 @@ jabber_get_fulljid(void)
     return xmpp_conn_get_jid(jabber_conn.conn);
 }
 
-const char*
-jabber_get_domain(void)
-{
-    return jabber_conn.domain;
-}
-
 char*
 jabber_get_presence_message(void)
 {
diff --git a/src/xmpp/connection.h b/src/xmpp/connection.h
index 8a66a56b..f964aca3 100644
--- a/src/xmpp/connection.h
+++ b/src/xmpp/connection.h
@@ -54,11 +54,8 @@ void connection_set_priority(int priority);
 void connection_set_presence_message(const char *const message);
 void connection_add_available_resource(Resource *resource);
 void connection_remove_available_resource(const char *const resource);
-
-void send_iq_stanza(xmpp_stanza_t *const stanza);
-
-void roster_set_handler(xmpp_stanza_t *const stanza);
-void roster_result_handler(xmpp_stanza_t *const stanza);
-void iq_id_handler_add(const char *const id, ProfIdCallback func, void *userdata);
+void connection_autoping_fail(void);
+GSList* connection_get_disco_items(void);
+void connection_set_disco_items(GSList *disco_items);
 
 #endif
diff --git a/src/xmpp/form.h b/src/xmpp/form.h
index 8d0dac02..dc2ab38d 100644
--- a/src/xmpp/form.h
+++ b/src/xmpp/form.h
@@ -46,5 +46,8 @@
 
 DataForm* form_create(xmpp_stanza_t *const stanza);
 xmpp_stanza_t* form_create_submission(DataForm *form);
+char* form_get_form_type_field(DataForm *form);
+GSList* form_get_non_form_type_fields_sorted(DataForm *form);
+GSList* form_get_field_values_sorted(FormField *field);
 
 #endif
diff --git a/src/xmpp/iq.c b/src/xmpp/iq.c
index fa3d90c4..d000defd 100644
--- a/src/xmpp/iq.c
+++ b/src/xmpp/iq.c
@@ -64,6 +64,8 @@
 #include "xmpp/form.h"
 #include "roster_list.h"
 #include "xmpp/xmpp.h"
+#include "xmpp/iq.h"
+#include "xmpp/roster.h"
 #include "plugins/plugins.h"
 #include "tools/http_upload.h"
 
@@ -241,7 +243,7 @@ iq_autoping_check(void)
     if (timeout > 0 && seconds_elapsed >= timeout) {
         cons_show("Autoping response timed out afer %u seconds.", timeout);
         log_debug("Autoping check: timed out afer %u seconds, disconnecting", timeout);
-        jabber_autoping_fail();
+        connection_autoping_fail();
         autoping_wait = FALSE;
         g_timer_destroy(autoping_time);
         autoping_time = NULL;
@@ -272,7 +274,7 @@ iq_room_list_request(gchar *conferencejid)
 {
     xmpp_ctx_t * const ctx = connection_get_ctx();
     xmpp_stanza_t *iq = stanza_create_disco_items_iq(ctx, "confreq", conferencejid);
-    send_iq_stanza(iq);
+    iq_send_stanza(iq);
     xmpp_stanza_release(iq);
 }
 
@@ -285,7 +287,7 @@ iq_enable_carbons(void)
 
     iq_id_handler_add(id, _enable_carbons_id_handler, NULL);
 
-    send_iq_stanza(iq);
+    iq_send_stanza(iq);
     xmpp_stanza_release(iq);
 }
 
@@ -298,14 +300,14 @@ iq_disable_carbons(void)
 
     iq_id_handler_add(id, _disable_carbons_id_handler, NULL);
 
-    send_iq_stanza(iq);
+    iq_send_stanza(iq);
     xmpp_stanza_release(iq);
 }
 
 void
 iq_http_upload_request(HTTPUpload *upload)
 {
-    GSList *disco_items = jabber_get_disco_items();
+    GSList *disco_items = connection_get_disco_items();
     DiscoInfo *disco_info;
     if (disco_items && (g_slist_length(disco_items) > 0)) {
         while (disco_items) {
@@ -333,7 +335,7 @@ iq_http_upload_request(HTTPUpload *upload)
 
     free(id);
 
-    send_iq_stanza(iq);
+    iq_send_stanza(iq);
     xmpp_stanza_release(iq);
     return;
 }
@@ -349,7 +351,7 @@ iq_disco_info_request(gchar *jid)
 
     free(id);
 
-    send_iq_stanza(iq);
+    iq_send_stanza(iq);
     xmpp_stanza_release(iq);
 }
 
@@ -364,7 +366,7 @@ iq_disco_info_request_onconnect(gchar *jid)
 
     free(id);
 
-    send_iq_stanza(iq);
+    iq_send_stanza(iq);
     xmpp_stanza_release(iq);
 }
 
@@ -379,7 +381,7 @@ iq_last_activity_request(gchar *jid)
 
     free(id);
 
-    send_iq_stanza(iq);
+    iq_send_stanza(iq);
     xmpp_stanza_release(iq);
 }
 
@@ -398,7 +400,7 @@ iq_room_info_request(const char *const room, gboolean display_result)
 
     free(id);
 
-    send_iq_stanza(iq);
+    iq_send_stanza(iq);
     xmpp_stanza_release(iq);
 }
 
@@ -424,7 +426,7 @@ iq_send_caps_request_for_jid(const char *const to, const char *const id,
 
     iq_id_handler_add(id, _caps_response_for_jid_id_handler, strdup(to));
 
-    send_iq_stanza(iq);
+    iq_send_stanza(iq);
     xmpp_stanza_release(iq);
 }
 
@@ -450,7 +452,7 @@ iq_send_caps_request(const char *const to, const char *const id,
 
     iq_id_handler_add(id, _caps_response_id_handler, NULL);
 
-    send_iq_stanza(iq);
+    iq_send_stanza(iq);
     xmpp_stanza_release(iq);
 }
 
@@ -476,7 +478,7 @@ iq_send_caps_request_legacy(const char *const to, const char *const id,
     iq_id_handler_add(id, _caps_response_legacy_id_handler, node_str->str);
     g_string_free(node_str, FALSE);
 
-    send_iq_stanza(iq);
+    iq_send_stanza(iq);
     xmpp_stanza_release(iq);
 }
 
@@ -485,7 +487,7 @@ iq_disco_items_request(gchar *jid)
 {
     xmpp_ctx_t * const ctx = connection_get_ctx();
     xmpp_stanza_t *iq = stanza_create_disco_items_iq(ctx, "discoitemsreq", jid);
-    send_iq_stanza(iq);
+    iq_send_stanza(iq);
     xmpp_stanza_release(iq);
 }
 
@@ -494,7 +496,7 @@ iq_disco_items_request_onconnect(gchar *jid)
 {
     xmpp_ctx_t * const ctx = connection_get_ctx();
     xmpp_stanza_t *iq = stanza_create_disco_items_iq(ctx, "discoitemsreq_onconnect", jid);
-    send_iq_stanza(iq);
+    iq_send_stanza(iq);
     xmpp_stanza_release(iq);
 }
 
@@ -507,7 +509,7 @@ iq_send_software_version(const char *const fulljid)
     const char *id = xmpp_stanza_get_id(iq);
     iq_id_handler_add(id, _version_result_id_handler, strdup(fulljid));
 
-    send_iq_stanza(iq);
+    iq_send_stanza(iq);
     xmpp_stanza_release(iq);
 }
 
@@ -516,7 +518,7 @@ iq_confirm_instant_room(const char *const room_jid)
 {
     xmpp_ctx_t * const ctx = connection_get_ctx();
     xmpp_stanza_t *iq = stanza_create_instant_room_request_iq(ctx, room_jid);
-    send_iq_stanza(iq);
+    iq_send_stanza(iq);
     xmpp_stanza_release(iq);
 }
 
@@ -529,7 +531,7 @@ iq_destroy_room(const char *const room_jid)
     const char *id = xmpp_stanza_get_id(iq);
     iq_id_handler_add(id, _destroy_room_result_id_handler, NULL);
 
-    send_iq_stanza(iq);
+    iq_send_stanza(iq);
     xmpp_stanza_release(iq);
 }
 
@@ -542,7 +544,7 @@ iq_request_room_config_form(const char *const room_jid)
     const char *id = xmpp_stanza_get_id(iq);
     iq_id_handler_add(id, _room_config_id_handler, NULL);
 
-    send_iq_stanza(iq);
+    iq_send_stanza(iq);
     xmpp_stanza_release(iq);
 }
 
@@ -555,7 +557,7 @@ iq_submit_room_config(const char *const room, DataForm *form)
     const char *id = xmpp_stanza_get_id(iq);
     iq_id_handler_add(id, _room_config_submit_id_handler, NULL);
 
-    send_iq_stanza(iq);
+    iq_send_stanza(iq);
     xmpp_stanza_release(iq);
 }
 
@@ -564,7 +566,7 @@ iq_room_config_cancel(const char *const room_jid)
 {
     xmpp_ctx_t * const ctx = connection_get_ctx();
     xmpp_stanza_t *iq = stanza_create_room_config_cancel_iq(ctx, room_jid);
-    send_iq_stanza(iq);
+    iq_send_stanza(iq);
     xmpp_stanza_release(iq);
 }
 
@@ -577,7 +579,7 @@ iq_room_affiliation_list(const char *const room, char *affiliation)
     const char *id = xmpp_stanza_get_id(iq);
     iq_id_handler_add(id, _room_affiliation_list_result_id_handler, strdup(affiliation));
 
-    send_iq_stanza(iq);
+    iq_send_stanza(iq);
     xmpp_stanza_release(iq);
 }
 
@@ -590,7 +592,7 @@ iq_room_kick_occupant(const char *const room, const char *const nick, const char
     const char *id = xmpp_stanza_get_id(iq);
     iq_id_handler_add(id, _room_kick_result_id_handler, strdup(nick));
 
-    send_iq_stanza(iq);
+    iq_send_stanza(iq);
     xmpp_stanza_release(iq);
 }
 
@@ -614,7 +616,7 @@ iq_room_affiliation_set(const char *const room, const char *const jid, char *aff
 
     iq_id_handler_add(id, _room_affiliation_set_result_id_handler, affiliation_set);
 
-    send_iq_stanza(iq);
+    iq_send_stanza(iq);
     xmpp_stanza_release(iq);
 }
 
@@ -633,7 +635,7 @@ iq_room_role_set(const char *const room, const char *const nick, char *role,
 
     iq_id_handler_add(id, _room_role_set_result_id_handler, role_set);
 
-    send_iq_stanza(iq);
+    iq_send_stanza(iq);
     xmpp_stanza_release(iq);
 }
 
@@ -646,7 +648,7 @@ iq_room_role_list(const char *const room, char *role)
     const char *id = xmpp_stanza_get_id(iq);
     iq_id_handler_add(id, _room_role_list_result_id_handler, strdup(role));
 
-    send_iq_stanza(iq);
+    iq_send_stanza(iq);
     xmpp_stanza_release(iq);
 }
 
@@ -660,7 +662,7 @@ iq_send_ping(const char *const target)
     GDateTime *now = g_date_time_new_now_local();
     iq_id_handler_add(id, _manual_pong_id_handler, now);
 
-    send_iq_stanza(iq);
+    iq_send_stanza(iq);
     xmpp_stanza_release(iq);
 }
 
@@ -974,7 +976,7 @@ _autoping_timed_send(xmpp_conn_t *const conn, void *const userdata)
     // add pong handler
     iq_id_handler_add(id, _auto_pong_id_handler, ctx);
 
-    send_iq_stanza(iq);
+    iq_send_stanza(iq);
     xmpp_stanza_release(iq);
     autoping_wait = TRUE;
     if (autoping_time) {
@@ -1162,7 +1164,7 @@ _ping_get_handler(xmpp_stanza_t *const stanza)
         xmpp_stanza_set_attribute(pong, STANZA_ATTR_ID, id);
     }
 
-    send_iq_stanza(pong);
+    iq_send_stanza(pong);
     xmpp_stanza_release(pong);
 }
 
@@ -1219,7 +1221,7 @@ _version_get_handler(xmpp_stanza_t *const stanza)
         xmpp_stanza_add_child(query, version);
         xmpp_stanza_add_child(response, query);
 
-        send_iq_stanza(response);
+        iq_send_stanza(response);
 
         g_string_free(version_str, TRUE);
         xmpp_stanza_release(name_txt);
@@ -1255,7 +1257,7 @@ _disco_items_get_handler(xmpp_stanza_t *const stanza)
         xmpp_stanza_set_ns(query, XMPP_NS_DISCO_ITEMS);
         xmpp_stanza_add_child(response, query);
 
-        send_iq_stanza(response);
+        iq_send_stanza(response);
 
         xmpp_stanza_release(response);
     }
@@ -1290,7 +1292,7 @@ _last_activity_get_handler(xmpp_stanza_t *const stanza)
         xmpp_stanza_add_child(response, query);
         xmpp_stanza_release(query);
 
-        send_iq_stanza(response);
+        iq_send_stanza(response);
 
         xmpp_stanza_release(response);
     } else {
@@ -1314,7 +1316,7 @@ _last_activity_get_handler(xmpp_stanza_t *const stanza)
         xmpp_stanza_add_child(response, error);
         xmpp_stanza_release(error);
 
-        send_iq_stanza(response);
+        iq_send_stanza(response);
 
         xmpp_stanza_release(response);
     }
@@ -1348,7 +1350,7 @@ _disco_info_get_handler(xmpp_stanza_t *const stanza)
             xmpp_stanza_set_attribute(query, STANZA_ATTR_NODE, node_str);
         }
         xmpp_stanza_add_child(response, query);
-        send_iq_stanza(response);
+        iq_send_stanza(response);
 
         xmpp_stanza_release(query);
         xmpp_stanza_release(response);
@@ -1916,7 +1918,7 @@ _disco_info_response_id_handler_onconnect(xmpp_stanza_t *const stanza, void *con
     if (query) {
         xmpp_stanza_t *child = xmpp_stanza_get_children(query);
 
-        GSList *disco_items = jabber_get_disco_items();
+        GSList *disco_items = connection_get_disco_items();
         DiscoInfo *disco_info;
         if (disco_items && (g_slist_length(disco_items) > 0)) {
             while (disco_items) {
@@ -2051,7 +2053,7 @@ _disco_items_result_handler(xmpp_stanza_t *const stanza)
                 DiscoInfo *info = malloc(sizeof(struct disco_info_t));
                 info->item = strdup(item->jid);
                 info->features = g_hash_table_new_full(g_str_hash, g_str_equal, free, NULL);
-                jabber_set_disco_items(g_slist_append(jabber_get_disco_items(), info));
+                connection_set_disco_items(g_slist_append(connection_get_disco_items(), info));
                 iq_disco_info_request_onconnect(info->item);
                 res_items = g_slist_next(res_items);
             }
@@ -2062,7 +2064,7 @@ _disco_items_result_handler(xmpp_stanza_t *const stanza)
 }
 
 void
-send_iq_stanza(xmpp_stanza_t *const stanza)
+iq_send_stanza(xmpp_stanza_t *const stanza)
 {
     char *text;
     size_t text_size;
diff --git a/src/xmpp/iq.h b/src/xmpp/iq.h
index 5f72eac8..274afdc6 100644
--- a/src/xmpp/iq.h
+++ b/src/xmpp/iq.h
@@ -36,6 +36,14 @@
 #define XMPP_IQ_H
 
 void iq_handlers_init(void);
-void iq_roster_request(void);
+void iq_send_stanza(xmpp_stanza_t *const stanza);
+void iq_id_handler_add(const char *const id, ProfIdCallback func, void *userdata);
+void iq_disco_info_request_onconnect(gchar *jid);
+void iq_disco_items_request_onconnect(gchar *jid);
+void iq_send_caps_request(const char *const to, const char *const id, const char *const node, const char *const ver);
+void iq_send_caps_request_for_jid(const char *const to, const char *const id, const char *const node,
+    const char *const ver);
+void iq_send_caps_request_legacy(const char *const to, const char *const id, const char *const node,
+    const char *const ver);
 
 #endif
diff --git a/src/xmpp/presence.c b/src/xmpp/presence.c
index d817965a..4d59326b 100644
--- a/src/xmpp/presence.c
+++ b/src/xmpp/presence.c
@@ -58,6 +58,7 @@
 #include "xmpp/capabilities.h"
 #include "xmpp/connection.h"
 #include "xmpp/stanza.h"
+#include "xmpp/iq.h"
 #include "xmpp/xmpp.h"
 #include "plugins/plugins.h"
 
@@ -668,7 +669,7 @@ _send_caps_request(char *node, char *caps_key, char *id, char *from)
         if (!caps_contains(caps_key)) {
             log_debug("Capabilities not cached for '%s', sending discovery IQ.", from);
             xmpp_stanza_t *iq = stanza_create_disco_info_iq(ctx, id, from, node);
-            send_iq_stanza(iq);
+            iq_send_stanza(iq);
             xmpp_stanza_release(iq);
         } else {
             log_debug("Capabilities already cached, for %s", caps_key);
diff --git a/src/xmpp/roster.c b/src/xmpp/roster.c
index b409380a..0cb37014 100644
--- a/src/xmpp/roster.c
+++ b/src/xmpp/roster.c
@@ -56,6 +56,7 @@
 #include "tools/autocomplete.h"
 #include "config/preferences.h"
 #include "xmpp/connection.h"
+#include "xmpp/iq.h"
 #include "xmpp/roster.h"
 #include "roster_list.h"
 #include "xmpp/stanza.h"
@@ -80,7 +81,7 @@ roster_request(void)
 {
     xmpp_ctx_t * const ctx = connection_get_ctx();
     xmpp_stanza_t *iq = stanza_create_roster_iq(ctx);
-    send_iq_stanza(iq);
+    iq_send_stanza(iq);
     xmpp_stanza_release(iq);
 }
 
@@ -91,7 +92,7 @@ roster_send_add_new(const char *const barejid, const char *const name)
     char *id = create_unique_id("roster");
     xmpp_stanza_t *iq = stanza_create_roster_set(ctx, id, barejid, name, NULL);
     free(id);
-    send_iq_stanza(iq);
+    iq_send_stanza(iq);
     xmpp_stanza_release(iq);
 }
 
@@ -100,7 +101,7 @@ roster_send_remove(const char *const barejid)
 {
     xmpp_ctx_t * const ctx = connection_get_ctx();
     xmpp_stanza_t *iq = stanza_create_roster_remove_set(ctx, barejid);
-    send_iq_stanza(iq);
+    iq_send_stanza(iq);
     xmpp_stanza_release(iq);
 }
 
@@ -111,7 +112,7 @@ roster_send_name_change(const char *const barejid, const char *const new_name, G
     char *id = create_unique_id("roster");
     xmpp_stanza_t *iq = stanza_create_roster_set(ctx, id, barejid, new_name, groups);
     free(id);
-    send_iq_stanza(iq);
+    iq_send_stanza(iq);
     xmpp_stanza_release(iq);
 }
 
@@ -140,7 +141,7 @@ roster_send_add_to_group(const char *const group, PContact contact)
     iq_id_handler_add(unique_id, _group_add_id_handler, data);
     xmpp_stanza_t *iq = stanza_create_roster_set(ctx, unique_id, p_contact_barejid(contact),
         p_contact_name(contact), new_groups);
-    send_iq_stanza(iq);
+    iq_send_stanza(iq);
     xmpp_stanza_release(iq);
     free(unique_id);
 }
@@ -185,7 +186,7 @@ roster_send_remove_from_group(const char *const group, PContact contact)
     iq_id_handler_add(unique_id, _group_remove_id_handler, data);
     xmpp_stanza_t *iq = stanza_create_roster_set(ctx, unique_id, p_contact_barejid(contact),
         p_contact_name(contact), new_groups);
-    send_iq_stanza(iq);
+    iq_send_stanza(iq);
     xmpp_stanza_release(iq);
     free(unique_id);
 }
diff --git a/src/xmpp/roster.h b/src/xmpp/roster.h
index b75f0112..fbadf85b 100644
--- a/src/xmpp/roster.h
+++ b/src/xmpp/roster.h
@@ -35,7 +35,8 @@
 #ifndef XMPP_ROSTER_H
 #define XMPP_ROSTER_H
 
-void roster_add_handlers(void);
 void roster_request(void);
+void roster_set_handler(xmpp_stanza_t *const stanza);
+void roster_result_handler(xmpp_stanza_t *const stanza);
 
 #endif
diff --git a/src/xmpp/stanza.c b/src/xmpp/stanza.c
index 13450e20..01ae3f2d 100644
--- a/src/xmpp/stanza.c
+++ b/src/xmpp/stanza.c
@@ -1622,35 +1622,6 @@ stanza_parse_caps(xmpp_stanza_t *const stanza)
 }
 
 char*
-stanza_get_caps_str(xmpp_stanza_t *const stanza)
-{
-    xmpp_stanza_t *caps = xmpp_stanza_get_child_by_name(stanza, STANZA_NAME_C);
-
-    if (caps == NULL) {
-        return NULL;
-    }
-
-    if (strcmp(xmpp_stanza_get_ns(caps), STANZA_NS_CAPS) != 0) {
-        return NULL;
-    }
-
-    const char *node = xmpp_stanza_get_attribute(caps, STANZA_ATTR_NODE);
-    const char *ver = xmpp_stanza_get_attribute(caps, STANZA_ATTR_VER);
-
-    if ((node == NULL) || (ver == NULL)) {
-        return NULL;
-    }
-
-    GString *caps_gstr = g_string_new(node);
-    g_string_append(caps_gstr, "#");
-    g_string_append(caps_gstr, ver);
-    char *caps_str = caps_gstr->str;
-    g_string_free(caps_gstr, FALSE);
-
-    return  caps_str;
-}
-
-char*
 stanza_get_error_message(xmpp_stanza_t *stanza)
 {
     xmpp_ctx_t *ctx = connection_get_ctx();
diff --git a/src/xmpp/stanza.h b/src/xmpp/stanza.h
index d557b5c7..3f369092 100644
--- a/src/xmpp/stanza.h
+++ b/src/xmpp/stanza.h
@@ -283,10 +283,6 @@ xmpp_stanza_t* stanza_create_room_kick_iq(xmpp_ctx_t *const ctx, const char *con
     const char *const reason);
 
 int stanza_get_idle_time(xmpp_stanza_t *const stanza);
-char* stanza_get_caps_str(xmpp_stanza_t *const stanza);
-
-DataForm* stanza_create_form(xmpp_stanza_t *const stanza);
-void stanza_destroy_form(DataForm *form);
 
 void stanza_attach_priority(xmpp_ctx_t *const ctx, xmpp_stanza_t *const presence, const int pri);
 void stanza_attach_last_activity(xmpp_ctx_t *const ctx, xmpp_stanza_t *const presence, const int idle);
diff --git a/src/xmpp/xmpp.h b/src/xmpp/xmpp.h
index bf7bbbac..d8478642 100644
--- a/src/xmpp/xmpp.h
+++ b/src/xmpp/xmpp.h
@@ -76,6 +76,13 @@ typedef enum {
     INVITE_MEDIATED
 } jabber_invite_t;
 
+typedef struct bookmark_t {
+    char *jid;
+    char *nick;
+    char *password;
+    gboolean autojoin;
+} Bookmark;
+
 typedef struct capabilities_t {
     char *category;
     char *type;
@@ -103,21 +110,15 @@ typedef struct disco_info_t {
     GHashTable *features;
 } DiscoInfo;
 
-// connection functions
 void jabber_init(void);
 jabber_conn_status_t jabber_connect_with_details(const char *const jid, const char *const passwd,
     const char *const altdomain, const int port, const char *const tls_policy);
 jabber_conn_status_t jabber_connect_with_account(const ProfAccount *const account);
 void jabber_disconnect(void);
 void jabber_shutdown(void);
-void jabber_autoping_fail(void);
 void jabber_process_events(int millis);
 const char* jabber_get_fulljid(void);
-const char* jabber_get_domain(void);
 jabber_conn_status_t jabber_get_connection_status(void);
-void jabber_set_connection_status(jabber_conn_status_t status);
-GSList* jabber_get_disco_items(void);
-void jabber_set_disco_items(GSList *disco_items);
 char* jabber_get_presence_message(void);
 char* jabber_get_account_name(void);
 GList* jabber_get_available_resources(void);
@@ -130,22 +131,18 @@ gboolean jabber_conn_is_secured(void);
 gboolean jabber_send_stanza(const char *const stanza);
 gboolean jabber_service_supports(const char *const feature);
 
-// message functions
 char* message_send_chat(const char *const barejid, const char *const msg, const char *const oob_url);
 char* message_send_chat_otr(const char *const barejid, const char *const msg);
 char* message_send_chat_pgp(const char *const barejid, const char *const msg);
 void message_send_private(const char *const fulljid, const char *const msg, const char *const oob_url);
 void message_send_groupchat(const char *const roomjid, const char *const msg, const char *const oob_url);
 void message_send_groupchat_subject(const char *const roomjid, const char *const subject);
-
 void message_send_inactive(const char *const jid);
 void message_send_composing(const char *const jid);
 void message_send_paused(const char *const jid);
 void message_send_gone(const char *const jid);
-
 void message_send_invite(const char *const room, const char *const contact, const char *const reason);
 
-// presence functions
 void presence_subscription(const char *const jid, const jabber_subscr_t action);
 GSList* presence_get_subscription_requests(void);
 gint presence_sub_request_count(void);
@@ -157,15 +154,12 @@ void presence_leave_chat_room(const char *const room_jid);
 void presence_send(resource_presence_t status, const char *const msg, int idle, char *signed_status);
 gboolean presence_sub_request_exists(const char *const bare_jid);
 
-// iq functions
 void iq_enable_carbons(void);
 void iq_disable_carbons(void);
 void iq_send_software_version(const char *const fulljid);
 void iq_room_list_request(gchar *conferencejid);
 void iq_disco_info_request(gchar *jid);
-void iq_disco_info_request_onconnect(gchar *jid);
 void iq_disco_items_request(gchar *jid);
-void iq_disco_items_request_onconnect(gchar *jid);
 void iq_last_activity_request(gchar *jid);
 void iq_set_autoping(int seconds);
 void iq_confirm_instant_room(const char *const room_jid);
@@ -174,11 +168,6 @@ void iq_request_room_config_form(const char *const room_jid);
 void iq_submit_room_config(const char *const room, DataForm *form);
 void iq_room_config_cancel(const char *const room_jid);
 void iq_send_ping(const char *const target);
-void iq_send_caps_request(const char *const to, const char *const id, const char *const node, const char *const ver);
-void iq_send_caps_request_for_jid(const char *const to, const char *const id, const char *const node,
-    const char *const ver);
-void iq_send_caps_request_legacy(const char *const to, const char *const id, const char *const node,
-    const char *const ver);
 void iq_room_info_request(const char *const room, gboolean display_result);
 void iq_room_affiliation_list(const char *const room, char *affiliation);
 void iq_room_affiliation_set(const char *const room, const char *const jid, char *affiliation,
@@ -189,7 +178,6 @@ void iq_room_role_list(const char * const room, char *role);
 void iq_autoping_check(void);
 void iq_http_upload_request(HTTPUpload *upload);
 
-// caps functions
 Capabilities* caps_lookup(const char *const jid);
 void caps_close(void);
 void caps_destroy(Capabilities *caps);
@@ -216,7 +204,6 @@ char* blocked_ac_find(const char *const search_str);
 void blocked_ac_reset(void);
 
 void form_destroy(DataForm *form);
-char* form_get_form_type_field(DataForm *form);
 void form_set_value(DataForm *form, const char *const tag, char *value);
 gboolean form_add_unique_value(DataForm *form, const char *const tag, char *value);
 void form_add_value(DataForm *form, const char *const tag, char *value);
@@ -230,7 +217,4 @@ FormField* form_get_field_by_tag(DataForm *form, const char *const tag);
 Autocomplete form_get_value_ac(DataForm *form, const char *const tag);
 void form_reset_autocompleters(DataForm *form);
 
-GSList* form_get_non_form_type_fields_sorted(DataForm *form);
-GSList* form_get_field_values_sorted(FormField *field);
-
 #endif
diff --git a/tests/unittests/test_cmd_otr.c b/tests/unittests/test_cmd_otr.c
index 8219479a..9790c3da 100644
--- a/tests/unittests/test_cmd_otr.c
+++ b/tests/unittests/test_cmd_otr.c
@@ -18,6 +18,7 @@
 #include "command/command.h"
 #include "command/commands.h"
 #include "window_list.h"
+#include "xmpp/xmpp.h"
 
 #include "ui/ui.h"
 #include "ui/stub_ui.h"