Loading libs/binder/RpcConnection.cpp +15 −18 Original line number Diff line number Diff line Loading @@ -130,24 +130,21 @@ bool RpcConnection::addVsockClient(unsigned int cid, unsigned int port) { #endif // __BIONIC__ class SocketAddressImpl : public RpcConnection::SocketAddress { class InetSocketAddress : public RpcConnection::SocketAddress { public: SocketAddressImpl(const sockaddr* addr, size_t size, const String8& desc) : mAddr(addr), mSize(size), mDesc(desc) {} InetSocketAddress(const sockaddr* sockAddr, size_t size, const char* addr, unsigned int port) : mSockAddr(sockAddr), mSize(size), mAddr(addr), mPort(port) {} [[nodiscard]] std::string toString() const override { return std::string(mDesc.c_str(), mDesc.size()); return String8::format("%s:%u", mAddr, mPort).c_str(); } [[nodiscard]] const sockaddr* addr() const override { return mAddr; } [[nodiscard]] const sockaddr* addr() const override { return mSockAddr; } [[nodiscard]] size_t addrSize() const override { return mSize; } void set(const sockaddr* addr, size_t size) { mAddr = addr; mSize = size; } private: const sockaddr* mAddr = nullptr; size_t mSize = 0; String8 mDesc; const sockaddr* mSockAddr; size_t mSize; const char* mAddr; unsigned int mPort; }; AddrInfo GetAddrInfo(const char* addr, unsigned int port) { Loading @@ -170,14 +167,15 @@ AddrInfo GetAddrInfo(const char* addr, unsigned int port) { } bool RpcConnection::setupInetServer(unsigned int port) { auto aiStart = GetAddrInfo("127.0.0.1", port); const char* kAddr = "127.0.0.1"; auto aiStart = GetAddrInfo(kAddr, port); if (aiStart == nullptr) return false; SocketAddressImpl socketAddress(nullptr, 0, String8::format("127.0.0.1:%u", port)); for (auto ai = aiStart.get(); ai != nullptr; ai = ai->ai_next) { socketAddress.set(ai->ai_addr, ai->ai_addrlen); InetSocketAddress socketAddress(ai->ai_addr, ai->ai_addrlen, kAddr, port); if (setupSocketServer(socketAddress)) return true; } ALOGE("None of the socket address resolved for 127.0.0.1:%u can be set up as inet server.", ALOGE("None of the socket address resolved for %s:%u can be set up as inet server.", kAddr, port); return false; } Loading @@ -185,9 +183,8 @@ bool RpcConnection::setupInetServer(unsigned int port) { bool RpcConnection::addInetClient(const char* addr, unsigned int port) { auto aiStart = GetAddrInfo(addr, port); if (aiStart == nullptr) return false; SocketAddressImpl socketAddress(nullptr, 0, String8::format("%s:%u", addr, port)); for (auto ai = aiStart.get(); ai != nullptr; ai = ai->ai_next) { socketAddress.set(ai->ai_addr, ai->ai_addrlen); InetSocketAddress socketAddress(ai->ai_addr, ai->ai_addrlen, addr, port); if (addSocketClient(socketAddress)) return true; } ALOGE("None of the socket address resolved for %s:%u can be added as inet client.", addr, port); Loading Loading
libs/binder/RpcConnection.cpp +15 −18 Original line number Diff line number Diff line Loading @@ -130,24 +130,21 @@ bool RpcConnection::addVsockClient(unsigned int cid, unsigned int port) { #endif // __BIONIC__ class SocketAddressImpl : public RpcConnection::SocketAddress { class InetSocketAddress : public RpcConnection::SocketAddress { public: SocketAddressImpl(const sockaddr* addr, size_t size, const String8& desc) : mAddr(addr), mSize(size), mDesc(desc) {} InetSocketAddress(const sockaddr* sockAddr, size_t size, const char* addr, unsigned int port) : mSockAddr(sockAddr), mSize(size), mAddr(addr), mPort(port) {} [[nodiscard]] std::string toString() const override { return std::string(mDesc.c_str(), mDesc.size()); return String8::format("%s:%u", mAddr, mPort).c_str(); } [[nodiscard]] const sockaddr* addr() const override { return mAddr; } [[nodiscard]] const sockaddr* addr() const override { return mSockAddr; } [[nodiscard]] size_t addrSize() const override { return mSize; } void set(const sockaddr* addr, size_t size) { mAddr = addr; mSize = size; } private: const sockaddr* mAddr = nullptr; size_t mSize = 0; String8 mDesc; const sockaddr* mSockAddr; size_t mSize; const char* mAddr; unsigned int mPort; }; AddrInfo GetAddrInfo(const char* addr, unsigned int port) { Loading @@ -170,14 +167,15 @@ AddrInfo GetAddrInfo(const char* addr, unsigned int port) { } bool RpcConnection::setupInetServer(unsigned int port) { auto aiStart = GetAddrInfo("127.0.0.1", port); const char* kAddr = "127.0.0.1"; auto aiStart = GetAddrInfo(kAddr, port); if (aiStart == nullptr) return false; SocketAddressImpl socketAddress(nullptr, 0, String8::format("127.0.0.1:%u", port)); for (auto ai = aiStart.get(); ai != nullptr; ai = ai->ai_next) { socketAddress.set(ai->ai_addr, ai->ai_addrlen); InetSocketAddress socketAddress(ai->ai_addr, ai->ai_addrlen, kAddr, port); if (setupSocketServer(socketAddress)) return true; } ALOGE("None of the socket address resolved for 127.0.0.1:%u can be set up as inet server.", ALOGE("None of the socket address resolved for %s:%u can be set up as inet server.", kAddr, port); return false; } Loading @@ -185,9 +183,8 @@ bool RpcConnection::setupInetServer(unsigned int port) { bool RpcConnection::addInetClient(const char* addr, unsigned int port) { auto aiStart = GetAddrInfo(addr, port); if (aiStart == nullptr) return false; SocketAddressImpl socketAddress(nullptr, 0, String8::format("%s:%u", addr, port)); for (auto ai = aiStart.get(); ai != nullptr; ai = ai->ai_next) { socketAddress.set(ai->ai_addr, ai->ai_addrlen); InetSocketAddress socketAddress(ai->ai_addr, ai->ai_addrlen, addr, port); if (addSocketClient(socketAddress)) return true; } ALOGE("None of the socket address resolved for %s:%u can be added as inet client.", addr, port); Loading