From 3d176ea1f0f45e0c715dd1d7ef545edb9b6abc19 Mon Sep 17 00:00:00 2001 From: Aaron Lipinski Date: Sat, 3 Apr 2021 15:00:45 +1300 Subject: [PATCH 1/5] move net_send_batch call to its caller --- ui/gtk.c | 1 + ui/net.c | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/gtk.c b/ui/gtk.c index dd79efc..0fd8339 100644 --- a/ui/gtk.c +++ b/ui/gtk.c @@ -249,6 +249,7 @@ static gint Host_activate( addr = dns_forward(gtk_entry_get_text(GTK_ENTRY(entry))); if (addr) { net_reopen(ctl, addr); + net_send_batch(ctl); /* If we are "Paused" at this point it is usually because someone entered a non-existing host. Therefore do the go-ahead... */ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(Pause_Button), 0); diff --git a/ui/net.c b/ui/net.c index e4752b7..3160195 100644 --- a/ui/net.c +++ b/ui/net.c @@ -785,7 +785,6 @@ void net_reopen( memcpy(remoteaddress, addr->h_addr, sockaddr_addr_size(remotesockaddr)); memcpy(sockaddr_addr_offset(remotesockaddr), addr->h_addr, sockaddr_addr_size(remotesockaddr)); net_reset(ctl); - net_send_batch(ctl); } -- 2.27.0 From 69933c309082d2ef25815613c59a7a744a914b16 Mon Sep 17 00:00:00 2001 From: Aaron Lipinski Date: Sat, 3 Apr 2021 15:05:01 +1300 Subject: [PATCH 2/5] addr -> hostent for consistency --- ui/net.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ui/net.c b/ui/net.c index 3160195..f7aa088 100644 --- a/ui/net.c +++ b/ui/net.c @@ -773,7 +773,7 @@ int net_open( void net_reopen( struct mtr_ctl *ctl, - struct hostent *addr) + struct hostent *hostent) { int at; @@ -781,9 +781,9 @@ void net_reopen( memset(&host[at], 0, sizeof(host[at])); } - remotesockaddr->sa_family = addr->h_addrtype; - memcpy(remoteaddress, addr->h_addr, sockaddr_addr_size(remotesockaddr)); - memcpy(sockaddr_addr_offset(remotesockaddr), addr->h_addr, sockaddr_addr_size(remotesockaddr)); + remotesockaddr->sa_family = hostent->h_addrtype; + memcpy(remoteaddress, hostent->h_addr, sockaddr_addr_size(remotesockaddr)); + memcpy(sockaddr_addr_offset(remotesockaddr), hostent->h_addr, sockaddr_addr_size(remotesockaddr)); net_reset(ctl); } -- 2.27.0 From 6c3b1bd36624609f83c6ce3563c3bcfb98d824ae Mon Sep 17 00:00:00 2001 From: Aaron Lipinski Date: Sat, 3 Apr 2021 15:07:17 +1300 Subject: [PATCH 3/5] re-init source too --- ui/net.c | 35 ++++++++++++++++------------------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/ui/net.c b/ui/net.c index f7aa088..866879b 100644 --- a/ui/net.c +++ b/ui/net.c @@ -747,6 +747,22 @@ int net_open( return err; } + net_reopen(ctl, hostent); + + return 0; +} + + +void net_reopen( + struct mtr_ctl *ctl, + struct hostent *hostent) +{ + int at; + + for (at = 0; at < MaxHost; at++) { + memset(&host[at], 0, sizeof(host[at])); + } + net_reset(ctl); remotesockaddr->sa_family = sourcesockaddr->sa_family = hostent->h_addrtype; @@ -766,25 +782,6 @@ int net_open( } inet_ntop(remotesockaddr->sa_family, sockaddr_addr_offset(remotesockaddr), remoteaddr, sizeof(remoteaddr)); - - return 0; -} - - -void net_reopen( - struct mtr_ctl *ctl, - struct hostent *hostent) -{ - int at; - - for (at = 0; at < MaxHost; at++) { - memset(&host[at], 0, sizeof(host[at])); - } - - remotesockaddr->sa_family = hostent->h_addrtype; - memcpy(remoteaddress, hostent->h_addr, sockaddr_addr_size(remotesockaddr)); - memcpy(sockaddr_addr_offset(remotesockaddr), hostent->h_addr, sockaddr_addr_size(remotesockaddr)); - net_reset(ctl); } -- 2.27.0 From 54d91ea2f04966e1d4cdf6a080c6b80857ee7bd6 Mon Sep 17 00:00:00 2001 From: Aaron Lipinski Date: Sat, 3 Apr 2021 15:25:09 +1300 Subject: [PATCH 4/5] additional call from net_reopen --- ui/net.c | 1 + 1 file changed, 1 insertion(+) diff --git a/ui/net.c b/ui/net.c index 866879b..e47cbcf 100644 --- a/ui/net.c +++ b/ui/net.c @@ -770,6 +770,7 @@ void net_reopen( sourceaddress = sockaddr_addr_offset(sourcesockaddr); remoteaddress = sockaddr_addr_offset(remotesockaddr); + memcpy(remoteaddress, hostent->h_addr, sockaddr_addr_size(remotesockaddr)); if (ctl->InterfaceAddress) { net_validate_interface_address(ctl->af, ctl->InterfaceAddress); -- 2.27.0 From e486335d7552c2a87b4a14bdf04394a590be3441 Mon Sep 17 00:00:00 2001 From: Aaron Lipinski Date: Sat, 3 Apr 2021 15:34:31 +1300 Subject: [PATCH 5/5] refactor - group local, remote inits --- ui/net.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/ui/net.c b/ui/net.c index e47cbcf..a44a81e 100644 --- a/ui/net.c +++ b/ui/net.c @@ -766,23 +766,22 @@ void net_reopen( net_reset(ctl); remotesockaddr->sa_family = sourcesockaddr->sa_family = hostent->h_addrtype; - memcpy(sockaddr_addr_offset(remotesockaddr), hostent->h_addr, sockaddr_addr_size(remotesockaddr)); - - sourceaddress = sockaddr_addr_offset(sourcesockaddr); remoteaddress = sockaddr_addr_offset(remotesockaddr); memcpy(remoteaddress, hostent->h_addr, sockaddr_addr_size(remotesockaddr)); + inet_ntop(remotesockaddr->sa_family, remoteaddress, remoteaddr, sizeof(remoteaddr)); + + sourceaddress = sockaddr_addr_offset(sourcesockaddr); if (ctl->InterfaceAddress) { net_validate_interface_address(ctl->af, ctl->InterfaceAddress); } else if (ctl->InterfaceName) { net_find_interface_address_from_name( &sourcesockaddr_struct, ctl->af, ctl->InterfaceName); - inet_ntop(sourcesockaddr->sa_family, sockaddr_addr_offset(sourcesockaddr), localaddr, sizeof(localaddr)); + inet_ntop(sourcesockaddr->sa_family, sourceaddress, localaddr, sizeof(localaddr)); } else { net_find_local_address(); } - inet_ntop(remotesockaddr->sa_family, sockaddr_addr_offset(remotesockaddr), remoteaddr, sizeof(remoteaddr)); } -- 2.27.0