From 41d113713dfa60087e346ce7ff7969017794e82f Mon Sep 17 00:00:00 2001 From: Conrad Pankoff Date: Mon, 2 Sep 2019 15:41:18 +1000 Subject: [PATCH] ProcFS: Expose ARP table --- Kernel/FileSystem/ProcFS.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/Kernel/FileSystem/ProcFS.cpp b/Kernel/FileSystem/ProcFS.cpp index 8651b784d3..34debc2868 100644 --- a/Kernel/FileSystem/ProcFS.cpp +++ b/Kernel/FileSystem/ProcFS.cpp @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include @@ -59,6 +60,7 @@ enum ProcFileType { FI_Root_sys_variable, FI_Root_net_adapters, + FI_Root_net_arp, FI_Root_net_tcp, FI_Root_net_udp, FI_Root_net_local, @@ -335,6 +337,20 @@ Optional procfs$net_adapters(InodeIdentifier) return builder.build(); } +Optional procfs$net_arp(InodeIdentifier) +{ + KBufferBuilder builder; + JsonArraySerializer array { builder }; + LOCKER(arp_table().lock()); + for (auto& it : arp_table().resource()) { + JsonObjectSerializer obj = array.add_object(); + obj.add("mac_address", it.value.to_string()); + obj.add("ip_address", it.key.to_string()); + } + array.finish(); + return builder.build(); +} + Optional procfs$net_tcp(InodeIdentifier) { KBufferBuilder builder; @@ -1022,6 +1038,7 @@ bool ProcFSInode::traverse_as_directory(Function