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