diff --git a/kernel/src/Api/BuildNo.hpp b/kernel/src/Api/BuildNo.hpp index 319b101..c7f8eaa 100644 --- a/kernel/src/Api/BuildNo.hpp +++ b/kernel/src/Api/BuildNo.hpp @@ -12,4 +12,4 @@ #pragma once -#define MONTAUK_BUILD_NUMBER 276 +#define MONTAUK_BUILD_NUMBER 278 diff --git a/programs/src/dhcp/main.cpp b/programs/src/dhcp/main.cpp index 9a7a658..d8ea0e3 100644 --- a/programs/src/dhcp/main.cpp +++ b/programs/src/dhcp/main.cpp @@ -250,6 +250,23 @@ extern "C" void _start() { montauk::service_log("MontaukOS DHCP Client"); + // 0. Check if any device with an up link even exists. + montauk::abi::NetIfInfo ifs[4]; + int n = montauk::net_interfaces(ifs, 4); + + bool link = false; + + for (int i = 0; i < n; i++) { + if (ifs[i].linkUp == true) { + link = true; + } + } + + if (link == false) { + montauk::service_log("Unable to locate a network device with an active link.\n"); + montauk::exit(montauk::StatusCodes::NoDevice); + } + // 1. Get MAC address montauk::abi::NetCfg origCfg; montauk::get_netcfg(&origCfg);