diff libpurple/protocols/bonjour/jabber.c @ 21418:38cc722159ff

propagate from branch 'im.pidgin.pidgin' (head d8103be97302efb404e2f6922925f661c807ad23) to branch 'im.pidgin.cpw.resiak.disconnectreason' (head 0ac25a1f38ae28654c967caa143f1c0d12ef2e1c)
author Will Thompson <will.thompson@collabora.co.uk>
date Sat, 10 Nov 2007 12:10:04 +0000
parents ba41f2a60253 35b4f1dc4c8d
children db7fa42845f6
line wrap: on
line diff
--- a/libpurple/protocols/bonjour/jabber.c	Wed Nov 07 11:23:03 2007 +0000
+++ b/libpurple/protocols/bonjour/jabber.c	Sat Nov 10 12:10:04 2007 +0000
@@ -244,7 +244,7 @@
 		return;
 	else if (ret <= 0) {
 		PurpleConversation *conv;
-		const char *error = strerror(errno);
+		const char *error = g_strerror(errno);
 
 		purple_debug_error("bonjour", "Error sending message to buddy %s error: %s\n",
 				   purple_buddy_get_name(pb), error ? error : "(null)");
@@ -287,7 +287,7 @@
 		ret = 0;
 	else if (ret <= 0) {
 		PurpleConversation *conv;
-		const char *error = strerror(errno);
+		const char *error = g_strerror(errno);
 
 		purple_debug_error("bonjour", "Error sending message to buddy %s error: %s\n",
 				   purple_buddy_get_name(pb), error ? error : "(null)");
@@ -337,7 +337,7 @@
 		if (errno != EAGAIN) {
 			BonjourBuddy *bb = pb->proto_data;
 
-			purple_debug_warning("bonjour", "receive error: %s\n", strerror(errno));
+			purple_debug_warning("bonjour", "receive error: %s\n", g_strerror(errno));
 
 			bonjour_jabber_close_conversation(bb->conversation);
 			bb->conversation = NULL;
@@ -367,7 +367,6 @@
 
 void bonjour_jabber_stream_ended(PurpleBuddy *pb) {
 	BonjourBuddy *bb = pb->proto_data;
-	PurpleConversation *conv;
 
 	purple_debug_info("bonjour", "Recieved conversation close notification from %s.\n", pb->name);
 
@@ -375,12 +374,15 @@
 
 	/* Inform the user that the conversation has been closed */
 	if (bb->conversation != NULL) {
+#if 0
+		PurpleConversation *conv;
 		conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, pb->name, pb->account);
 		if (conv != NULL) {
 			char *tmp = g_strdup_printf(_("%s has closed the conversation."), pb->name);
 			purple_conversation_write(conv, NULL, tmp, PURPLE_MESSAGE_SYSTEM, time(NULL));
 			g_free(tmp);
 		}
+#endif
 		/* Close the socket, clear the watcher and free memory */
 		bonjour_jabber_close_conversation(bb->conversation);
 		bb->conversation = NULL;
@@ -425,7 +427,7 @@
 	if (ret == -1 && errno == EAGAIN)
 		return;
 	else if (ret <= 0) {
-		const char *err = strerror(errno);
+		const char *err = g_strerror(errno);
 		PurpleConversation *conv;
 
 		purple_debug_error("bonjour", "Error starting stream with buddy %s at %s:%d error: %s\n",
@@ -480,7 +482,7 @@
 	if (ret == -1 && errno == EAGAIN)
 		ret = 0;
 	else if (ret <= 0) {
-		const char *err = strerror(errno);
+		const char *err = g_strerror(errno);
 
 		purple_debug_error("bonjour", "Error starting stream with buddy %s at %s:%d error: %s\n",
 				   purple_buddy_get_name(pb), bb->ip ? bb->ip : "(null)", bb->port_p2pj, err ? err : "(null)");
@@ -521,6 +523,7 @@
 	struct sockaddr_in their_addr; /* connector's address information */
 	socklen_t sin_size = sizeof(struct sockaddr);
 	int client_socket;
+	int flags;
 	BonjourBuddy *bb;
 	char *address_text = NULL;
 	PurpleBuddyList *bl = purple_get_blist();
@@ -533,7 +536,8 @@
 	if ((client_socket = accept(server_socket, (struct sockaddr *)&their_addr, &sin_size)) == -1)
 		return;
 
-	fcntl(client_socket, F_SETFL, O_NONBLOCK);
+	flags = fcntl(client_socket, F_GETFL);
+	fcntl(client_socket, F_SETFL, flags | O_NONBLOCK);
 
 	/* Look for the buddy that has opened the conversation and fill information */
 	address_text = inet_ntoa(their_addr.sin_addr);
@@ -579,7 +583,7 @@
 	/* Open a listening socket for incoming conversations */
 	if ((data->socket = socket(PF_INET, SOCK_STREAM, 0)) < 0)
 	{
-		purple_debug_error("bonjour", "Cannot open socket: %s\n", strerror(errno));
+		purple_debug_error("bonjour", "Cannot open socket: %s\n", g_strerror(errno));
 		purple_connection_error_reason (data->account->gc,
 			PURPLE_CONNECTION_ERROR_NETWORK_ERROR,
 			_("Cannot open socket"));
@@ -589,7 +593,7 @@
 	/* Make the socket reusable */
 	if (setsockopt(data->socket, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(int)) != 0)
 	{
-		purple_debug_error("bonjour", "Error setting socket options: %s\n", strerror(errno));
+		purple_debug_error("bonjour", "Error setting socket options: %s\n", g_strerror(errno));
 		purple_connection_error_reason (data->account->gc,
 			PURPLE_CONNECTION_ERROR_NETWORK_ERROR,
 			_("Error setting socket options"));
@@ -615,7 +619,7 @@
 	/* On no!  We tried 10 ports and could not bind to ANY of them */
 	if (!bind_successful)
 	{
-		purple_debug_error("bonjour", "Cannot bind socket: %s\n", strerror(errno));
+		purple_debug_error("bonjour", "Cannot bind socket: %s\n", g_strerror(errno));
 		purple_connection_error_reason (data->account->gc,
 			PURPLE_CONNECTION_ERROR_NETWORK_ERROR,
 			_("Could not bind socket to port"));
@@ -625,7 +629,7 @@
 	/* Attempt to listen on the bound socket */
 	if (listen(data->socket, 10) != 0)
 	{
-		purple_debug_error("bonjour", "Cannot listen on socket: %s\n", strerror(errno));
+		purple_debug_error("bonjour", "Cannot listen on socket: %s\n", g_strerror(errno));
 		purple_connection_error_reason (data->account->gc,
 			PURPLE_CONNECTION_ERROR_NETWORK_ERROR,
 			_("Could not listen on socket"));
@@ -674,7 +678,7 @@
 	}
 
 	if (!bonjour_jabber_stream_init(pb, source)) {
-		const char *err = strerror(errno);
+		const char *err = g_strerror(errno);
 		PurpleConversation *conv;
 
 		purple_debug_error("bonjour", "Error starting stream with buddy %s at %s:%d error: %s\n",