diff libpurple/protocols/jabber/jabber.c @ 25237:401f548e3544

propagate from branch 'im.pidgin.pidgin' (head df6eba32e5b6b34d7483cbfb7e9f2e4c836ac35f) to branch 'org.darkrain42.pidgin.buddy-add' (head 6831808999a270f8c1a128c7430a73d3dc0bfae2)
author Paul Aurich <paul@darkrain42.org>
date Sun, 21 Dec 2008 18:32:37 +0000
parents a0b89076a163
children 0700833f0c5d 7a9306bf1110 4e8748f3374f
line wrap: on
line diff
--- a/libpurple/protocols/jabber/jabber.c	Sat Nov 29 18:46:49 2008 +0000
+++ b/libpurple/protocols/jabber/jabber.c	Sun Dec 21 18:32:37 2008 +0000
@@ -153,6 +153,9 @@
 	if (*input == '\0')
 		return NULL;
 
+	if (strstr(input, "__HOSTNAME__") == NULL)
+		return g_strdup(input);
+
 	/* Replace __HOSTNAME__ with hostname */
 	if (gethostname(hostname, sizeof(hostname) - 1)) {
 		purple_debug_warning("jabber", "gethostname: %s\n", g_strerror(errno));
@@ -197,7 +200,7 @@
 		if (requested_resource != NULL) {
 			resource = xmlnode_new_child(bind, "resource");
 			xmlnode_insert_data(resource, requested_resource, -1);
-			free(requested_resource);
+			g_free(requested_resource);
 		}
 
 		jabber_iq_set_callback(iq, jabber_bind_result_cb, NULL);
@@ -1410,6 +1413,15 @@
 			if(js->protocol_version == JABBER_PROTO_0_9 && js->registration) {
 				jabber_register_start(js);
 			} else if(js->auth_type == JABBER_AUTH_IQ_AUTH) {
+				/* with dreamhost's xmpp server at least, you have to
+				   specify a resource or you will get a "406: Not
+				   Acceptable"
+				*/
+				if(!js->user->resource || *js->user->resource == '\0') {
+					g_free(js->user->resource);
+					js->user->resource = g_strdup("Home");
+				}
+
 				jabber_auth_start_old(js);
 			}
 			break;