Skip to content

Commit 0594c9f

Browse files
committed
LocalIP: use macros rather than manual free/close
1 parent 03b537b commit 0594c9f

2 files changed

Lines changed: 5 additions & 11 deletions

File tree

src/common/netif/netif_bsd.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ bool ffNetifGetDefaultRouteImpl(char iface[IF_NAMESIZE + 1], uint32_t* ifIndex,
8484
// Get the preferred source address
8585
struct sockaddr_in* src = (struct sockaddr_in*)get_rt_address(rtm, RTA_IFA);
8686
if (preferredSourceAddr && src && src->sin_family == AF_INET)
87-
*preferredSourceAddr = src->sin_addr;
87+
*preferredSourceAddr = src->sin_addr.s_addr;
8888

8989
return true;
9090
}
@@ -149,7 +149,7 @@ bool ffNetifGetDefaultRouteImpl(char iface[IF_NAMESIZE + 1], uint32_t* ifIndex,
149149
// Get the preferred source address
150150
struct sockaddr_in* src = (struct sockaddr_in*)get_rt_address(&rtmsg.hdr, RTA_IFA);
151151
if (preferredSourceAddr && src && src->sin_family == AF_INET)
152-
*preferredSourceAddr = src->sin_addr;
152+
*preferredSourceAddr = src->sin_addr.s_addr;
153153

154154
return true;
155155
}

src/common/netif/netif_linux.c

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#include "netif.h"
22
#include "common/io/io.h"
3+
#include "util/mallocHelper.h"
34

45
#include <arpa/inet.h>
56
#include <linux/rtnetlink.h>
@@ -26,7 +27,7 @@ struct Route4Entry {
2627

2728
static bool getDefaultRouteIPv4(char iface[IF_NAMESIZE + 1], uint32_t* ifIndex, uint32_t* preferredSourceAddr)
2829
{
29-
int sock_fd = socket(AF_NETLINK, SOCK_RAW | SOCK_CLOEXEC, NETLINK_ROUTE);
30+
FF_AUTO_CLOSE_FD int sock_fd = socket(AF_NETLINK, SOCK_RAW | SOCK_CLOEXEC, NETLINK_ROUTE);
3031
if (sock_fd < 0)
3132
return false;
3233

@@ -38,7 +39,6 @@ static bool getDefaultRouteIPv4(char iface[IF_NAMESIZE + 1], uint32_t* ifIndex,
3839
addr.nl_groups = 0;
3940

4041
if (bind(sock_fd, (struct sockaddr*)&addr, sizeof(addr)) < 0) {
41-
close(sock_fd);
4242
return false;
4343
}
4444

@@ -78,7 +78,6 @@ static bool getDefaultRouteIPv4(char iface[IF_NAMESIZE + 1], uint32_t* ifIndex,
7878
(struct sockaddr*)&dest_addr, sizeof(dest_addr));
7979

8080
if (sent != sizeof(req)) {
81-
close(sock_fd);
8281
return false;
8382
}
8483

@@ -95,17 +94,14 @@ static bool getDefaultRouteIPv4(char iface[IF_NAMESIZE + 1], uint32_t* ifIndex,
9594

9695
ssize_t peek_size = recvmsg(sock_fd, &msg, MSG_PEEK | MSG_TRUNC);
9796
if (peek_size < 0) {
98-
close(sock_fd);
9997
return false;
10098
}
10199

102-
uint8_t *buffer = malloc((size_t)peek_size);
100+
FF_AUTO_FREE uint8_t* buffer = malloc((size_t)peek_size);
103101

104102
ssize_t received = recvfrom(sock_fd, buffer, (size_t)peek_size, 0,
105103
(struct sockaddr*)&src_addr, &src_addr_len);
106104

107-
close(sock_fd);
108-
109105
struct Route4Entry best_gw;
110106
memset(&best_gw, 0, sizeof(best_gw));
111107

@@ -160,8 +156,6 @@ static bool getDefaultRouteIPv4(char iface[IF_NAMESIZE + 1], uint32_t* ifIndex,
160156
}
161157
}
162158

163-
free(buffer);
164-
165159
if (best_gw.gateway != 0) {
166160
if (ifIndex) {
167161
*ifIndex = best_gw.ifindex;

0 commit comments

Comments
 (0)