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

Commit bf43a605 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Add RpcServer::hasServer" am: 60e069a1 am: 67cf7e1e am: 410cc968

Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1705664

Change-Id: I7d36f4541dd5717b932bb105fb5b08e658675395
parents b45e7709 410cc968
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -134,7 +134,7 @@ void RpcServer::join() {

bool RpcServer::acceptOne() {
    LOG_ALWAYS_FATAL_IF(!mAgreedExperimental, "no!");
    LOG_ALWAYS_FATAL_IF(mServer.get() == -1, "RpcServer must be setup to join.");
    LOG_ALWAYS_FATAL_IF(!hasServer(), "RpcServer must be setup to join.");

    unique_fd clientFd(
            TEMP_FAILURE_RETRY(accept4(mServer.get(), nullptr, nullptr /*length*/, SOCK_CLOEXEC)));
@@ -232,11 +232,7 @@ void RpcServer::establishConnection(sp<RpcServer>&& server, base::unique_fd clie

bool RpcServer::setupSocketServer(const RpcSocketAddress& addr) {
    LOG_RPC_DETAIL("Setting up socket server %s", addr.toString().c_str());

    {
        std::lock_guard<std::mutex> _l(mLock);
        LOG_ALWAYS_FATAL_IF(mServer.get() != -1, "Each RpcServer can only have one server.");
    }
    LOG_ALWAYS_FATAL_IF(hasServer(), "Each RpcServer can only have one server.");

    unique_fd serverFd(
            TEMP_FAILURE_RETRY(socket(addr.addr()->sa_family, SOCK_STREAM | SOCK_CLOEXEC, 0)));
@@ -275,4 +271,9 @@ void RpcServer::onSessionTerminating(const sp<RpcSession>& session) {
    (void)mSessions.erase(it);
}

bool RpcServer::hasServer() {
    std::lock_guard<std::mutex> _l(mLock);
    return mServer.ok();
}

} // namespace android
+5 −0
Original line number Diff line number Diff line
@@ -74,6 +74,11 @@ public:
     */
    [[nodiscard]] bool setupInetServer(unsigned int port, unsigned int* assignedPort);

    /**
     * If setup*Server has been successful, return true. Otherwise return false.
     */
    [[nodiscard]] bool hasServer();

    void iUnderstandThisCodeIsExperimentalAndIWillNotUseItInProduction();

    /**