--- 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();