changeset 1611:f9bf561e54d0

Use the username for authentication, added jid_get_username() to utils.c
author franky
date Sun, 11 Oct 2009 20:58:20 +0200
parents 6db9f403f707
children 04e3b502aeb4
files mcabber/src/hooks.c mcabber/src/settings.c mcabber/src/utils.c mcabber/src/utils.h mcabber/src/xmpp.c
diffstat 5 files changed, 23 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/mcabber/src/hooks.c	Sun Oct 11 20:06:47 2009 +0200
+++ b/mcabber/src/hooks.c	Sun Oct 11 20:58:20 2009 +0200
@@ -340,10 +340,11 @@
   } else {
     wmsg = (char*)msg;
     if (!strncmp(msg, COMMAND_ME, strlen(COMMAND_ME))) {
-      const char *myid = settings_opt_get("username");
-      if (myid)
-        wmsg = mmsg = g_strdup_printf("*%s %s", settings_opt_get("username"),
-                                      msg+4);
+      char *myid = jid_get_username(settings_opt_get("jid"));
+      if (myid) {
+        wmsg = mmsg = g_strdup_printf("*%s %s", myid, msg+4);
+        g_free(myid);
+      }
     }
   }
 
--- a/mcabber/src/settings.c	Sun Oct 11 20:06:47 2009 +0200
+++ b/mcabber/src/settings.c	Sun Oct 11 20:58:20 2009 +0200
@@ -409,12 +409,7 @@
   if (nick)
     return g_strdup(nick);
 
-  nick = g_strdup(settings_opt_get("username"));
-  if (nick) {
-    char *p = strchr(nick, JID_DOMAIN_SEPARATOR);
-    if (p > nick)
-      *p = 0;
-  }
+  nick = jid_get_username(settings_opt_get("jid"));
   return nick;
 }
 
--- a/mcabber/src/utils.c	Sun Oct 11 20:06:47 2009 +0200
+++ b/mcabber/src/utils.c	Sun Oct 11 20:58:20 2009 +0200
@@ -63,6 +63,18 @@
   return alias;
 }
 
+char *jid_get_username(const char *fjid)
+{
+  char *ptr;
+  char *username;
+
+  username = g_strdup(fjid);
+  if ((ptr = strchr(username, JID_DOMAIN_SEPARATOR)) != NULL) {
+    *ptr = 0;
+  }
+  return username;
+}
+
 char *compose_jid(const char *username, const char *servername,
                   const char *resource)
 {
--- a/mcabber/src/utils.h	Sun Oct 11 20:06:47 2009 +0200
+++ b/mcabber/src/utils.h	Sun Oct 11 20:58:20 2009 +0200
@@ -15,6 +15,7 @@
 #define JID_DOMAIN_SEPARATORSTR     "@"
 
 char *jidtodisp(const char *fjid);
+char *jid_get_username(const char *fjid);
 char *compose_jid(const char *username, const char *servername,
                   const char *resource);
 gboolean jid_equal(const char *jid1, const char *jid2);
--- a/mcabber/src/xmpp.c	Sun Oct 11 20:06:47 2009 +0200
+++ b/mcabber/src/xmpp.c	Sun Oct 11 20:58:20 2009 +0200
@@ -852,24 +852,25 @@
 static void connection_open_cb(LmConnection *connection, gboolean success,
                                gpointer user_data)
 {
-  const char *userjid, *password, *resource, *servername;
+  const char *username, *password, *resource, *servername;
   GError *error;
 
   if (success) {
     servername = settings_opt_get("server");
-    userjid    = settings_opt_get("jid");
+    username   = jid_get_username(settings_opt_get("jid"));
     password   = settings_opt_get("password");
     resource   = strchr(lm_connection_get_jid(connection),
                         JID_RESOURCE_SEPARATOR);
     if (resource)
       resource++;
 
-    if (!lm_connection_authenticate(lconnection, userjid, password, resource,
+    if (!lm_connection_authenticate(lconnection, username, password, resource,
                                     connection_auth_cb, NULL, FALSE, &error)) {
       scr_LogPrint(LPRINT_LOGNORM, "Failed to authenticate: %s\n",
                    error->message);
       _try_to_reconnect();
     }
+    g_free(username);
   } else {
     scr_LogPrint(LPRINT_LOGNORM, "There was an error while connecting.");
     _try_to_reconnect();