1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-24 01:25:07 +00:00

Kernel: Make TCPSocket::for_each() callback accept a reference

Yay for less arrows!
This commit is contained in:
Sergey Bugaev 2019-08-09 13:26:29 +03:00 committed by Andreas Kling
parent 84a54c7cf7
commit d06f4291a8
3 changed files with 14 additions and 14 deletions

View file

@ -295,17 +295,17 @@ Optional<KBuffer> procfs$net_tcp(InodeIdentifier)
JsonArray json; JsonArray json;
TCPSocket::for_each([&json](auto& socket) { TCPSocket::for_each([&json](auto& socket) {
JsonObject obj; JsonObject obj;
obj.set("local_address", socket->local_address().to_string()); obj.set("local_address", socket.local_address().to_string());
obj.set("local_port", socket->local_port()); obj.set("local_port", socket.local_port());
obj.set("peer_address", socket->peer_address().to_string()); obj.set("peer_address", socket.peer_address().to_string());
obj.set("peer_port", socket->peer_port()); obj.set("peer_port", socket.peer_port());
obj.set("state", TCPSocket::to_string(socket->state())); obj.set("state", TCPSocket::to_string(socket.state()));
obj.set("ack_number", socket->ack_number()); obj.set("ack_number", socket.ack_number());
obj.set("sequence_number", socket->sequence_number()); obj.set("sequence_number", socket.sequence_number());
obj.set("packets_in", socket->packets_in()); obj.set("packets_in", socket.packets_in());
obj.set("bytes_in", socket->bytes_in()); obj.set("bytes_in", socket.bytes_in());
obj.set("packets_out", socket->packets_out()); obj.set("packets_out", socket.packets_out());
obj.set("bytes_out", socket->bytes_out()); obj.set("bytes_out", socket.bytes_out());
json.append(obj); json.append(obj);
}); });
return json.serialized<KBufferBuilder>(); return json.serialized<KBufferBuilder>();

View file

@ -8,11 +8,11 @@
//#define TCP_SOCKET_DEBUG //#define TCP_SOCKET_DEBUG
void TCPSocket::for_each(Function<void(TCPSocket*&)> callback) void TCPSocket::for_each(Function<void(TCPSocket&)> callback)
{ {
LOCKER(sockets_by_tuple().lock()); LOCKER(sockets_by_tuple().lock());
for (auto& it : sockets_by_tuple().resource()) for (auto& it : sockets_by_tuple().resource())
callback(it.value); callback(*it.value);
} }
Lockable<HashMap<IPv4SocketTuple, TCPSocket*>>& TCPSocket::sockets_by_tuple() Lockable<HashMap<IPv4SocketTuple, TCPSocket*>>& TCPSocket::sockets_by_tuple()

View file

@ -6,7 +6,7 @@
class TCPSocket final : public IPv4Socket { class TCPSocket final : public IPv4Socket {
public: public:
static void for_each(Function<void(TCPSocket*&)>); static void for_each(Function<void(TCPSocket&)>);
static NonnullRefPtr<TCPSocket> create(int protocol); static NonnullRefPtr<TCPSocket> create(int protocol);
virtual ~TCPSocket() override; virtual ~TCPSocket() override;