pidgin/android/libpurple

8b37d3593783
Parents 1690e0b2c508
Children b495bcb42c5c
bonjour: Similify code and get rid of some unnecessary control character removal

* If the other side sends an invalid character, the xml parsing will fail (as it should)
--- a/libpurple/protocols/bonjour/jabber.c Fri Feb 22 18:54:43 2013 -0500
+++ b/libpurple/protocols/bonjour/jabber.c Sun Feb 24 11:37:14 2013 -0500
@@ -411,16 +411,18 @@
_client_socket_handler(gpointer data, gint socket, PurpleInputCondition condition)
{
BonjourJabberConversation *bconv = data;
- gint len, message_length;
+ gssize len;
static char message[4096];
/* Read the data from the socket */
- if ((len = recv(socket, message, sizeof(message) - 1, 0)) == -1) {
+ if ((len = recv(socket, message, sizeof(message) - 1, 0)) < 0) {
/* There have been an error reading from the socket */
- if (errno != EAGAIN) {
+ if (len != -1 || errno != EAGAIN) {
const char *err = g_strerror(errno);
- purple_debug_warning("bonjour", "receive error: %s\n", err ? err : "(null)");
+ purple_debug_warning("bonjour",
+ "receive of %" G_GSSIZE_FORMAT " error: %s\n",
+ len, err ? err : "(null)");
bonjour_jabber_close_conversation(bconv);
if (bconv->pb != NULL) {
@@ -439,19 +441,12 @@
purple_debug_warning("bonjour", "Connection closed (without stream end) by %s.\n", (name) ? name : "(unknown)");
bonjour_jabber_stream_ended(bconv);
return;
- } else {
- message_length = len;
- message[message_length] = '\0';
-
- while (message_length > 0 && g_ascii_iscntrl(message[message_length - 1])) {
- message[message_length - 1] = '\0';
- message_length--;
- }
}
- purple_debug_info("bonjour", "Receive: -%s- %d bytes\n", message, len);
+ message[len] = '\0';
- bonjour_parser_process(bconv, message, message_length);
+ purple_debug_info("bonjour", "Receive: -%s- %" G_GSSIZE_FORMAT " bytes\n", message, len);
+ bonjour_parser_process(bconv, message, len);
}
struct _stream_start_data {