about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2012-12-07 00:10:00 +0000
committerJames Booth <boothj5@gmail.com>2012-12-07 00:10:00 +0000
commit731dabd7124d1707d23f5c1d74c6f13ed41dc243 (patch)
tree9212bd85dedcf48f57a21c4fea26e9056c50b05d /src
parent8304b30b5206c6cedcda44f046b24037eaa364dc (diff)
downloadprofani-tty-731dabd7124d1707d23f5c1d74c6f13ed41dc243.tar.gz
Added server property to accounts
Diffstat (limited to 'src')
-rw-r--r--src/accounts.c6
-rw-r--r--src/accounts.h2
-rw-r--r--src/jabber.c2
-rw-r--r--src/profanity.c4
-rw-r--r--src/profanity.h2
5 files changed, 10 insertions, 6 deletions
diff --git a/src/accounts.c b/src/accounts.c
index 93179367..905904d3 100644
--- a/src/accounts.c
+++ b/src/accounts.c
@@ -82,10 +82,14 @@ accounts_reset_login_search(void)
 }
 
 void
-accounts_add_login(const char *jid)
+accounts_add_login(const char *jid, const char *altdomain)
 {
     if (!g_key_file_has_group(accounts, jid)) {
         g_key_file_set_boolean(accounts, jid, "enabled", TRUE);
+        if (altdomain != NULL) {
+            g_key_file_set_string(accounts, jid, "server", altdomain);
+        }
+
         _save_accounts();
     }
 }
diff --git a/src/accounts.h b/src/accounts.h
index d8fa6377..1feaa1ab 100644
--- a/src/accounts.h
+++ b/src/accounts.h
@@ -28,6 +28,6 @@ void accounts_close(void);
 
 char * accounts_find_login(char *prefix);
 void accounts_reset_login_search(void);
-void accounts_add_login(const char *jid);
+void accounts_add_login(const char *jid, const char *altdomain);
 
 #endif
diff --git a/src/jabber.c b/src/jabber.c
index d414232a..433e1de7 100644
--- a/src/jabber.c
+++ b/src/jabber.c
@@ -698,7 +698,7 @@ _connection_handler(xmpp_conn_t * const conn,
     // login success
     if (status == XMPP_CONN_CONNECT) {
         const char *jid = xmpp_conn_get_jid(conn);
-        prof_handle_login_success(jid);
+        prof_handle_login_success(jid, saved_altdomain);
         chat_sessions_init();
 
         xmpp_handler_add(conn, _message_handler, NULL, STANZA_NAME_MESSAGE, NULL, ctx);
diff --git a/src/profanity.c b/src/profanity.c
index 92ceae44..d0616d2d 100644
--- a/src/profanity.c
+++ b/src/profanity.c
@@ -190,7 +190,7 @@ prof_handle_subscription(const char *from, jabber_subscr_t type)
 }
 
 void
-prof_handle_login_success(const char *jid)
+prof_handle_login_success(const char *jid, const char *altdomain)
 {
     const char *msg = "logged in successfully.";
     cons_show("%s %s", jid, msg);
@@ -199,7 +199,7 @@ prof_handle_login_success(const char *jid)
     win_current_page_off();
     status_bar_print_message(jid);
     status_bar_refresh();
-    accounts_add_login(jid);
+    accounts_add_login(jid, altdomain);
 }
 
 void
diff --git a/src/profanity.h b/src/profanity.h
index b91a17b2..284226f5 100644
--- a/src/profanity.h
+++ b/src/profanity.h
@@ -27,7 +27,7 @@
 
 void prof_run(const int disable_tls, char *log_level);
 
-void prof_handle_login_success(const char *jid);
+void prof_handle_login_success(const char *jid, const char *altdomain);
 void prof_handle_lost_connection(void);
 void prof_handle_disconnect(const char * const jid);
 void prof_handle_failed_login(void);