From b407d1e9f8e5cd812a61cfc9318d540606a32ea5 Mon Sep 17 00:00:00 2001
From: Michael Tuexen <tuexen@fh-muenster.de>
Date: Fri, 28 Jul 2017 15:58:49 +0200
Subject: [PATCH] Fix https://github.com/nplab/packetdrill/issues/131.

---
 gtests/net/packetdrill/run_system_call.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/gtests/net/packetdrill/run_system_call.c b/gtests/net/packetdrill/run_system_call.c
index 2b33cc82..34ec3cb9 100644
--- a/gtests/net/packetdrill/run_system_call.c
+++ b/gtests/net/packetdrill/run_system_call.c
@@ -1936,9 +1936,16 @@ static int run_syscall_connect(struct state *state,
 	DEBUGP("run_syscall_connect\n");
 
 	/* Fill in the live address we want to connect to */
-	ip_to_sockaddr(&state->config->live_connect_ip,
-		       state->config->live_connect_port,
-		       live_addr, live_addrlen);
+	if ((state->socket_under_test != NULL) &&
+	    (state->socket_under_test->state == SOCKET_PASSIVE_PACKET_RECEIVED)) {
+		ip_to_sockaddr(&state->socket_under_test->live.remote.ip,
+			       ntohs(state->socket_under_test->live.remote.port),
+			       live_addr, live_addrlen);
+	} else {
+		ip_to_sockaddr(&state->config->live_connect_ip,
+			       state->config->live_connect_port,
+			       live_addr, live_addrlen);
+	}
 
 	socket = find_socket_by_script_fd(state, script_fd);
 	assert(socket != NULL);
-- 
GitLab