comparison libpurple/protocols/bonjour/mdns_howl.c @ 19573:affacee881e8

Fix a couple potential leaks and prevent the avahi record resolver from being freed multiple times. Thanks to Lennart from the Avahi team for suggestions on how to improve the avahi implementation.
author Daniel Atallah <daniel.atallah@gmail.com>
date Sun, 02 Sep 2007 17:54:44 +0000
parents c1546f6c0432
children 44b4e8bd759b
comparison
equal deleted inserted replaced
19572:cfc4e56a6a1e 19573:affacee881e8
69 sw_text_record_iterator iterator; 69 sw_text_record_iterator iterator;
70 char key[SW_TEXT_RECORD_MAX_LEN]; 70 char key[SW_TEXT_RECORD_MAX_LEN];
71 char value[SW_TEXT_RECORD_MAX_LEN]; 71 char value[SW_TEXT_RECORD_MAX_LEN];
72 sw_uint32 value_length; 72 sw_uint32 value_length;
73 73
74 /* TODO: We want to keep listening for updates*/
74 sw_discovery_cancel(discovery, oid); 75 sw_discovery_cancel(discovery, oid);
75 76
76 /* create a buddy record */ 77 /* create a buddy record */
77 buddy = bonjour_buddy_new(name, account); 78 buddy = bonjour_buddy_new(name, account);
78 79
98 bonjour_buddy_delete(buddy); 99 bonjour_buddy_delete(buddy);
99 return SW_DISCOVERY_E_UNKNOWN; 100 return SW_DISCOVERY_E_UNKNOWN;
100 } 101 }
101 102
102 /* Add or update the buddy in our buddy list */ 103 /* Add or update the buddy in our buddy list */
103 bonjour_buddy_add_to_purple(buddy); 104 bonjour_buddy_add_to_purple(buddy, NULL);
104 105
105 return SW_OKAY; 106 return SW_OKAY;
106 } 107 }
107 108
108 static sw_result HOWL_API 109 static sw_result HOWL_API
147 break; 148 break;
148 case SW_DISCOVERY_BROWSE_REMOVE_SERVICE: 149 case SW_DISCOVERY_BROWSE_REMOVE_SERVICE:
149 purple_debug_info("bonjour", "_browser_reply --> Remove service\n"); 150 purple_debug_info("bonjour", "_browser_reply --> Remove service\n");
150 gb = purple_find_buddy(account, name); 151 gb = purple_find_buddy(account, name);
151 if (gb != NULL) 152 if (gb != NULL)
152 {
153 bonjour_buddy_delete(gb->proto_data);
154 purple_blist_remove_buddy(gb); 153 purple_blist_remove_buddy(gb);
155 }
156 break; 154 break;
157 case SW_DISCOVERY_BROWSE_RESOLVED: 155 case SW_DISCOVERY_BROWSE_RESOLVED:
158 purple_debug_info("bonjour", "_browse_reply --> Resolved\n"); 156 purple_debug_info("bonjour", "_browse_reply --> Resolved\n");
159 break; 157 break;
160 default: 158 default: