Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a8c0dd74 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "[rpc_binder][test] Merge unixBootstrapFd and socketFd in binderRpcTest"

parents c7ead71b 1ef010bf
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@ parcelable BinderRpcTestServerConfig {
    int rpcSecurity;
    int serverVersion;
    int vsockPort;
    int unixBootstrapFd; // Inherited from parent
    int socketFd;
    int socketFd; // Inherited from the parent process.
    @utf8InCpp String addr;
}
+9 −8
Original line number Diff line number Diff line
@@ -252,17 +252,19 @@ std::unique_ptr<ProcessSession> BinderRpc::createRpcTestSocketServerProcessEtc(
                                                   singleThreaded ? "_single_threaded" : "",
                                                   noKernel ? "_no_kernel" : "");

    base::unique_fd bootstrapClientFd, bootstrapServerFd, socketFd;
    base::unique_fd bootstrapClientFd, socketFd;

    auto addr = allocateSocketAddress();
    // Initializes the socket before the fork/exec.
    if (socketType == SocketType::UNIX_RAW) {
        socketFd = initUnixSocket(addr);
    } else if (socketType == SocketType::UNIX_BOOTSTRAP) {
        // Do not set O_CLOEXEC, bootstrapServerFd needs to survive fork/exec.
        // This is because we cannot pass ParcelFileDescriptor over a pipe.
    if (!base::Socketpair(SOCK_STREAM, &bootstrapClientFd, &bootstrapServerFd)) {
        if (!base::Socketpair(SOCK_STREAM, &bootstrapClientFd, &socketFd)) {
            int savedErrno = errno;
            LOG(FATAL) << "Failed socketpair(): " << strerror(savedErrno);
        }
    auto addr = allocateSocketAddress();
    // Initializes the socket before the fork/exec.
    if (socketType == SocketType::UNIX_RAW) {
        socketFd = initUnixSocket(addr);
    }

    auto ret = std::make_unique<LinuxProcessSession>(
@@ -280,7 +282,6 @@ std::unique_ptr<ProcessSession> BinderRpc::createRpcTestSocketServerProcessEtc(
    serverConfig.serverVersion = serverVersion;
    serverConfig.vsockPort = allocateVsockPort();
    serverConfig.addr = addr;
    serverConfig.unixBootstrapFd = bootstrapServerFd.get();
    serverConfig.socketFd = socketFd.get();
    for (auto mode : options.serverSupportedFileDescriptorTransportModes) {
        serverConfig.serverSupportedFileDescriptorTransportModes.push_back(
+3 −3
Original line number Diff line number Diff line
@@ -42,7 +42,7 @@ int main(int argc, const char* argv[]) {
    server->setSupportedFileDescriptorTransportModes(serverSupportedFileDescriptorTransportModes);

    unsigned int outPort = 0;
    base::unique_fd unixBootstrapFd(serverConfig.unixBootstrapFd);
    base::unique_fd socketFd(serverConfig.socketFd);

    switch (socketType) {
        case SocketType::PRECONNECTED:
@@ -52,10 +52,10 @@ int main(int argc, const char* argv[]) {
                    << serverConfig.addr;
            break;
        case SocketType::UNIX_BOOTSTRAP:
            CHECK_EQ(OK, server->setupUnixDomainSocketBootstrapServer(std::move(unixBootstrapFd)));
            CHECK_EQ(OK, server->setupUnixDomainSocketBootstrapServer(std::move(socketFd)));
            break;
        case SocketType::UNIX_RAW:
            CHECK_EQ(OK, server->setupRawSocketServer(base::unique_fd(serverConfig.socketFd)));
            CHECK_EQ(OK, server->setupRawSocketServer(std::move(socketFd)));
            break;
        case SocketType::VSOCK:
            CHECK_EQ(OK, server->setupVsockServer(serverConfig.vsockPort));