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

Kernel/ProcFS: Expose TCP/UDP Socket pids

This allows for commands like netstat to reference /proc/net and
identify a connection's owning process. Process information is limited
to superusers and user owned processes.
This commit is contained in:
brapru 2021-07-12 20:48:31 -04:00 committed by Ali Mohammad Pur
parent 0921390109
commit 1a5b3a1c3f

View file

@ -109,6 +109,11 @@ private:
obj.add("bytes_in", socket.bytes_in());
obj.add("packets_out", socket.packets_out());
obj.add("bytes_out", socket.bytes_out());
if (Process::current()->is_superuser() || Process::current()->uid() == socket.origin_uid()) {
obj.add("origin_pid", socket.origin_pid());
obj.add("origin_uid", socket.origin_uid());
obj.add("origin_gid", socket.origin_gid());
}
});
array.finish();
return true;
@ -154,6 +159,11 @@ private:
obj.add("local_port", socket.local_port());
obj.add("peer_address", socket.peer_address().to_string());
obj.add("peer_port", socket.peer_port());
if (Process::current()->is_superuser() || Process::current()->uid() == socket.origin_uid()) {
obj.add("origin_pid", socket.origin_pid());
obj.add("origin_uid", socket.origin_uid());
obj.add("origin_gid", socket.origin_gid());
}
});
array.finish();
return true;