diff -r e4abd12fb7ec -r ae122f419324 libpurple/protocols/bonjour/jabber.c --- 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);