Sort posix service functions

PiperOrigin-RevId: 305157179
This commit is contained in:
Eyal Soha
2020-04-06 17:53:43 -07:00
committed by gVisor bot
parent dd98fdd5be
commit 32fc11ee3e
3 changed files with 319 additions and 314 deletions
+21 -21
View File
@@ -61,13 +61,15 @@
}
class PosixImpl final : public posix_server::Posix::Service {
::grpc::Status Socket(grpc_impl::ServerContext *context,
const ::posix_server::SocketRequest *request,
::posix_server::SocketResponse *response) override {
response->set_fd(
socket(request->domain(), request->type(), request->protocol()));
::grpc::Status Accept(grpc_impl::ServerContext *context,
const ::posix_server::AcceptRequest *request,
::posix_server::AcceptResponse *response) override {
sockaddr_storage addr;
socklen_t addrlen = sizeof(addr);
response->set_fd(accept(request->sockfd(),
reinterpret_cast<sockaddr *>(&addr), &addrlen));
response->set_errno_(errno);
return ::grpc::Status::OK;
return sockaddr_to_proto(addr, addrlen, response->mutable_addr());
}
::grpc::Status Bind(grpc_impl::ServerContext *context,
@@ -119,6 +121,14 @@ class PosixImpl final : public posix_server::Posix::Service {
return ::grpc::Status::OK;
}
::grpc::Status Close(grpc_impl::ServerContext *context,
const ::posix_server::CloseRequest *request,
::posix_server::CloseResponse *response) override {
response->set_ret(close(request->fd()));
response->set_errno_(errno);
return ::grpc::Status::OK;
}
::grpc::Status GetSockName(
grpc_impl::ServerContext *context,
const ::posix_server::GetSockNameRequest *request,
@@ -139,17 +149,6 @@ class PosixImpl final : public posix_server::Posix::Service {
return ::grpc::Status::OK;
}
::grpc::Status Accept(grpc_impl::ServerContext *context,
const ::posix_server::AcceptRequest *request,
::posix_server::AcceptResponse *response) override {
sockaddr_storage addr;
socklen_t addrlen = sizeof(addr);
response->set_fd(accept(request->sockfd(),
reinterpret_cast<sockaddr *>(&addr), &addrlen));
response->set_errno_(errno);
return sockaddr_to_proto(addr, addrlen, response->mutable_addr());
}
::grpc::Status SetSockOpt(
grpc_impl::ServerContext *context,
const ::posix_server::SetSockOptRequest *request,
@@ -174,10 +173,11 @@ class PosixImpl final : public posix_server::Posix::Service {
return ::grpc::Status::OK;
}
::grpc::Status Close(grpc_impl::ServerContext *context,
const ::posix_server::CloseRequest *request,
::posix_server::CloseResponse *response) override {
response->set_ret(close(request->fd()));
::grpc::Status Socket(grpc_impl::ServerContext *context,
const ::posix_server::SocketRequest *request,
::posix_server::SocketResponse *response) override {
response->set_fd(
socket(request->domain(), request->type(), request->protocol()));
response->set_errno_(errno);
return ::grpc::Status::OK;
}
+38 -36
View File
@@ -16,17 +16,6 @@ syntax = "proto3";
package posix_server;
message SocketRequest {
int32 domain = 1;
int32 type = 2;
int32 protocol = 3;
}
message SocketResponse {
int32 fd = 1;
int32 errno_ = 2; // "errno" may fail to compile in c++.
}
message SockaddrIn {
int32 family = 1;
uint32 port = 2;
@@ -48,6 +37,23 @@ message Sockaddr {
}
}
message Timeval {
int64 seconds = 1;
int64 microseconds = 2;
}
// Request and Response pairs for each Posix service RPC call, sorted.
message AcceptRequest {
int32 sockfd = 1;
}
message AcceptResponse {
int32 fd = 1;
int32 errno_ = 2; // "errno" may fail to compile in c++.
Sockaddr addr = 3;
}
message BindRequest {
int32 sockfd = 1;
Sockaddr addr = 2;
@@ -58,6 +64,15 @@ message BindResponse {
int32 errno_ = 2; // "errno" may fail to compile in c++.
}
message CloseRequest {
int32 fd = 1;
}
message CloseResponse {
int32 ret = 1;
int32 errno_ = 2; // "errno" may fail to compile in c++.
}
message GetSockNameRequest {
int32 sockfd = 1;
}
@@ -78,16 +93,6 @@ message ListenResponse {
int32 errno_ = 2; // "errno" may fail to compile in c++.
}
message AcceptRequest {
int32 sockfd = 1;
}
message AcceptResponse {
int32 fd = 1;
int32 errno_ = 2; // "errno" may fail to compile in c++.
Sockaddr addr = 3;
}
message SetSockOptRequest {
int32 sockfd = 1;
int32 level = 2;
@@ -100,11 +105,6 @@ message SetSockOptResponse {
int32 errno_ = 2; // "errno" may fail to compile in c++.
}
message Timeval {
int64 seconds = 1;
int64 microseconds = 2;
}
message SetSockOptTimevalRequest {
int32 sockfd = 1;
int32 level = 2;
@@ -117,12 +117,14 @@ message SetSockOptTimevalResponse {
int32 errno_ = 2; // "errno" may fail to compile in c++.
}
message CloseRequest {
int32 fd = 1;
message SocketRequest {
int32 domain = 1;
int32 type = 2;
int32 protocol = 3;
}
message CloseResponse {
int32 ret = 1;
message SocketResponse {
int32 fd = 1;
int32 errno_ = 2; // "errno" may fail to compile in c++.
}
@@ -139,16 +141,16 @@ message RecvResponse {
}
service Posix {
// Call socket() on the DUT.
rpc Socket(SocketRequest) returns (SocketResponse);
// Call accept() on the DUT.
rpc Accept(AcceptRequest) returns (AcceptResponse);
// Call bind() on the DUT.
rpc Bind(BindRequest) returns (BindResponse);
// Call close() on the DUT.
rpc Close(CloseRequest) returns (CloseResponse);
// Call getsockname() on the DUT.
rpc GetSockName(GetSockNameRequest) returns (GetSockNameResponse);
// Call listen() on the DUT.
rpc Listen(ListenRequest) returns (ListenResponse);
// Call accept() on the DUT.
rpc Accept(AcceptRequest) returns (AcceptResponse);
// Call setsockopt() on the DUT. You should prefer one of the other
// SetSockOpt* functions with a more structured optval or else you may get the
// encoding wrong, such as making a bad assumption about the server's word
@@ -157,8 +159,8 @@ service Posix {
// Call setsockopt() on the DUT with a Timeval optval.
rpc SetSockOptTimeval(SetSockOptTimevalRequest)
returns (SetSockOptTimevalResponse);
// Call close() on the DUT.
rpc Close(CloseRequest) returns (CloseResponse);
// Call socket() on the DUT.
rpc Socket(SocketRequest) returns (SocketResponse);
// Call recv() on the DUT.
rpc Recv(RecvRequest) returns (RecvResponse);
}
File diff suppressed because it is too large Load Diff