Files
fastfetch/src/common/netif/netif_gnu.c
T

36 lines
955 B
C
Raw Normal View History

2025-08-06 07:36:32 +00:00
#include "netif.h"
#include "common/io/io.h"
#include <net/if.h>
#include <stdio.h>
#define FF_STR_INDIR(x) #x
#define FF_STR(x) FF_STR_INDIR(x)
2025-08-07 09:17:32 +00:00
bool ffNetifGetDefaultRouteImplV4(FFNetifDefaultRouteResult* result)
2025-08-06 07:36:32 +00:00
{
FILE* FF_AUTO_CLOSE_FILE netRoute = fopen("/proc/route", "r");
if (!netRoute) return false;
// skip first line
FF_UNUSED(fscanf(netRoute, "%*[^\n]\n"));
unsigned long long destination; //, gateway, flags, refCount, use, metric, mask, mtu, ...
2025-08-07 09:17:32 +00:00
while (fscanf(netRoute, "%" FF_STR(IF_NAMESIZE) "s%llx%*[^\n]", result->ifName, &destination) == 2)
2025-08-06 07:36:32 +00:00
{
if (destination != 0) continue;
2025-08-07 09:17:32 +00:00
result->ifIndex = if_nametoindex(result->ifName);
2025-08-24 19:09:51 +08:00
// TODO: Get the preferred source address
2025-08-06 07:36:32 +00:00
return true;
}
2025-08-07 09:17:32 +00:00
result->ifName[0] = '0';
2025-08-06 07:36:32 +00:00
return false;
}
2025-08-07 09:17:32 +00:00
bool ffNetifGetDefaultRouteImplV6(FFNetifDefaultRouteResult* result)
2025-08-06 07:36:32 +00:00
{
2025-08-07 09:17:32 +00:00
// TODO: AF_INET6
2025-08-25 09:25:25 +08:00
FF_UNUSED(result);
2025-08-06 07:36:32 +00:00
return false;
}