about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/xmpp/connection.c21
-rw-r--r--src/xmpp/connection.h36
-rw-r--r--src/xmpp/iq.c9
-rw-r--r--src/xmpp/message.c31
-rw-r--r--src/xmpp/presence.c37
-rw-r--r--src/xmpp/xmpp.h7
6 files changed, 87 insertions, 54 deletions
diff --git a/src/xmpp/connection.c b/src/xmpp/connection.c
index 57528bb6..2bb92694 100644
--- a/src/xmpp/connection.c
+++ b/src/xmpp/connection.c
@@ -34,6 +34,7 @@
 #include "log.h"
 #include "muc.h"
 #include "profanity.h"
+#include "xmpp/connection.h"
 #include "xmpp/iq.h"
 #include "xmpp/message.h"
 #include "xmpp/presence.h"
@@ -154,7 +155,7 @@ jabber_disconnect(void)
         while (jabber_get_connection_status() == JABBER_DISCONNECTING) {
             jabber_process_events();
         }
-        jabber_free_resources();
+        connection_free_resources();
     }
 }
 
@@ -200,13 +201,13 @@ jabber_get_connection_status(void)
 }
 
 xmpp_conn_t *
-jabber_get_conn(void)
+connection_get_conn(void)
 {
     return jabber_conn.conn;
 }
 
 xmpp_ctx_t *
-jabber_get_ctx(void)
+connection_get_ctx(void)
 {
     return jabber_conn.ctx;
 }
@@ -236,13 +237,13 @@ jabber_get_account_name(void)
 }
 
 void
-jabber_conn_set_presence_type(jabber_presence_t presence_type)
+connection_set_presence_type(jabber_presence_t presence_type)
 {
     jabber_conn.presence_type = presence_type;
 }
 
 void
-jabber_conn_set_presence_message(const char * const message)
+connection_set_presence_message(const char * const message)
 {
     FREE_SET_NULL(jabber_conn.presence_message);
     if (message != NULL) {
@@ -251,13 +252,13 @@ jabber_conn_set_presence_message(const char * const message)
 }
 
 void
-jabber_conn_set_priority(int priority)
+connection_set_priority(int priority)
 {
     jabber_conn.priority = priority;
 }
 
 void
-jabber_free_resources(void)
+connection_free_resources(void)
 {
     FREE_SET_NULL(saved_details.name);
     FREE_SET_NULL(saved_details.jid);
@@ -273,7 +274,7 @@ jabber_free_resources(void)
 }
 
 int
-error_handler(xmpp_stanza_t * const stanza)
+connection_error_handler(xmpp_stanza_t * const stanza)
 {
     gchar *err_msg = NULL;
     gchar *from = xmpp_stanza_get_attribute(stanza, STANZA_ATTR_FROM);
@@ -429,14 +430,14 @@ _connection_handler(xmpp_conn_t * const conn,
                 reconnect_timer = g_timer_new();
                 // TODO: free resources but leave saved_user untouched
             } else {
-                jabber_free_resources();
+                connection_free_resources();
             }
 
         // login attempt failed
         } else if (jabber_conn.conn_status != JABBER_DISCONNECTING) {
             if (reconnect_timer == NULL) {
                 prof_handle_failed_login();
-                jabber_free_resources();
+                connection_free_resources();
             } else {
                 if (prefs_get_reconnect() != 0) {
                     g_timer_start(reconnect_timer);
diff --git a/src/xmpp/connection.h b/src/xmpp/connection.h
new file mode 100644
index 00000000..380e5cbc
--- /dev/null
+++ b/src/xmpp/connection.h
@@ -0,0 +1,36 @@
+/*
+ * connection.h
+ *
+ * Copyright (C) 2012, 2013 James Booth <boothj5@gmail.com>
+ *
+ * This file is part of Profanity.
+ *
+ * Profanity is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Profanity is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Profanity.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#ifndef CONNECTION_H
+#define CONNECTION_H
+
+#include <strophe.h>
+
+void connection_free_resources(void);
+xmpp_conn_t *connection_get_conn(void);
+xmpp_ctx_t *connection_get_ctx(void);
+int connection_error_handler(xmpp_stanza_t * const stanza);
+void connection_set_presence_type(jabber_presence_t presence_type);
+void connection_set_priority(int priority);
+void connection_set_presence_message(const char * const message);
+
+#endif
diff --git a/src/xmpp/iq.c b/src/xmpp/iq.c
index fc3ef780..51e3b615 100644
--- a/src/xmpp/iq.c
+++ b/src/xmpp/iq.c
@@ -31,6 +31,7 @@
 #include "contact_list.h"
 #include "log.h"
 #include "xmpp/capabilities.h"
+#include "xmpp/connection.h"
 #include "xmpp/iq.h"
 #include "xmpp/stanza.h"
 #include "xmpp/xmpp.h"
@@ -55,8 +56,8 @@ static int _iq_handle_discoinfo_result(xmpp_conn_t * const conn,
 void
 iq_add_handlers(void)
 {
-    xmpp_conn_t * const conn = jabber_get_conn();
-    xmpp_ctx_t * const ctx = jabber_get_ctx();
+    xmpp_conn_t * const conn = connection_get_conn();
+    xmpp_ctx_t * const ctx = connection_get_ctx();
     HANDLE(NULL,                STANZA_TYPE_ERROR,  _iq_handle_error);
     HANDLE(XMPP_NS_ROSTER,      STANZA_TYPE_SET,    _iq_handle_roster_set);
     HANDLE(XMPP_NS_ROSTER,      STANZA_TYPE_RESULT, _iq_handle_roster_result);
@@ -69,8 +70,8 @@ iq_add_handlers(void)
 void
 iq_roster_request(void)
 {
-    xmpp_conn_t * const conn = jabber_get_conn();
-    xmpp_ctx_t * const ctx = jabber_get_ctx();
+    xmpp_conn_t * const conn = connection_get_conn();
+    xmpp_ctx_t * const ctx = connection_get_ctx();
     xmpp_stanza_t *iq = stanza_create_roster_iq(ctx);
     xmpp_send(conn, iq);
     xmpp_stanza_release(iq);
diff --git a/src/xmpp/message.c b/src/xmpp/message.c
index 62e05c2a..0242e1b1 100644
--- a/src/xmpp/message.c
+++ b/src/xmpp/message.c
@@ -30,6 +30,7 @@
 #include "log.h"
 #include "muc.h"
 #include "profanity.h"
+#include "xmpp/connection.h"
 #include "xmpp/message.h"
 #include "xmpp/stanza.h"
 #include "xmpp/xmpp.h"
@@ -44,16 +45,16 @@ static int _chat_message_handler(xmpp_stanza_t * const stanza);
 void
 message_add_handlers(void)
 {
-    xmpp_conn_t * const conn = jabber_get_conn();
-    xmpp_ctx_t * const ctx = jabber_get_ctx();
+    xmpp_conn_t * const conn = connection_get_conn();
+    xmpp_ctx_t * const ctx = connection_get_ctx();
     HANDLE(NULL, NULL, _message_handler);
 }
 
 void
 message_send(const char * const msg, const char * const recipient)
 {
-    xmpp_conn_t * const conn = jabber_get_conn();
-    xmpp_ctx_t * const ctx = jabber_get_ctx();
+    xmpp_conn_t * const conn = connection_get_conn();
+    xmpp_ctx_t * const ctx = connection_get_ctx();
     if (prefs_get_boolean(PREF_STATES)) {
         if (!chat_session_exists(recipient)) {
             chat_session_start(recipient, TRUE);
@@ -77,8 +78,8 @@ message_send(const char * const msg, const char * const recipient)
 void
 message_send_groupchat(const char * const msg, const char * const recipient)
 {
-    xmpp_conn_t * const conn = jabber_get_conn();
-    xmpp_ctx_t * const ctx = jabber_get_ctx();
+    xmpp_conn_t * const conn = connection_get_conn();
+    xmpp_ctx_t * const ctx = connection_get_ctx();
     xmpp_stanza_t *message = stanza_create_message(ctx, recipient,
         STANZA_TYPE_GROUPCHAT, msg, NULL);
 
@@ -89,8 +90,8 @@ message_send_groupchat(const char * const msg, const char * const recipient)
 void
 message_send_composing(const char * const recipient)
 {
-    xmpp_conn_t * const conn = jabber_get_conn();
-    xmpp_ctx_t * const ctx = jabber_get_ctx();
+    xmpp_conn_t * const conn = connection_get_conn();
+    xmpp_ctx_t * const ctx = connection_get_ctx();
     xmpp_stanza_t *stanza = stanza_create_chat_state(ctx, recipient,
         STANZA_NAME_COMPOSING);
 
@@ -102,8 +103,8 @@ message_send_composing(const char * const recipient)
 void
 message_send_paused(const char * const recipient)
 {
-    xmpp_conn_t * const conn = jabber_get_conn();
-    xmpp_ctx_t * const ctx = jabber_get_ctx();
+    xmpp_conn_t * const conn = connection_get_conn();
+    xmpp_ctx_t * const ctx = connection_get_ctx();
     xmpp_stanza_t *stanza = stanza_create_chat_state(ctx, recipient,
         STANZA_NAME_PAUSED);
 
@@ -115,8 +116,8 @@ message_send_paused(const char * const recipient)
 void
 message_send_inactive(const char * const recipient)
 {
-    xmpp_conn_t * const conn = jabber_get_conn();
-    xmpp_ctx_t * const ctx = jabber_get_ctx();
+    xmpp_conn_t * const conn = connection_get_conn();
+    xmpp_ctx_t * const ctx = connection_get_ctx();
     xmpp_stanza_t *stanza = stanza_create_chat_state(ctx, recipient,
         STANZA_NAME_INACTIVE);
 
@@ -128,8 +129,8 @@ message_send_inactive(const char * const recipient)
 void
 message_send_gone(const char * const recipient)
 {
-    xmpp_conn_t * const conn = jabber_get_conn();
-    xmpp_ctx_t * const ctx = jabber_get_ctx();
+    xmpp_conn_t * const conn = connection_get_conn();
+    xmpp_ctx_t * const ctx = connection_get_ctx();
     xmpp_stanza_t *stanza = stanza_create_chat_state(ctx, recipient,
         STANZA_NAME_GONE);
 
@@ -148,7 +149,7 @@ _message_handler(xmpp_conn_t * const conn,
         log_error("Message stanza received with no type attribute");
         return 1;
     } else if (strcmp(type, STANZA_TYPE_ERROR) == 0) {
-        return error_handler(stanza);
+        return connection_error_handler(stanza);
     } else if (strcmp(type, STANZA_TYPE_GROUPCHAT) == 0) {
         return _groupchat_message_handler(stanza);
     } else if (strcmp(type, STANZA_TYPE_CHAT) == 0) {
diff --git a/src/xmpp/presence.c b/src/xmpp/presence.c
index a2ec75c4..f0510b95 100644
--- a/src/xmpp/presence.c
+++ b/src/xmpp/presence.c
@@ -31,6 +31,7 @@
 #include "muc.h"
 #include "profanity.h"
 #include "xmpp/capabilities.h"
+#include "xmpp/connection.h"
 #include "xmpp/stanza.h"
 #include "xmpp/xmpp.h"
 
@@ -53,16 +54,16 @@ presence_init(void)
 void
 presence_add_handlers(void)
 {
-    xmpp_conn_t * const conn = jabber_get_conn();
-    xmpp_ctx_t * const ctx = jabber_get_ctx();
+    xmpp_conn_t * const conn = connection_get_conn();
+    xmpp_ctx_t * const ctx = connection_get_ctx();
     HANDLE(NULL, NULL, _presence_handler);
 }
 
 void
 presence_subscription(const char * const jid, const jabber_subscr_t action)
 {
-    xmpp_ctx_t *ctx = jabber_get_ctx();
-    xmpp_conn_t *conn = jabber_get_conn();
+    xmpp_ctx_t *ctx = connection_get_ctx();
+    xmpp_conn_t *conn = connection_get_conn();
     xmpp_stanza_t *presence;
     char *type, *jid_cpy, *bare_jid;
 
@@ -108,8 +109,8 @@ void
 presence_update(jabber_presence_t presence_type, const char * const msg,
     int idle)
 {
-    xmpp_ctx_t *ctx = jabber_get_ctx();
-    xmpp_conn_t *conn = jabber_get_conn();
+    xmpp_ctx_t *ctx = connection_get_ctx();
+    xmpp_conn_t *conn = connection_get_conn();
     int pri = accounts_get_priority_for_presence_type(jabber_get_account_name(),
         presence_type);
     const char *show = stanza_get_presence_string_from_type(presence_type);
@@ -118,9 +119,9 @@ presence_update(jabber_presence_t presence_type, const char * const msg,
     if (jabber_get_connection_status() != JABBER_CONNECTED)
         return;
 
-    jabber_conn_set_presence_type(presence_type);
-    jabber_conn_set_presence_message(msg);
-    jabber_conn_set_priority(pri);
+    connection_set_presence_type(presence_type);
+    connection_set_presence_message(msg);
+    connection_set_priority(pri);
 
     xmpp_stanza_t *presence = stanza_create_presence(ctx, show, msg);
     stanza_attach_priority(ctx, presence, pri);
@@ -156,8 +157,8 @@ presence_update(jabber_presence_t presence_type, const char * const msg,
 void
 presence_join_room(Jid *jid)
 {
-    xmpp_ctx_t *ctx = jabber_get_ctx();
-    xmpp_conn_t *conn = jabber_get_conn();
+    xmpp_ctx_t *ctx = connection_get_ctx();
+    xmpp_conn_t *conn = connection_get_conn();
     jabber_presence_t presence_type = jabber_get_presence_type();
     const char *show = stanza_get_presence_string_from_type(presence_type);
     char *status = jabber_get_presence_message(); 
@@ -177,8 +178,8 @@ presence_join_room(Jid *jid)
 void
 presence_change_room_nick(const char * const room, const char * const nick)
 {
-    xmpp_ctx_t *ctx = jabber_get_ctx();
-    xmpp_conn_t *conn = jabber_get_conn();
+    xmpp_ctx_t *ctx = connection_get_ctx();
+    xmpp_conn_t *conn = connection_get_conn();
     char *full_room_jid = create_fulljid(room, nick);
     xmpp_stanza_t *presence = stanza_create_room_newnick_presence(ctx, full_room_jid);
     xmpp_send(conn, presence);
@@ -190,8 +191,8 @@ presence_change_room_nick(const char * const room, const char * const nick)
 void
 presence_leave_chat_room(const char * const room_jid)
 {
-    xmpp_ctx_t *ctx = jabber_get_ctx();
-    xmpp_conn_t *conn = jabber_get_conn();
+    xmpp_ctx_t *ctx = connection_get_ctx();
+    xmpp_conn_t *conn = connection_get_conn();
     char *nick = muc_get_room_nick(room_jid);
 
     xmpp_stanza_t *presence = stanza_create_room_leave_presence(ctx, room_jid,
@@ -214,7 +215,7 @@ _presence_handler(xmpp_conn_t * const conn,
     Jid *from_jid = jid_create(from);
 
     if ((type != NULL) && (strcmp(type, STANZA_TYPE_ERROR) == 0)) {
-        return error_handler(stanza);
+        return connection_error_handler(stanza);
     }
 
     // handle chat room presence
@@ -283,8 +284,8 @@ _presence_handler(xmpp_conn_t * const conn,
 static char *
 _handle_presence_caps(xmpp_stanza_t * const stanza)
 {
-    xmpp_ctx_t *ctx = jabber_get_ctx();
-    xmpp_conn_t *conn = jabber_get_conn();
+    xmpp_ctx_t *ctx = connection_get_ctx();
+    xmpp_conn_t *conn = connection_get_conn();
     char *caps_key = NULL;
     char *node = NULL;
     char *from = xmpp_stanza_get_attribute(stanza, STANZA_ATTR_FROM);
diff --git a/src/xmpp/xmpp.h b/src/xmpp/xmpp.h
index d81be248..644bba48 100644
--- a/src/xmpp/xmpp.h
+++ b/src/xmpp/xmpp.h
@@ -62,15 +62,8 @@ const char * jabber_get_jid(void);
 jabber_conn_status_t jabber_get_connection_status(void);
 jabber_presence_t jabber_get_presence_type(void);
 char * jabber_get_presence_message(void);
-void jabber_free_resources(void);
 void jabber_restart(void);
 void jabber_set_autoping(int seconds);
-xmpp_conn_t *jabber_get_conn(void);
-xmpp_ctx_t *jabber_get_ctx(void);
-int error_handler(xmpp_stanza_t * const stanza);
-void jabber_conn_set_presence_type(jabber_presence_t presence_type);
-void jabber_conn_set_priority(int priority);
-void jabber_conn_set_presence_message(const char * const message);
 char* jabber_get_account_name(void);
 
 // message functions