mirror of
https://github.com/fastfetch-cli/fastfetch.git
synced 2026-10-29 08:13:44 +01:00
@@ -7,6 +7,18 @@
|
||||
#include <linux/rtnetlink.h>
|
||||
#include <net/if.h>
|
||||
|
||||
static uint32_t ffNetifGetNetlinkPortId(int sock_fd) {
|
||||
struct sockaddr_nl addr = {};
|
||||
socklen_t addrLen = sizeof(addr);
|
||||
if (getsockname(sock_fd, (struct sockaddr*) &addr, &addrLen) < 0) {
|
||||
FF_DEBUG("Failed to query netlink socket address (use PID instead): %s", strerror(errno));
|
||||
return instance.state.platform.pid;
|
||||
} else {
|
||||
FF_DEBUG("Netlink port ID: %u", addr.nl_pid);
|
||||
return addr.nl_pid;
|
||||
}
|
||||
}
|
||||
|
||||
bool ffNetifGetDefaultRouteImplV4(FFNetifDefaultRouteResult* result) {
|
||||
FF_DEBUG("Starting IPv4 default route detection");
|
||||
|
||||
@@ -17,9 +29,6 @@ bool ffNetifGetDefaultRouteImplV4(FFNetifDefaultRouteResult* result) {
|
||||
}
|
||||
FF_DEBUG("Created netlink socket: fd=%d", sock_fd);
|
||||
|
||||
uint32_t pid = instance.state.platform.pid;
|
||||
FF_DEBUG("Process PID: %u", pid);
|
||||
|
||||
// Bind socket
|
||||
struct sockaddr_nl addr = {
|
||||
.nl_family = AF_NETLINK,
|
||||
@@ -33,6 +42,8 @@ bool ffNetifGetDefaultRouteImplV4(FFNetifDefaultRouteResult* result) {
|
||||
}
|
||||
FF_DEBUG("Successfully bound socket");
|
||||
|
||||
uint32_t pid = ffNetifGetNetlinkPortId(sock_fd);
|
||||
|
||||
struct __attribute__((__packed__)) {
|
||||
struct nlmsghdr nlh;
|
||||
struct rtmsg rtm;
|
||||
@@ -228,9 +239,6 @@ bool ffNetifGetDefaultRouteImplV6(FFNetifDefaultRouteResult* result) {
|
||||
}
|
||||
FF_DEBUG("Created netlink socket: fd=%d", sock_fd);
|
||||
|
||||
uint32_t pid = instance.state.platform.pid;
|
||||
FF_DEBUG("Process PID: %u", pid);
|
||||
|
||||
// Bind socket
|
||||
struct sockaddr_nl addr = {
|
||||
.nl_family = AF_NETLINK,
|
||||
@@ -244,6 +252,8 @@ bool ffNetifGetDefaultRouteImplV6(FFNetifDefaultRouteResult* result) {
|
||||
}
|
||||
FF_DEBUG("Successfully bound socket");
|
||||
|
||||
uint32_t pid = ffNetifGetNetlinkPortId(sock_fd);
|
||||
|
||||
struct __attribute__((__packed__)) {
|
||||
struct nlmsghdr nlh;
|
||||
struct rtmsg rtm;
|
||||
|
||||
Reference in New Issue
Block a user