From: <the...@us...> - 2006-04-17 23:53:48
|
Revision: 16050 Author: thekingant Date: 2006-04-17 16:53:40 -0700 (Mon, 17 Apr 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16050&view=rev Log Message: ----------- This should fix Coverity CID 49: buddy was sometimes leaking in _resolve_reply() in src/protocols/bonjour/dns_sd.c Modified Paths: -------------- trunk/src/protocols/bonjour/buddy.c trunk/src/protocols/bonjour/buddy.h trunk/src/protocols/bonjour/dns_sd.c Modified: trunk/src/protocols/bonjour/buddy.c =================================================================== --- trunk/src/protocols/bonjour/buddy.c 2006-04-17 19:28:15 UTC (rev 16049) +++ trunk/src/protocols/bonjour/buddy.c 2006-04-17 23:53:40 UTC (rev 16050) @@ -27,9 +27,10 @@ * Creates a new buddy. */ BonjourBuddy * -bonjour_buddy_new(gchar *name, gchar *first, gint port_p2pj, - gchar *phsh, gchar *status, gchar *email, gchar *last, gchar *jid, gchar *AIM, - gchar *vc, gchar *ip, gchar *msg) +bonjour_buddy_new(const gchar *name, const gchar *first, gint port_p2pj, + const gchar *phsh, const gchar *status, const gchar *email, + const gchar *last, const gchar *jid, const gchar *AIM, + const gchar *vc, const gchar *ip, const gchar *msg) { BonjourBuddy *buddy = malloc(sizeof(BonjourBuddy)); Modified: trunk/src/protocols/bonjour/buddy.h =================================================================== --- trunk/src/protocols/bonjour/buddy.h 2006-04-17 19:28:15 UTC (rev 16049) +++ trunk/src/protocols/bonjour/buddy.h 2006-04-17 23:53:40 UTC (rev 16050) @@ -43,9 +43,10 @@ /** * Creates a new buddy. */ -BonjourBuddy *bonjour_buddy_new(gchar *name, gchar *first, gint port_p2pj, - gchar *phsh, gchar *status, gchar *email, gchar *last, gchar *jid, gchar *AIM, - gchar *vc, gchar *ip, gchar *msg); +BonjourBuddy *bonjour_buddy_new(const gchar *name, const gchar *first, + gint port_p2pj, const gchar *phsh, const gchar *status, + const gchar *email, const gchar *last, const gchar *jid, + const gchar *AIM, const gchar *vc, const gchar *ip, const gchar *msg); /** * Check if all the compulsory buddy data is present. Modified: trunk/src/protocols/bonjour/dns_sd.c =================================================================== --- trunk/src/protocols/bonjour/dns_sd.c 2006-04-17 19:28:15 UTC (rev 16049) +++ trunk/src/protocols/bonjour/dns_sd.c 2006-04-17 23:53:40 UTC (rev 16050) @@ -143,11 +143,12 @@ /* Put the parameters of the text_record in a buddy and add the buddy to */ /* the buddy list */ - buddy = bonjour_buddy_new((gchar *)name, first, port_p2pj, phsh, + buddy = bonjour_buddy_new(name, first, port_p2pj, phsh, status, email, last, jid, AIM, vc, ip, msg); if (bonjour_buddy_check(buddy) == FALSE) { + bonjour_buddy_delete(buddy); return SW_DISCOVERY_E_UNKNOWN; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2006-07-01 22:32:24
|
Revision: 16390 Author: thekingant Date: 2006-07-01 15:32:20 -0700 (Sat, 01 Jul 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16390&view=rev Log Message: ----------- A small part of sf patch #1490646, from Jonty Wareing & Jono Cole "Fix & Enhance the Bonjour prpl" "Several instances of "magic strings" have been replaced with proper XML parsing code in the Bonjour prpl, allowing it to communicate with other Gaim clients (a misplaced space in one of the strings prevented this), and every other Bonjour chat client we can find. A fair amount of completely redundant code was also stripped, which in combination with the proper XML parsing allows the client to be far more flexible about Jabber errors in other clients." Modified Paths: -------------- trunk/src/protocols/bonjour/jabber.c trunk/src/protocols/bonjour/jabber.h Modified: trunk/src/protocols/bonjour/jabber.c =================================================================== --- trunk/src/protocols/bonjour/jabber.c 2006-07-01 18:39:33 UTC (rev 16389) +++ trunk/src/protocols/bonjour/jabber.c 2006-07-01 22:32:20 UTC (rev 16390) @@ -309,6 +309,7 @@ char *closed_conv_message; BonjourBuddy *bb = (BonjourBuddy*)gb->proto_data; gboolean closed_conversation = FALSE; + xmlnode *message_node = NULL; /* Read the data from the socket */ if ((message_length = _read_data(socket, &message)) == -1) { @@ -325,34 +326,39 @@ } } - /* Check if the start of the doctype has been received, if not check that the current */ - /* data is the doctype */ - if (!(bb->conversation->start_step_one)) - { - if (g_str_has_prefix(message, DOCTYPE_DECLARATION)) - { - bb->conversation->start_step_one = TRUE; - } - } + /* Parse the message into an XMLnode for analysis */ + message_node = xmlnode_from_str(message, strlen(message)); /* Check if the start of the stream has been received, if not check that the current */ /* data is the start of the stream */ - if (!(bb->conversation->start_step_two)) + if (!(bb->conversation->stream_started)) { - if (g_str_has_suffix(message, STREAM_START)) { - bb->conversation->start_step_two = TRUE; - - /* If we haven't done it yet, we have to sent the start of the stream to the other buddy */ - if (!(bb->conversation->stream_started)) { - if (send(bb->conversation->socket, DOCTYPE, strlen(DOCTYPE), 0) == -1) { - gaim_debug_error("bonjour", "Unable to start a conversation with %s\n", bb->name); - } + /* Check if this is the start of the stream */ + if ((message_node != NULL) && + g_ascii_strcasecmp(xmlnode_get_attrib(message_node, "xmlns"), "jabber:client") && + (xmlnode_get_attrib(message_node,"xmlns:stream") != NULL)) + { + bb->conversation->stream_started = TRUE; + } + else + { + /* TODO: This needs to be nonblocking! */ + if (send(bb->conversation->socket, DOCTYPE, strlen(DOCTYPE), 0) == -1) + { + gaim_debug_error("bonjour", "Unable to start a conversation with %s\n", bb->name); } + else + { + bb->conversation->stream_started = TRUE; + } } - return; } - /* Check that this is not the end of the conversation */ + /* + * Check that this is not the end of the conversation. This is + * using a magic string, but xmlnode won't play nice when just + * parsing an end tag + */ if (g_str_has_prefix(message, STREAM_END) || (closed_conversation == TRUE)) { /* Close the socket, clear the watcher and free memory */ if (bb->conversation != NULL) { @@ -372,6 +378,8 @@ /* Parse the message to get the data and send to the ui */ _jabber_parse_and_write_message_to_ui(message, account->gc, gb); } + + xmlnode_free(message_node); } static void @@ -419,8 +427,6 @@ { bb->conversation = g_new(BonjourJabberConversation, 1); bb->conversation->socket = client_socket; - bb->conversation->start_step_one = FALSE; - bb->conversation->start_step_two = FALSE; bb->conversation->stream_started = FALSE; bb->conversation->buddy_name = g_strdup(gb->name); bb->conversation->message_id = 1; @@ -553,12 +559,10 @@ { bb->conversation = g_new(BonjourJabberConversation, 1); bb->conversation->socket = _connect_to_buddy(gb); - bb->conversation->start_step_one = FALSE; - bb->conversation->start_step_two = FALSE; bb->conversation->stream_started = FALSE; bb->conversation->buddy_name = g_strdup(gb->name); bb->conversation->watcher_id = gaim_input_add(bb->conversation->socket, - GAIM_INPUT_READ, _client_socket_handler, gb); + GAIM_INPUT_READ, _client_socket_handler, gb); } /* Check if the stream for the conversation has been started */ Modified: trunk/src/protocols/bonjour/jabber.h =================================================================== --- trunk/src/protocols/bonjour/jabber.h 2006-07-01 18:39:33 UTC (rev 16389) +++ trunk/src/protocols/bonjour/jabber.h 2006-07-01 22:32:20 UTC (rev 16390) @@ -28,11 +28,8 @@ #include "account.h" -#define DOCTYPE_DECLARATION "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>" -#define STREAM_START "<stream:stream xmlns=\"jabber:client\" xmlns:stream=\"http://etherx.jabber.org/streams\">" -#define CONVERSATION_START "<?xml version=\"1.0\" encoding=\"UTF-8\" ?><stream:stream xmlns=\"jabber:client\" xmlns:stream=\"http://etherx.jabber.org/streams\">" #define STREAM_END "</stream:stream>" -#define DOCTYPE "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<stream:stream xmlns=\"jabber:client\" xmlns:stream=\"http://etherx.jabber.org/streams\" >" +#define DOCTYPE "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<stream:stream xmlns=\"jabber:client\" xmlns:stream=\"http://etherx.jabber.org/streams\">" typedef struct _BonjourJabber { @@ -47,8 +44,6 @@ gint socket; gint watcher_id; gchar* buddy_name; - gboolean start_step_one; - gboolean start_step_two; gboolean stream_started; gint message_id; } BonjourJabberConversation; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2006-07-02 21:52:15
|
Revision: 16400 Author: thekingant Date: 2006-07-02 14:52:06 -0700 (Sun, 02 Jul 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16400&view=rev Log Message: ----------- part of sf patch #1490646, from Jonty Wareing & Jono Cole "The user can now specify their AIM and Jabber ID in the preferences" Modified Paths: -------------- trunk/src/protocols/bonjour/bonjour.c trunk/src/protocols/bonjour/dns_sd.c Modified: trunk/src/protocols/bonjour/bonjour.c =================================================================== --- trunk/src/protocols/bonjour/bonjour.c 2006-07-02 21:12:54 UTC (rev 16399) +++ trunk/src/protocols/bonjour/bonjour.c 2006-07-02 21:52:06 UTC (rev 16400) @@ -127,8 +127,8 @@ bd->dns_sd_data->phsh = g_strdup(""); bd->dns_sd_data->email = g_strdup(gaim_account_get_string(account, "email", "")); bd->dns_sd_data->vc = g_strdup(""); - bd->dns_sd_data->jid = g_strdup(""); - bd->dns_sd_data->AIM = g_strdup(""); + bd->dns_sd_data->jid = g_strdup(gaim_account_get_string(account, "jid", "")); + bd->dns_sd_data->AIM = g_strdup(gaim_account_get_string(account, "AIM", "")); status = gaim_account_get_active_status(account); presence = gaim_account_get_presence(account); @@ -588,6 +588,12 @@ option = gaim_account_option_string_new(_("E-mail"), "email", ""); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); + option = gaim_account_option_string_new(_("AIM Account"), "AIM", ""); + prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); + + option = gaim_account_option_string_new(_("Jabber Account"), "jid", ""); + prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); + my_protocol = plugin; } Modified: trunk/src/protocols/bonjour/dns_sd.c =================================================================== --- trunk/src/protocols/bonjour/dns_sd.c 2006-07-02 21:12:54 UTC (rev 16399) +++ trunk/src/protocols/bonjour/dns_sd.c 2006-07-02 21:52:06 UTC (rev 16400) @@ -251,12 +251,20 @@ sw_text_record_add_key_and_string_value(dns_data, "port.p2pj", BONJOUR_DEFAULT_PORT); sw_text_record_add_key_and_string_value(dns_data, "phsh", data->phsh); sw_text_record_add_key_and_string_value(dns_data, "status", data->status); - sw_text_record_add_key_and_string_value(dns_data, "msg", data->msg); - sw_text_record_add_key_and_string_value(dns_data, "email", data->email); sw_text_record_add_key_and_string_value(dns_data, "vc", data->vc); - sw_text_record_add_key_and_string_value(dns_data, "jid", data->jid); - sw_text_record_add_key_and_string_value(dns_data, "AIM", data->AIM); + if ((data->email != NULL) && (*data->email != '\0')) + sw_text_record_add_key_and_string_value(dns_data, "email", data->email); + + if ((data->jid != NULL) && (*data->jid != '\0')) + sw_text_record_add_key_and_string_value(dns_data, "jid", data->jid); + + if ((data->AIM != NULL) && (*data->AIM != '\0')) + sw_text_record_add_key_and_string_value(dns_data, "AIM", data->AIM); + + if ((data->msg != NULL) && (*data->msg != '\0')) + sw_text_record_add_key_and_string_value(dns_data, "msg", data->msg); + /* Publish the service */ switch (type) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2006-07-03 00:37:48
|
Revision: 16406 Author: thekingant Date: 2006-07-02 17:37:41 -0700 (Sun, 02 Jul 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16406&view=rev Log Message: ----------- More of sf patch #1490646, from Jonty Wareing & Jono Cole "The screen name + hostname of the sending user is sent in the outgoing jabber message, fixing a sporadic problem with iChat. The port in use has been fixed to the one described in the Bonjour specification and can no longer be changed in the prpl preferences - modifiying this just stops the client from being able to start a chat. The option for a buddy icon has been removed for now as no code actually uses it yet - we plan to change this in the future. This update also introduces automatic local port retry for up to ten attempts if the port is in use (e.g. if multiple instances of gaim are running)." Modified Paths: -------------- trunk/src/protocols/bonjour/bonjour.c trunk/src/protocols/bonjour/bonjour.h trunk/src/protocols/bonjour/buddy.c trunk/src/protocols/bonjour/dns_sd.c trunk/src/protocols/bonjour/dns_sd.h trunk/src/protocols/bonjour/jabber.c trunk/src/protocols/bonjour/jabber.h Modified: trunk/src/protocols/bonjour/bonjour.c =================================================================== --- trunk/src/protocols/bonjour/bonjour.c 2006-07-02 23:56:44 UTC (rev 16405) +++ trunk/src/protocols/bonjour/bonjour.c 2006-07-03 00:37:41 UTC (rev 16406) @@ -103,7 +103,7 @@ /* Start waiting for jabber connections (iChat style) */ bd->jabber_data = g_new(BonjourJabber, 1); - bd->jabber_data->port = gaim_account_get_int(account, "port", BONJOUR_DEFAULT_PORT_INT); + bd->jabber_data->port = BONJOUR_DEFAULT_PORT_INT; bd->jabber_data->account = account; if (bonjour_jabber_start(bd->jabber_data) == -1) { @@ -123,7 +123,7 @@ bd->dns_sd_data->version = g_strdup("1"); bd->dns_sd_data->first = g_strdup(gaim_account_get_string(account, "first", default_firstname)); bd->dns_sd_data->last = g_strdup(gaim_account_get_string(account, "last", default_lastname)); - bd->dns_sd_data->port_p2pj = gaim_account_get_int(account, "port", BONJOUR_DEFAULT_PORT_INT); + bd->dns_sd_data->port_p2pj = bd->jabber_data->port; bd->dns_sd_data->phsh = g_strdup(""); bd->dns_sd_data->email = g_strdup(gaim_account_get_string(account, "email", "")); bd->dns_sd_data->vc = g_strdup(""); @@ -356,7 +356,8 @@ OPT_PROTO_NO_PASSWORD, NULL, /* user_splits */ NULL, /* protocol_options */ - {"png", 0, 0, 96, 96, GAIM_ICON_SCALE_DISPLAY}, /* icon_spec */ + /* {"png", 0, 0, 96, 96, GAIM_ICON_SCALE_DISPLAY}, */ /* icon_spec */ + NO_BUDDY_ICONS, /* not yet */ /* icon_spec */ bonjour_list_icon, /* list_icon */ bonjour_list_emblems, /* list_emblems */ bonjour_status_text, /* status_text */ @@ -576,9 +577,6 @@ prpl_info.user_splits = g_list_append(prpl_info.user_splits, split); /* Creating the options for the protocol */ - option = gaim_account_option_int_new(_("Port"), "port", 5298); - prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); - option = gaim_account_option_string_new(_("First name"), "first", default_firstname); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); Modified: trunk/src/protocols/bonjour/bonjour.h =================================================================== --- trunk/src/protocols/bonjour/bonjour.h 2006-07-02 23:56:44 UTC (rev 16405) +++ trunk/src/protocols/bonjour/bonjour.h 2006-07-03 00:37:41 UTC (rev 16406) @@ -40,6 +40,8 @@ #define BONJOUR_STATUS_ID_AVAILABLE "available" #define BONJOUR_STATUS_ID_AWAY "away" +#define BONJOUR_DEFAULT_PORT_INT 5298 + typedef struct _BonjourData { BonjourDnsSd *dns_sd_data; Modified: trunk/src/protocols/bonjour/buddy.c =================================================================== --- trunk/src/protocols/bonjour/buddy.c 2006-07-02 23:56:44 UTC (rev 16405) +++ trunk/src/protocols/bonjour/buddy.c 2006-07-03 00:37:41 UTC (rev 16406) @@ -69,10 +69,6 @@ return FALSE; } - if (buddy->port_p2pj == -1) { - return FALSE; - } - if (buddy->status == NULL) { return FALSE; } Modified: trunk/src/protocols/bonjour/dns_sd.c =================================================================== --- trunk/src/protocols/bonjour/dns_sd.c 2006-07-02 23:56:44 UTC (rev 16405) +++ trunk/src/protocols/bonjour/dns_sd.c 2006-07-03 00:37:41 UTC (rev 16406) @@ -21,27 +21,6 @@ #include "buddy.h" #include "debug.h" -/* Private data */ - -typedef struct _dns_sd_packet -{ - gchar *name; - gchar *txtvers; - gchar *version; - gchar *first; - gchar *last; - gint port_p2pj; - gchar *phsh; - gchar *status; - gchar *message; - gchar *email; - gchar *vc; - gchar *jid; - gchar *AIM; -} dns_sd_packet; - -/* End private data */ - /* Private functions */ static sw_result HOWL_API @@ -83,7 +62,6 @@ gchar *txtvers = NULL; gchar *version = NULL; gchar *first = NULL; - gint port_p2pj = -1; gchar *phsh = NULL; gchar *status = NULL; gchar *email = NULL; @@ -119,8 +97,6 @@ version = g_strdup(value); } else if (strcmp(key, "1st") == 0) { first = g_strdup(value); - } else if (strcmp(key, "port.p2pj") == 0) { - port_p2pj = atoi(value); } else if (strcmp(key, "status") == 0) { status = g_strdup(value); } else if (strcmp(key, "email") == 0) { @@ -143,7 +119,7 @@ /* Put the parameters of the text_record in a buddy and add the buddy to */ /* the buddy list */ - buddy = bonjour_buddy_new(name, first, port_p2pj, phsh, + buddy = bonjour_buddy_new(name, first, port, phsh, status, email, last, jid, AIM, vc, ip, msg); if (bonjour_buddy_check(buddy) == FALSE) @@ -200,7 +176,7 @@ gaim_debug_warning("bonjour", "_browser_reply --> Remove domain\n"); break; case SW_DISCOVERY_BROWSE_ADD_SERVICE: - /* A new peer has join the network and uses iChat bonjour */ + /* A new peer has joined the network and uses iChat bonjour */ gaim_debug_info("bonjour", "_browser_reply --> Add service\n"); if (g_ascii_strcasecmp(name, account->username) != 0) { @@ -235,6 +211,7 @@ { sw_text_record dns_data; sw_result publish_result = SW_OKAY; + char portstring[6]; /* Fill the data for the service */ if (sw_text_record_init(&dns_data) != SW_OKAY) @@ -243,16 +220,20 @@ return -1; } + /* Convert the port to a string */ + snprintf(portstring, sizeof(portstring), "%d", data->port_p2pj); + + /* Publish standard records */ sw_text_record_add_key_and_string_value(dns_data, "txtvers", data->txtvers); sw_text_record_add_key_and_string_value(dns_data, "version", data->version); sw_text_record_add_key_and_string_value(dns_data, "1st", data->first); sw_text_record_add_key_and_string_value(dns_data, "last", data->last); - /* sw_text_record_add_key_and_string_value(dns_data, "port.p2pj", itoa(data->port_p2pj)); */ - sw_text_record_add_key_and_string_value(dns_data, "port.p2pj", BONJOUR_DEFAULT_PORT); + sw_text_record_add_key_and_string_value(dns_data, "port.p2pj", portstring); sw_text_record_add_key_and_string_value(dns_data, "phsh", data->phsh); sw_text_record_add_key_and_string_value(dns_data, "status", data->status); sw_text_record_add_key_and_string_value(dns_data, "vc", data->vc); + /* Publish extra records */ if ((data->email != NULL) && (*data->email != '\0')) sw_text_record_add_key_and_string_value(dns_data, "email", data->email); @@ -280,7 +261,7 @@ } if (publish_result != SW_OKAY) { - gaim_debug_error("bonjour", "Unable to publish or change the status of the _presence._tcp service."); + gaim_debug_error("bonjour", "Unable to publish or change the status of the _presence._tcp service.\n"); return -1; } Modified: trunk/src/protocols/bonjour/dns_sd.h =================================================================== --- trunk/src/protocols/bonjour/dns_sd.h 2006-07-02 23:56:44 UTC (rev 16405) +++ trunk/src/protocols/bonjour/dns_sd.h 2006-07-03 00:37:41 UTC (rev 16406) @@ -21,8 +21,6 @@ #include <glib.h> #include "account.h" -#define BONJOUR_DEFAULT_PORT "5298" -#define BONJOUR_DEFAULT_PORT_INT 5298 #define ICHAT_SERVICE "_presence._tcp." /** Modified: trunk/src/protocols/bonjour/jabber.c =================================================================== --- trunk/src/protocols/bonjour/jabber.c 2006-07-02 23:56:44 UTC (rev 16405) +++ trunk/src/protocols/bonjour/jabber.c 2006-07-03 00:37:41 UTC (rev 16406) @@ -450,6 +450,8 @@ { struct sockaddr_in my_addr; int yes = 1; + int i; + gboolean bind_successful; /* Open a listening socket for incoming conversations */ if ((data->socket = socket(PF_INET, SOCK_STREAM, 0)) < 0) @@ -469,19 +471,33 @@ memset(&my_addr, 0, sizeof(struct sockaddr_in)); my_addr.sin_family = PF_INET; - my_addr.sin_port = htons(data->port); - if (bind(data->socket, (struct sockaddr*)&my_addr, sizeof(struct sockaddr)) != 0) + /* Attempt to find a free port */ + bind_successful = FALSE; + for (i = 0; i < 10; i++) { + my_addr.sin_port = htons(data->port); + if (bind(data->socket, (struct sockaddr*)&my_addr, sizeof(struct sockaddr)) == 0) + { + bind_successful = TRUE; + break; + } + data->port++; + } + + /* On no! We tried 10 ports and could not bind to ANY of them */ + if (!bind_successful) + { gaim_debug_error("bonjour", "Cannot bind socket: %s\n", strerror(errno)); - gaim_connection_error(data->account->gc, _("Cannot bind socket to port")); + gaim_connection_error(data->account->gc, _("Could not bind socket to port")); return -1; } + /* Attempt to listen on the bound socket */ if (listen(data->socket, 10) != 0) { gaim_debug_error("bonjour", "Cannot listen on socket: %s\n", strerror(errno)); - gaim_connection_error(data->account->gc, _("Cannot listen on socket")); + gaim_connection_error(data->account->gc, _("Could not listen on socket")); return -1; } @@ -498,7 +514,7 @@ /* Open a watcher in the socket we have just opened */ data->watcher_id = gaim_input_add(data->socket, GAIM_INPUT_READ, _server_socket_handler, data); - return 0; + return data->port; } int @@ -547,6 +563,7 @@ message_node = xmlnode_new("message"); xmlnode_set_attrib(message_node, "to", ((BonjourBuddy*)(gb->proto_data))->name); + xmlnode_set_attrib(message_node, "from", data->account->username); xmlnode_set_attrib(message_node, "type", "chat"); xmlnode_insert_child(message_node, message_body_node); xmlnode_insert_child(message_node, message_html_node); Modified: trunk/src/protocols/bonjour/jabber.h =================================================================== --- trunk/src/protocols/bonjour/jabber.h 2006-07-02 23:56:44 UTC (rev 16405) +++ trunk/src/protocols/bonjour/jabber.h 2006-07-03 00:37:41 UTC (rev 16406) @@ -49,8 +49,10 @@ } BonjourJabberConversation; /** - * Start listening for jabber connections. Returns 0 if the connection could be - * stablished, -1 if a problem appears. + * Start listening for jabber connections. + * + * @return -1 if there was a problem, else returns the listening + * port number. */ gint bonjour_jabber_start(BonjourJabber *data); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2006-07-03 01:39:55
|
Revision: 16408 Author: thekingant Date: 2006-07-02 18:39:51 -0700 (Sun, 02 Jul 2006) ViewCVS: http://svn.sourceforge.net/gaim/?rev=16408&view=rev Log Message: ----------- Get rid of an assertion failure that I hit Modified Paths: -------------- trunk/src/protocols/bonjour/bonjour.c trunk/src/protocols/bonjour/jabber.c Modified: trunk/src/protocols/bonjour/bonjour.c =================================================================== --- trunk/src/protocols/bonjour/bonjour.c 2006-07-03 00:38:12 UTC (rev 16407) +++ trunk/src/protocols/bonjour/bonjour.c 2006-07-03 01:39:51 UTC (rev 16408) @@ -556,7 +556,7 @@ #endif /* Try to figure out a good host name to use */ - /* TODO: Avoiding 'localhost,' if possible */ + /* TODO: Avoid 'localhost,' if possible */ if (gethostname(hostname, 255) != 0) { gaim_debug_warning("bonjour", "Error %d when getting host name. Using \"localhost.\"\n", errno); strcpy(hostname, "localhost"); Modified: trunk/src/protocols/bonjour/jabber.c =================================================================== --- trunk/src/protocols/bonjour/jabber.c 2006-07-03 00:38:12 UTC (rev 16407) +++ trunk/src/protocols/bonjour/jabber.c 2006-07-03 01:39:51 UTC (rev 16408) @@ -379,7 +379,8 @@ _jabber_parse_and_write_message_to_ui(message, account->gc, gb); } - xmlnode_free(message_node); + if (message_node != NULL) + xmlnode_free(message_node); } static void This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |