Browse Source

io: fix io_connect().

How embarrassing: we weren't actually doing a non-blocking connect because
I was using F_SETFD instead of F_SETFL...

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Rusty Russell 11 years ago
parent
commit
5c345a1e10
1 changed files with 2 additions and 2 deletions
  1. 2 2
      ccan/io/io.c

+ 2 - 2
ccan/io/io.c

@@ -403,8 +403,8 @@ struct io_plan io_connect_(int fd, const struct addrinfo *addr,
 	plan.next_arg = arg;
 	plan.next_arg = arg;
 
 
 	/* Save old flags, set nonblock if not already. */
 	/* Save old flags, set nonblock if not already. */
-	plan.u1.s = fcntl(fd, F_GETFD);
-	fcntl(fd, F_SETFD, plan.u1.s | O_NONBLOCK);
+	plan.u1.s = fcntl(fd, F_GETFL);
+	fcntl(fd, F_SETFL, plan.u1.s | O_NONBLOCK);
 
 
 	/* Immediate connect can happen. */
 	/* Immediate connect can happen. */
 	if (connect(fd, addr->ai_addr, addr->ai_addrlen) == 0) {
 	if (connect(fd, addr->ai_addr, addr->ai_addrlen) == 0) {