libpurple/protocols/bonjour/jabber.c

branch
release-2.2.2
changeset 20239
ae122f419324
parent 19859
71d37b57eff2
child 20278
9f0a834a6a06
child 21082
0f41e90e5b03
--- a/libpurple/protocols/bonjour/jabber.c	Sun Oct 21 04:44:56 2007 +0000
+++ b/libpurple/protocols/bonjour/jabber.c	Sun Oct 21 04:46:33 2007 +0000
@@ -521,6 +521,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 +534,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);

mercurial