Mercurial > pidgin
comparison libpurple/protocols/bonjour/jabber.c @ 21121:35b4f1dc4c8d
replace most calls to strerror with calls to g_strerror. strerror will return
a locale-specific string in the locale-specific encoding, which isn't
guaranteed to be UTF-8. g_strerror will always return a UTF-8 string.
I left gg and zephyr untouched, since gg doesn't include glib headers yet,
and zephyr does something weird with a #define for strerror. Someone more
familliar with those should take a look.
And the win32 guys should check and see if I screwed something up, since
they had strerror #defined to something else.
This should fix #2247 (and maybe some mystery crashes)
author | Nathan Walp <nwalp@pidgin.im> |
---|---|
date | Sat, 03 Nov 2007 17:52:28 +0000 |
parents | 8b74b226e023 |
children | 38cc722159ff |
comparison
equal
deleted
inserted
replaced
21120:0cc12e6909e2 | 21121:35b4f1dc4c8d |
---|---|
242 | 242 |
243 if (ret < 0 && errno == EAGAIN) | 243 if (ret < 0 && errno == EAGAIN) |
244 return; | 244 return; |
245 else if (ret <= 0) { | 245 else if (ret <= 0) { |
246 PurpleConversation *conv; | 246 PurpleConversation *conv; |
247 const char *error = strerror(errno); | 247 const char *error = g_strerror(errno); |
248 | 248 |
249 purple_debug_error("bonjour", "Error sending message to buddy %s error: %s\n", | 249 purple_debug_error("bonjour", "Error sending message to buddy %s error: %s\n", |
250 purple_buddy_get_name(pb), error ? error : "(null)"); | 250 purple_buddy_get_name(pb), error ? error : "(null)"); |
251 | 251 |
252 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, bb->name, pb->account); | 252 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, bb->name, pb->account); |
285 | 285 |
286 if (ret == -1 && errno == EAGAIN) | 286 if (ret == -1 && errno == EAGAIN) |
287 ret = 0; | 287 ret = 0; |
288 else if (ret <= 0) { | 288 else if (ret <= 0) { |
289 PurpleConversation *conv; | 289 PurpleConversation *conv; |
290 const char *error = strerror(errno); | 290 const char *error = g_strerror(errno); |
291 | 291 |
292 purple_debug_error("bonjour", "Error sending message to buddy %s error: %s\n", | 292 purple_debug_error("bonjour", "Error sending message to buddy %s error: %s\n", |
293 purple_buddy_get_name(pb), error ? error : "(null)"); | 293 purple_buddy_get_name(pb), error ? error : "(null)"); |
294 | 294 |
295 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, bb->name, pb->account); | 295 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, bb->name, pb->account); |
335 if ((len = recv(socket, message, sizeof(message) - 1, 0)) == -1) { | 335 if ((len = recv(socket, message, sizeof(message) - 1, 0)) == -1) { |
336 /* There have been an error reading from the socket */ | 336 /* There have been an error reading from the socket */ |
337 if (errno != EAGAIN) { | 337 if (errno != EAGAIN) { |
338 BonjourBuddy *bb = pb->proto_data; | 338 BonjourBuddy *bb = pb->proto_data; |
339 | 339 |
340 purple_debug_warning("bonjour", "receive error: %s\n", strerror(errno)); | 340 purple_debug_warning("bonjour", "receive error: %s\n", g_strerror(errno)); |
341 | 341 |
342 bonjour_jabber_close_conversation(bb->conversation); | 342 bonjour_jabber_close_conversation(bb->conversation); |
343 bb->conversation = NULL; | 343 bb->conversation = NULL; |
344 | 344 |
345 /* I guess we really don't need to notify the user. | 345 /* I guess we really don't need to notify the user. |
425 ret = send(source, ss->msg, len, 0); | 425 ret = send(source, ss->msg, len, 0); |
426 | 426 |
427 if (ret == -1 && errno == EAGAIN) | 427 if (ret == -1 && errno == EAGAIN) |
428 return; | 428 return; |
429 else if (ret <= 0) { | 429 else if (ret <= 0) { |
430 const char *err = strerror(errno); | 430 const char *err = g_strerror(errno); |
431 PurpleConversation *conv; | 431 PurpleConversation *conv; |
432 | 432 |
433 purple_debug_error("bonjour", "Error starting stream with buddy %s at %s:%d error: %s\n", | 433 purple_debug_error("bonjour", "Error starting stream with buddy %s at %s:%d error: %s\n", |
434 purple_buddy_get_name(pb), bb->ip ? bb->ip : "(null)", bb->port_p2pj, err ? err : "(null)"); | 434 purple_buddy_get_name(pb), bb->ip ? bb->ip : "(null)", bb->port_p2pj, err ? err : "(null)"); |
435 | 435 |
480 ret = send(client_socket, stream_start, len, 0); | 480 ret = send(client_socket, stream_start, len, 0); |
481 | 481 |
482 if (ret == -1 && errno == EAGAIN) | 482 if (ret == -1 && errno == EAGAIN) |
483 ret = 0; | 483 ret = 0; |
484 else if (ret <= 0) { | 484 else if (ret <= 0) { |
485 const char *err = strerror(errno); | 485 const char *err = g_strerror(errno); |
486 | 486 |
487 purple_debug_error("bonjour", "Error starting stream with buddy %s at %s:%d error: %s\n", | 487 purple_debug_error("bonjour", "Error starting stream with buddy %s at %s:%d error: %s\n", |
488 purple_buddy_get_name(pb), bb->ip ? bb->ip : "(null)", bb->port_p2pj, err ? err : "(null)"); | 488 purple_buddy_get_name(pb), bb->ip ? bb->ip : "(null)", bb->port_p2pj, err ? err : "(null)"); |
489 | 489 |
490 close(client_socket); | 490 close(client_socket); |
581 gboolean bind_successful; | 581 gboolean bind_successful; |
582 | 582 |
583 /* Open a listening socket for incoming conversations */ | 583 /* Open a listening socket for incoming conversations */ |
584 if ((data->socket = socket(PF_INET, SOCK_STREAM, 0)) < 0) | 584 if ((data->socket = socket(PF_INET, SOCK_STREAM, 0)) < 0) |
585 { | 585 { |
586 purple_debug_error("bonjour", "Cannot open socket: %s\n", strerror(errno)); | 586 purple_debug_error("bonjour", "Cannot open socket: %s\n", g_strerror(errno)); |
587 purple_connection_error(data->account->gc, _("Cannot open socket")); | 587 purple_connection_error(data->account->gc, _("Cannot open socket")); |
588 return -1; | 588 return -1; |
589 } | 589 } |
590 | 590 |
591 /* Make the socket reusable */ | 591 /* Make the socket reusable */ |
592 if (setsockopt(data->socket, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(int)) != 0) | 592 if (setsockopt(data->socket, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(int)) != 0) |
593 { | 593 { |
594 purple_debug_error("bonjour", "Error setting socket options: %s\n", strerror(errno)); | 594 purple_debug_error("bonjour", "Error setting socket options: %s\n", g_strerror(errno)); |
595 purple_connection_error(data->account->gc, _("Error setting socket options")); | 595 purple_connection_error(data->account->gc, _("Error setting socket options")); |
596 return -1; | 596 return -1; |
597 } | 597 } |
598 | 598 |
599 memset(&my_addr, 0, sizeof(struct sockaddr_in)); | 599 memset(&my_addr, 0, sizeof(struct sockaddr_in)); |
613 } | 613 } |
614 | 614 |
615 /* On no! We tried 10 ports and could not bind to ANY of them */ | 615 /* On no! We tried 10 ports and could not bind to ANY of them */ |
616 if (!bind_successful) | 616 if (!bind_successful) |
617 { | 617 { |
618 purple_debug_error("bonjour", "Cannot bind socket: %s\n", strerror(errno)); | 618 purple_debug_error("bonjour", "Cannot bind socket: %s\n", g_strerror(errno)); |
619 purple_connection_error(data->account->gc, _("Could not bind socket to port")); | 619 purple_connection_error(data->account->gc, _("Could not bind socket to port")); |
620 return -1; | 620 return -1; |
621 } | 621 } |
622 | 622 |
623 /* Attempt to listen on the bound socket */ | 623 /* Attempt to listen on the bound socket */ |
624 if (listen(data->socket, 10) != 0) | 624 if (listen(data->socket, 10) != 0) |
625 { | 625 { |
626 purple_debug_error("bonjour", "Cannot listen on socket: %s\n", strerror(errno)); | 626 purple_debug_error("bonjour", "Cannot listen on socket: %s\n", g_strerror(errno)); |
627 purple_connection_error(data->account->gc, _("Could not listen on socket")); | 627 purple_connection_error(data->account->gc, _("Could not listen on socket")); |
628 return -1; | 628 return -1; |
629 } | 629 } |
630 | 630 |
631 #if 0 | 631 #if 0 |
668 bb->conversation = NULL; | 668 bb->conversation = NULL; |
669 return; | 669 return; |
670 } | 670 } |
671 | 671 |
672 if (!bonjour_jabber_stream_init(pb, source)) { | 672 if (!bonjour_jabber_stream_init(pb, source)) { |
673 const char *err = strerror(errno); | 673 const char *err = g_strerror(errno); |
674 PurpleConversation *conv; | 674 PurpleConversation *conv; |
675 | 675 |
676 purple_debug_error("bonjour", "Error starting stream with buddy %s at %s:%d error: %s\n", | 676 purple_debug_error("bonjour", "Error starting stream with buddy %s at %s:%d error: %s\n", |
677 purple_buddy_get_name(pb), bb->ip ? bb->ip : "(null)", bb->port_p2pj, err ? err : "(null)"); | 677 purple_buddy_get_name(pb), bb->ip ? bb->ip : "(null)", bb->port_p2pj, err ? err : "(null)"); |
678 | 678 |