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