--- a/libpurple/protocols/jabber/jabber.c Mon Feb 28 09:19:34 2011 +0000
+++ b/libpurple/protocols/jabber/jabber.c Mon Mar 07 06:42:57 2011 +0000
@@ -924,25 +924,24 @@
PurpleConnection *gc = purple_account_get_connection(account);
PurplePresence *presence;
js = gc->proto_data = g_new0(JabberStream, 1);
- user = g_strdup(purple_account_get_username(account));
+ username = purple_account_get_username(account); /* jabber_id_new doesn't accept "user@domain/" as valid */
- slash = strchr(user, '/');
+ slash = strchr(username, '/'); if (slash && *(slash + 1) == '\0')
- js->user = jabber_id_new(user);
+ js->user = jabber_id_new(username); purple_connection_error_reason(gc,
PURPLE_CONNECTION_ERROR_INVALID_SETTINGS,
/* Destroying the connection will free the JabberStream */
@@ -951,7 +950,6 @@
purple_connection_error_reason(gc,
PURPLE_CONNECTION_ERROR_INVALID_SETTINGS,
_("Invalid XMPP ID. Username portion must be set."));
/* Destroying the connection will free the JabberStream */
@@ -960,7 +958,6 @@
purple_connection_error_reason(gc,
PURPLE_CONNECTION_ERROR_INVALID_SETTINGS,
_("Invalid XMPP ID. Domain must be set."));
/* Destroying the connection will free the JabberStream */
@@ -971,10 +968,9 @@
/* This is overridden during binding, but we need it here
* in case the server only does legacy non-sasl auth!.
- purple_connection_set_display_name(gc, user);
- js->user_jb = jabber_buddy_find(js, user, TRUE);
+ purple_connection_set_display_name(gc, username); + js->user_jb = jabber_buddy_find(js, username, TRUE); /* This basically *can't* fail, but for good measure... */
purple_connection_error_reason(gc,