summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Treehugger Robot <treehugger-gerrit@google.com> 2021-05-14 01:46:53 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2021-05-14 01:46:53 +0000
commit60e069a155719eb8396c005bc97a01c14b5fb396 (patch)
tree4472bad15b98b1bae749e100a86723fe554843c7
parentc3229abcc72519b381e40fd9223df333f67d6779 (diff)
parent0eb5a6735f738fa80a47ae9f604af48ec482c3f3 (diff)
Merge "Add RpcServer::hasServer"
-rw-r--r--libs/binder/RpcServer.cpp13
-rw-r--r--libs/binder/include/binder/RpcServer.h5
2 files changed, 12 insertions, 6 deletions
diff --git a/libs/binder/RpcServer.cpp b/libs/binder/RpcServer.cpp
index 3c63789648..dc10d1c524 100644
--- a/libs/binder/RpcServer.cpp
+++ b/libs/binder/RpcServer.cpp
@@ -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
diff --git a/libs/binder/include/binder/RpcServer.h b/libs/binder/include/binder/RpcServer.h
index 6e2754016a..771bbe68b8 100644
--- a/libs/binder/include/binder/RpcServer.h
+++ b/libs/binder/include/binder/RpcServer.h
@@ -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();
/**