From: Mark D. <the...@us...> - 2005-10-31 06:06:21
|
Update of /cvsroot/gaim/gaim/src/protocols/bonjour In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23887/src/protocols/bonjour Modified Files: bonjour.c dns_sd.c dns_sd.h Log Message: Better error handling for Howl when your mDNS daemon is not running Index: bonjour.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/bonjour/bonjour.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -p -r1.15 -r1.16 --- bonjour.c 26 Oct 2005 10:32:06 -0000 1.15 +++ bonjour.c 31 Oct 2005 06:06:13 -0000 1.16 @@ -88,7 +88,7 @@ bonjour_login(GaimAccount *account) if (bonjour_jabber_start(bd->jabber_data) == -1) { /* Send a message about the connection error */ - gaim_debug_error("bonjour", "Unable to listen to iChat connections"); + gaim_debug_error("bonjour", "Unable to listen for incoming IM connections"); /* Free the data */ g_free(bd->jabber_data); @@ -121,7 +121,11 @@ bonjour_login(GaimAccount *account) bd->dns_sd_data->msg = g_strdup(gaim_status_get_attr_string(status, "message")); bd->dns_sd_data->account = account; - bonjour_dns_sd_start(bd->dns_sd_data); + if (!bonjour_dns_sd_start(bd->dns_sd_data)) + { + gaim_connection_error(gc, _("Unable to establish connection with the local mDNS server. Is it running?")); + return; + } /* Create a group for bonjour buddies */ bonjour_group = gaim_group_new(BONJOUR_GROUP_NAME); Index: dns_sd.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/bonjour/dns_sd.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -p -r1.10 -r1.11 --- dns_sd.c 26 Oct 2005 00:34:26 -0000 1.10 +++ dns_sd.c 31 Oct 2005 06:06:14 -0000 1.11 @@ -238,7 +238,7 @@ _dns_sd_publish(BonjourDnsSd *data, Publ /* Fill the data for the service */ if (sw_text_record_init(&dns_data) != SW_OKAY) { - gaim_debug_error("bonjour", "Unable to initialize the data for the mDNS."); + gaim_debug_error("bonjour", "Unable to initialize the data for the mDNS.\n"); return -1; } @@ -334,7 +334,7 @@ bonjour_dns_sd_send_status(BonjourDnsSd * Advertise our presence within the dns-sd daemon and start browsing * for other bonjour peers. */ -void +gboolean bonjour_dns_sd_start(BonjourDnsSd *data) { GaimAccount *account; @@ -345,12 +345,14 @@ bonjour_dns_sd_start(BonjourDnsSd *data) account = data->account; gc = gaim_account_get_connection(account); - /* Initilizations of the dns-sd data and session */ + /* Initialize the dns-sd data and session */ data->session = malloc(sizeof(sw_discovery)); if (sw_discovery_init(data->session) != SW_OKAY) { - gaim_debug_error("bonjour", "Unable to initialize a mDNS session."); - return; + free(data->session); + data->session = NULL; + gaim_debug_error("bonjour", "Unable to initialize an mDNS session.\n"); + return FALSE; } /* Publish our bonjour IM client at the mDNS daemon */ @@ -361,7 +363,7 @@ bonjour_dns_sd_start(BonjourDnsSd *data) data->account, &session_id) != SW_OKAY) { gaim_debug_error("bonjour", "Unable to get service."); - return; + return FALSE; } /* Get the socket that communicates with the mDNS daemon and bind it to a */ @@ -369,22 +371,25 @@ bonjour_dns_sd_start(BonjourDnsSd *data) dns_sd_socket = sw_discovery_socket(*(data->session)); gc->inpa = gaim_input_add(dns_sd_socket, GAIM_INPUT_READ, _dns_sd_handle_packets, data->session); + + return TRUE; } /** * Unregister the "_presence._tcp" service at the mDNS daemon. */ -int +void bonjour_dns_sd_stop(BonjourDnsSd *data) { GaimAccount *account; GaimConnection *gc; + if (data->session == NULL) + return; + sw_discovery_cancel(*(data->session), data->session_id); account = data->account; gc = gaim_account_get_connection(account); gaim_input_remove(gc->inpa); - - return 0; } Index: dns_sd.h =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/bonjour/dns_sd.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -p -r1.4 -r1.5 --- dns_sd.h 14 Sep 2005 02:58:30 -0000 1.4 +++ dns_sd.h 31 Oct 2005 06:06:14 -0000 1.5 @@ -73,11 +73,11 @@ void bonjour_dns_sd_send_status(BonjourD * Advertise our presence within the dns-sd daemon and start * browsing for other bonjour peers. */ -void bonjour_dns_sd_start(BonjourDnsSd *data); +gboolean bonjour_dns_sd_start(BonjourDnsSd *data); /** * Unregister the "_presence._tcp" service at the mDNS daemon. */ -int bonjour_dns_sd_stop(BonjourDnsSd *data); +void bonjour_dns_sd_stop(BonjourDnsSd *data); #endif |