Changeset: 049ba0242124 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=049ba0242124
Modified Files:
tools/merovingian/daemon/forkmserver.c
tools/merovingian/daemon/merovingian.c
tools/merovingian/utils/properties.c
tools/merovingian/utils/utils.c
Branch: Oct2020
Log Message:
monetdb daemon listenaddr changes
The property ipv6 has been removed.
The property localhost now accepts the following values:
- ::1, :: (bind only ipv6 interfaces)
- 127.0.0.1, 0.0.0.0 (bind only ipv4 interfaces)
- localhost, all (bind both ipv4 and ipv6 interfaces)
diffs (112 lines):
diff --git a/tools/merovingian/daemon/forkmserver.c
b/tools/merovingian/daemon/forkmserver.c
--- a/tools/merovingian/daemon/forkmserver.c
+++ b/tools/merovingian/daemon/forkmserver.c
@@ -533,7 +533,6 @@ forkMserver(char *database, sabdb** stat
raw_strings="raw_strings=true";
}
mport = (unsigned int)getConfNum(_mero_props, "port");
- ipv6 = getConfNum(_mero_props, "ipv6") == 1;
/* ok, now exec that mserver we want */
snprintf(dbpath, sizeof(dbpath),
@@ -559,6 +558,13 @@ forkMserver(char *database, sabdb** stat
argv[c++] = dbtrace_path;
}
+ if (strncmp(listenaddr, "127.0.0.1", strlen("127.0.0.1")) == 0 ||
+ strncmp(listenaddr, "0.0.0.0", strlen("0.0.0.0")) == 0) {
+ ipv6 = false;
+ } else {
+ ipv6 = true;
+ }
+
if (mydoproxy) {
/* we "proxy", so we can just solely use UNIX domain sockets
* internally. Before we hit our head, check if we can
diff --git a/tools/merovingian/daemon/merovingian.c
b/tools/merovingian/daemon/merovingian.c
--- a/tools/merovingian/daemon/merovingian.c
+++ b/tools/merovingian/daemon/merovingian.c
@@ -361,7 +361,6 @@ main(int argc, char *argv[])
{"sockdir", strdup("/tmp"), 0,
STR},
{"listenaddr", strdup("localhost"), 0,
LADDR},
{"port", strdup(MERO_PORT), atoi(MERO_PORT),
INT},
- {"ipv6", strdup("false"), 0,
BOOLEAN},
{"exittimeout", strdup("60"), 60,
INT},
{"forward", strdup("proxy"), 0,
OTHER},
@@ -423,8 +422,6 @@ main(int argc, char *argv[])
kv->val = strdup("no");
kv = findConfKey(_mero_db_props, "embedc");
kv->val = strdup("no");
- kv = findConfKey(_mero_db_props, "ipv6");
- kv->val = strdup("no");
kv = findConfKey(_mero_db_props, "nclients");
kv->val = strdup("64");
kv = findConfKey(_mero_db_props, "type");
@@ -642,7 +639,6 @@ main(int argc, char *argv[])
}
_mero_props = ckv;
- use_ipv6 = getConfNum(_mero_props, "ipv6") == 1;
pidfilename = getConfVal(_mero_props, "pidfile");
p = getConfVal(_mero_props, "forward");
@@ -663,6 +659,17 @@ main(int argc, char *argv[])
}
host = kv->val;
+ if (strncmp(host, "127.0.0.1", strlen("127.0.0.1")) == 0 ||
+ strncmp(host, "0.0.0.0", strlen("0.0.0.0")) == 0) {
+ use_ipv6 = false;
+ } else {
+ use_ipv6 = true;
+ }
+
+ if (strncmp(host, "all", strlen("all")) == 0) {
+ host = NULL;
+ }
+
kv = findConfKey(_mero_props, "port");
if (kv->ival <= 0 || kv->ival > 65535) {
Mfprintf(stderr, "invalid port number: %s, defaulting to %s\n",
@@ -967,7 +974,7 @@ main(int argc, char *argv[])
/* open up connections */
if ((e = openConnectionIP(&sock, false, use_ipv6, host, port, stdout))
== NO_ERR &&
(e = openConnectionUNIX(&socku, mapi_usock, 0, stdout)) ==
NO_ERR &&
- (!discovery || (e = openConnectionIP(&discsock, true, false,
host, port, _mero_discout)) == NO_ERR) &&
+ (!discovery || (e = openConnectionIP(&discsock, true, use_ipv6,
host, port, _mero_discout)) == NO_ERR) &&
(e = openConnectionUNIX(&unsock, control_usock, S_IRWXO,
_mero_ctlout)) == NO_ERR) {
pthread_t ctid = 0;
pthread_t dtid = 0;
diff --git a/tools/merovingian/utils/properties.c
b/tools/merovingian/utils/properties.c
--- a/tools/merovingian/utils/properties.c
+++ b/tools/merovingian/utils/properties.c
@@ -34,7 +34,6 @@ static const confkeyval _internal_prop_k
{"embedpy", NULL, 0, BOOLEAN},
{"embedpy3", NULL, 0, BOOLEAN},
{"embedc", NULL, 0, BOOLEAN},
- {"ipv6", NULL, 0, BOOLEAN},
{"listenaddr", NULL, 0, LADDR},
{"nclients", NULL, 0, INT},
{"mfunnel", NULL, 0, STR},
diff --git a/tools/merovingian/utils/utils.c b/tools/merovingian/utils/utils.c
--- a/tools/merovingian/utils/utils.c
+++ b/tools/merovingian/utils/utils.c
@@ -269,10 +269,15 @@ setConfVal(confkeyval *ckv, const char *
}; break;
case LADDR: {
if (strncmp(val, "127.0.0.1", strlen("127.0.0.1")) != 0
&&
- strncmp(val, "0.0.0.0", strlen("0.0.0.0")) !=
0) {
+ strncmp(val, "0.0.0.0", strlen("0.0.0.0")) != 0
&&
+ strncmp(val, "::", 2) != 0 &&
+ strncmp(val, "::1", 3) != 0 &&
+ strncmp(val, "localhost", strlen("localhost"))
!= 0 &&
+ strncmp(val, "all", strlen("all")) != 0
+ ) {
char buf[256];
snprintf(buf, sizeof(buf),
- "only valid values for %s are
\"127.0.0.1\" or \"0.0.0.0\"\n",
+ "only valid values for %s are
\"127.0.0.1\", \"0.0.0.0\", \"::1\", \"::\", \"localhost\" or \"all\"\n",
ckv->key);
return(strdup(buf));
}
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list