diff options
Diffstat (limited to 'libpurple/protocols/bonjour/jabber.c')
-rw-r--r-- | libpurple/protocols/bonjour/jabber.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/libpurple/protocols/bonjour/jabber.c b/libpurple/protocols/bonjour/jabber.c index 7b5496faef..9ec3b49125 100644 --- a/libpurple/protocols/bonjour/jabber.c +++ b/libpurple/protocols/bonjour/jabber.c @@ -425,7 +425,7 @@ _client_socket_handler(gpointer data, gint socket, PurpleInputCondition conditio bonjour_jabber_close_conversation(bconv); if (bconv->pb != NULL) { BonjourBuddy *bb = purple_buddy_get_protocol_data(bconv->pb); - + if(bb != NULL) bb->conversation = NULL; } @@ -534,7 +534,7 @@ static gboolean bonjour_jabber_send_stream_init(BonjourJabberConversation *bconv if (bname == NULL) bname = ""; - stream_start = g_strdup_printf(DOCTYPE, purple_account_get_username(bconv->account), bname); + stream_start = g_strdup_printf(DOCTYPE, bonjour_get_jid(bconv->account), bname); len = strlen(stream_start); bconv->sent_stream_start = PARTIALLY_SENT; @@ -774,6 +774,10 @@ bonjour_jabber_start(BonjourJabber *jdata) #ifdef PF_INET6 if (jdata->socket6 != -1) { struct sockaddr_in6 addr6; +#ifdef IPV6_V6ONLY + int on = 1; + setsockopt(jdata->socket6, IPPROTO_IPV6, IPV6_V6ONLY, &on, sizeof(on)); +#endif memset(&addr6, 0, sizeof(addr6)); addr6.sin6_family = AF_INET6; addr6.sin6_port = htons(jdata->port); @@ -1044,7 +1048,7 @@ bonjour_jabber_send_message(BonjourJabber *jdata, const gchar *to, const gchar * message_node = xmlnode_new("message"); xmlnode_set_attrib(message_node, "to", bb->name); - xmlnode_set_attrib(message_node, "from", purple_account_get_username(jdata->account)); + xmlnode_set_attrib(message_node, "from", bonjour_get_jid(jdata->account)); xmlnode_set_attrib(message_node, "type", "chat"); /* Enclose the message from the UI within a "font" node */ @@ -1259,7 +1263,7 @@ check_if_blocked(PurpleBuddy *pb) for(l = acc->deny; l != NULL; l = l->next) { const gchar *name = purple_buddy_get_name(pb); - const gchar *username = purple_account_get_username(acc); + const gchar *username = bonjour_get_jid(acc); if(!purple_utf8_strcasecmp(name, (char *)l->data)) { purple_debug_info("bonjour", "%s has been blocked by %s.\n", name, username); |