MCPcopy Create free account
hub / github.com/FEX-Emu/FEX / RequestPIDFDPacket

Function RequestPIDFDPacket

Source/Common/FEXServerClient.cpp:42–68  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

40}
41
42int RequestPIDFDPacket(int ServerSocket, PacketType Type) {
43 fasio::tcp_socket Socket {ServerSocket};
44 FEXServerRequestPacket Req {
45 .Header {
46 .Type = Type,
47 },
48 };
49
50 // Send request
51 fasio::error ec;
52 write(Socket, fasio::mutable_buffer {std::as_writable_bytes(std::span {&Req, 1})}, ec);
53 if (ec != fasio::error::success) {
54 return -1;
55 }
56
57 // Wait for success response and log FD
58 FEXServerResultPacket Res {};
59 fasio::mutable_buffer ResBuffer {std::as_writable_bytes(std::span {&Res, 1})};
60 int NewFD = -1;
61 ResBuffer.FD = &NewFD;
62 read(Socket, ResBuffer, ec);
63 if (ec != fasio::error::success || Res.Header.Type != PacketType::TYPE_SUCCESS) {
64 return -1;
65 }
66
67 return NewFD;
68}
69
70static int ServerFD {-1};
71

Callers 2

RequestLogFDFunction · 0.85
RequestPIDFDFunction · 0.85

Calls 2

writeFunction · 0.70
readFunction · 0.70

Tested by

no test coverage detected