diff options
author | Aaron <aaron@10gen.com> | 2010-04-08 13:38:23 -0700 |
---|---|---|
committer | Aaron <aaron@10gen.com> | 2010-04-08 13:38:23 -0700 |
commit | 1007c905b02d7ed456fa5c4b2dfae99ab18c175a (patch) | |
tree | 6bb9d35d03def751d074122411f9eb361b6f7ef6 /util | |
parent | b051b161975f389814545257368c9cf2310e5921 (diff) | |
parent | 89e671b0a262ad71141c87a4f80c0b286b56451d (diff) | |
download | mongo-1007c905b02d7ed456fa5c4b2dfae99ab18c175a.tar.gz |
Merge branch 'master' of github.com:mongodb/mongo
Diffstat (limited to 'util')
-rw-r--r-- | util/message.cpp | 4 | ||||
-rw-r--r-- | util/mmap.cpp | 4 | ||||
-rw-r--r-- | util/sock.cpp | 7 | ||||
-rw-r--r-- | util/sock.h | 3 |
4 files changed, 16 insertions, 2 deletions
diff --git a/util/message.cpp b/util/message.cpp index b469218c18b..14a9c24b4a9 100644 --- a/util/message.cpp +++ b/util/message.cpp @@ -49,8 +49,10 @@ namespace mongo { vector<SockAddr> out; if (*ips == '\0'){ out.push_back(SockAddr("0.0.0.0", port)); // IPv4 all + + if (IPv6Enabled()) + out.push_back(SockAddr("::", port)); // IPv6 all #ifndef _WIN32 - out.push_back(SockAddr("::", port)); // IPv6 all if (!noUnixSocket) out.push_back(SockAddr(makeUnixSockPath(port).c_str(), port)); // Unix socket #endif diff --git a/util/mmap.cpp b/util/mmap.cpp index 83e9107f0d2..c200ce9dcd3 100644 --- a/util/mmap.cpp +++ b/util/mmap.cpp @@ -98,6 +98,10 @@ namespace mongo { MongoFile * mmf = *i; if ( ! mmf ) continue; + + PRINT(mmf); + PRINT(typeid(mmf).name()); + mmf->flush( sync ); } return num; diff --git a/util/sock.cpp b/util/sock.cpp index 979ae2061e7..83a1c4c7a23 100644 --- a/util/sock.cpp +++ b/util/sock.cpp @@ -22,6 +22,10 @@ namespace mongo { static mongo::mutex sock_mutex; + static bool ipv6 = false; + void enableIPv6(bool state) { ipv6 = state; } + bool IPv6Enabled() { return ipv6; } + SockAddr::SockAddr(int sourcePort) { memset(as<sockaddr_in>().sin_zero, 0, sizeof(as<sockaddr_in>().sin_zero)); as<sockaddr_in>().sin_family = AF_INET; @@ -47,7 +51,8 @@ namespace mongo { addrinfo hints; memset(&hints, 0, sizeof(addrinfo)); hints.ai_socktype = SOCK_STREAM; - hints.ai_flags = AI_ADDRCONFIG; + hints.ai_flags = AI_ADDRCONFIG; + hints.ai_family = (IPv6Enabled() ? AF_UNSPEC : AF_INET); stringstream ss; ss << port; diff --git a/util/sock.h b/util/sock.h index 1699c8313df..4119e2dbf3e 100644 --- a/util/sock.h +++ b/util/sock.h @@ -115,6 +115,9 @@ namespace mongo { // in, look up its ip and return that. Returns "" on failure. string hostbyname(const char *hostname); + void enableIPv6(bool state=true); + bool IPv6Enabled(); + struct SockAddr { SockAddr() { addressSize = sizeof(sa); |