summaryrefslogtreecommitdiff
path: root/src/mongo/util/net
diff options
context:
space:
mode:
authorJonathan Reams <jbreams@mongodb.com>2017-12-08 16:37:23 -0500
committerJonathan Reams <jbreams@mongodb.com>2017-12-12 10:37:23 -0500
commit9dc34426570cc57cfdb4b6f6ea4f31018662082f (patch)
tree4b089e56b5dc5c04b51b4063309a90635a434b9a /src/mongo/util/net
parentf7b89ae89514673770f558456d15cb46581c3be5 (diff)
downloadmongo-9dc34426570cc57cfdb4b6f6ea4f31018662082f.tar.gz
SERVER-32216 Remove UNIX sockets on clean shutdown
Diffstat (limited to 'src/mongo/util/net')
-rw-r--r--src/mongo/util/net/sockaddr.cpp8
-rw-r--r--src/mongo/util/net/sockaddr.h1
2 files changed, 7 insertions, 2 deletions
diff --git a/src/mongo/util/net/sockaddr.cpp b/src/mongo/util/net/sockaddr.cpp
index ad3654e5507..6b441390d1c 100644
--- a/src/mongo/util/net/sockaddr.cpp
+++ b/src/mongo/util/net/sockaddr.cpp
@@ -231,6 +231,10 @@ bool SockAddr::isDefaultRoute() const {
}
}
+bool SockAddr::isAnonymousUNIXSocket() const {
+ return ((getType() == AF_UNIX) && (as<sockaddr_un>().sun_path[0] == '\0'));
+}
+
std::string SockAddr::toString(bool includePort) const {
if (includePort && (getType() != AF_UNIX) && (getType() != AF_UNSPEC)) {
StringBuilder ss;
@@ -281,8 +285,8 @@ std::string SockAddr::getAddr() const {
}
case AF_UNIX:
- return (as<sockaddr_un>().sun_path[0] != '\0' ? as<sockaddr_un>().sun_path
- : "anonymous unix socket");
+ return (!isAnonymousUNIXSocket() ? as<sockaddr_un>().sun_path
+ : "anonymous unix socket");
case AF_UNSPEC:
return "(NONE)";
default:
diff --git a/src/mongo/util/net/sockaddr.h b/src/mongo/util/net/sockaddr.h
index db02dd73773..c91887f245c 100644
--- a/src/mongo/util/net/sockaddr.h
+++ b/src/mongo/util/net/sockaddr.h
@@ -133,6 +133,7 @@ struct SockAddr {
bool isLocalHost() const;
bool isDefaultRoute() const;
+ bool isAnonymousUNIXSocket() const;
bool operator==(const SockAddr& r) const;