master ohmu/fastfetch-openbsd / src / common / impl / netif_gnu.c
ohmu  ·  2026-10-15
 1#include "common/netif.h"
 2#include "common/io.h"
 3#include "common/strutil.h"
 4
 5#include <net/if.h>
 6#include <stdio.h>
 7
 8bool ffNetifGetDefaultRouteImplV4(FFNetifDefaultRouteResult* result) {
 9    FF_AUTO_CLOSE_FILE FILE* netRoute = fopen("/proc/route", "r");
10
11    if (!netRoute) {
12        return false;
13    }
14
15    // skip first line
16    FF_UNUSED(fscanf(netRoute, "%*[^\n]\n"));
17    unsigned long long destination; //, gateway, flags, refCount, use, metric, mask, mtu, ...
18    while (fscanf(netRoute, "%" FF_STR(IF_NAMESIZE) "s%llx%*[^\n]", result->ifName, &destination) == 2) {
19        if (destination != 0) {
20            continue;
21        }
22        result->ifIndex = if_nametoindex(result->ifName);
23        // TODO: Get the preferred source address
24        return true;
25    }
26    result->ifName[0] = '\0';
27    return false;
28}
29
30bool ffNetifGetDefaultRouteImplV6(FFNetifDefaultRouteResult* result) {
31    // TODO: AF_INET6
32    FF_UNUSED(result);
33    return false;
34}