summaryrefslogtreecommitdiff
path: root/util
diff options
context:
space:
mode:
authorAaron <aaron@10gen.com>2010-04-08 13:38:23 -0700
committerAaron <aaron@10gen.com>2010-04-08 13:38:23 -0700
commit1007c905b02d7ed456fa5c4b2dfae99ab18c175a (patch)
tree6bb9d35d03def751d074122411f9eb361b6f7ef6 /util
parentb051b161975f389814545257368c9cf2310e5921 (diff)
parent89e671b0a262ad71141c87a4f80c0b286b56451d (diff)
downloadmongo-1007c905b02d7ed456fa5c4b2dfae99ab18c175a.tar.gz
Merge branch 'master' of github.com:mongodb/mongo
Diffstat (limited to 'util')
-rw-r--r--util/message.cpp4
-rw-r--r--util/mmap.cpp4
-rw-r--r--util/sock.cpp7
-rw-r--r--util/sock.h3
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);