Browse Source

udp: Set SO_REUSEADDR before calling bind().

Georgi Chorbadzhiyski 11 years ago
parent
commit
03e1fec222
1 changed files with 3 additions and 6 deletions
  1. 3
    6
      udp.c

+ 3
- 6
udp.c View File

@@ -68,6 +68,9 @@ static int bind_addr(const char *hostname, const char *service, int socktype, st
68 68
 	while (res) {
69 69
 		*sock = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
70 70
 		if (*sock > -1) {
71
+			int on = 1;
72
+			setsockopt(*sock, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on));
73
+			set_sock_nonblock(*sock);
71 74
 			if (bind(*sock, res->ai_addr, res->ai_addrlen) == 0) {
72 75
 				memcpy(addr, res->ai_addr, sizeof(*addr));
73 76
 				*addrlen = res->ai_addrlen;
@@ -87,12 +90,6 @@ static int bind_addr(const char *hostname, const char *service, int socktype, st
87 90
 OUT:
88 91
 	freeaddrinfo(ressave);
89 92
 
90
-	if (*sock > -1) {
91
-		int on = 1;
92
-		setsockopt(*sock, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on));
93
-		set_sock_nonblock(*sock);
94
-	}
95
-
96 93
 	return ret;
97 94
 }
98 95
 

Loading…
Cancel
Save