changeset 24808:98bbeed2481c

a patch from eperez that corrects EOF detection, Fixes #7726
author Ka-Hing Cheung <khc@hxbc.us>
date Thu, 18 Dec 2008 07:25:37 +0000
parents a0b89076a163
children a60655fc1b4f
files libpurple/protocols/msn/soap.c libpurple/protocols/msnp9/nexus.c
diffstat 2 files changed, 3 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/libpurple/protocols/msn/soap.c	Thu Dec 18 06:28:36 2008 +0000
+++ b/libpurple/protocols/msn/soap.c	Thu Dec 18 07:25:37 2008 +0000
@@ -521,7 +521,7 @@
 	/* msn_soap_process could alter errno */
 	msn_soap_process(conn);
 
-	if (cnt < 0 && perrno != EAGAIN) {
+	if (cnt < 0 && perrno != EAGAIN || cnt == 0) {
 		/* It's possible msn_soap_process closed the ssl connection */
 		if (conn->ssl) {
 			purple_ssl_close(conn->ssl);
--- a/libpurple/protocols/msnp9/nexus.c	Thu Dec 18 06:28:36 2008 +0000
+++ b/libpurple/protocols/msnp9/nexus.c	Thu Dec 18 07:25:37 2008 +0000
@@ -168,7 +168,7 @@
 
 	if (len < 0 && errno == EAGAIN)
 		return;
-	else if (len < 0) {
+	else if (len <= 0) {
 		purple_input_remove(nexus->input_handler);
 		nexus->input_handler = 0;
 		g_free(nexus->read_buf);
@@ -415,7 +415,7 @@
 
 	if (len < 0 && errno == EAGAIN)
 		return;
-	else if (len < 0) {
+	else if (len <= 0) {
 		purple_input_remove(nexus->input_handler);
 		nexus->input_handler = 0;
 		g_free(nexus->read_buf);