1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 11:48:10 +00:00

Kernel+Userland: Expose list of network adapters through /proc/netadapters.

Added a simple /bin/ifconfig program that just pretty-prints that file. :^)
This commit is contained in:
Andreas Kling 2019-06-16 07:06:49 +02:00
parent 264890bfc3
commit 9e0f7acfe5
6 changed files with 69 additions and 0 deletions

View file

@ -14,6 +14,13 @@ static Lockable<HashTable<NetworkAdapter*>>& all_adapters()
return *table;
}
void NetworkAdapter::for_each(Function<void(NetworkAdapter&)> callback)
{
LOCKER(all_adapters().lock());
for (auto& it : all_adapters().resource())
callback(*it);
}
NetworkAdapter* NetworkAdapter::from_ipv4_address(const IPv4Address& address)
{
LOCKER(all_adapters().lock());
@ -90,6 +97,12 @@ void NetworkAdapter::set_ipv4_address(const IPv4Address& address)
m_ipv4_address = address;
}
void NetworkAdapter::set_interface_name(const StringView& basename)
{
// FIXME: Find a unique name for this interface, starting with $basename.
m_name = String::format("%s0", basename.characters());
}
bool PacketQueueAlarm::is_ringing() const
{
return m_adapter.has_queued_packets();