Commit Diff


commit - 53abf42ed0e22de4890d40e6d9ba4f23f7761d0f
commit + 8ae8b89ff70052ffee2616268a4d6732124ccd3c
blob - 8c17eaee6f2735625fac258d25cc1f9116345afc
blob + bd0879e8512fa1203a162a5a0bc30fa2b89571fa
--- lstun.c
+++ lstun.c
@@ -137,7 +137,8 @@ conn_free(struct conn *c)
 		evtimer_del(&c->waitev);
 
 	close(c->source);
-	close(c->to);
+	if (c->to != -1)
+		close(c->to);
 
 	free(c);
 }
@@ -308,6 +309,7 @@ do_accept(int fd, short event, void *data)
 	}
 
 	c->source = s;
+	c->to = -1;
 	c->retry.tv_sec = BACKOFF;
 	evtimer_set(&c->waitev, try_to_connect, c);
 	evtimer_add(&c->waitev, &c->retry);