Changeset: efe64846f623 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=efe64846f623
Modified Files:
tools/merovingian/utils/properties.c
tools/merovingian/utils/utils.c
Branch: default
Log Message:
Merge with Jul2017 branch.
diffs (103 lines):
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
@@ -24,7 +24,7 @@
"# This file is used by monetdbd\n\n"
/* these are the properties used for starting an mserver */
-static confkeyval _internal_prop_keys[PROPLENGTH] = {
+static const confkeyval _internal_prop_keys[PROPLENGTH] = {
{"type", NULL, 0, STR},
{"shared", NULL, 0, STR},
{"nthreads", NULL, 0, INT},
@@ -42,6 +42,20 @@ static confkeyval _internal_prop_keys[PR
static pthread_mutex_t readprops_lock = PTHREAD_MUTEX_INITIALIZER;
/**
+ * Returns true if the key is a default property.
+ */
+int
+defaultProperty(const char *property) {
+ int i;
+ if (property == NULL)
+ return 0;
+ for (i = 0; _internal_prop_keys[i].key != NULL; i++)
+ if (strcmp(property, _internal_prop_keys[i].key) == 0)
+ return 1;
+ return 0;
+}
+
+/**
* Returns the currently supported list of properties. This list can be
* used to read all values, modify some and write the file back again.
* The returned list is malloced, the keys are a pointer to a static
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
@@ -96,24 +96,23 @@ readConfFileFull(confkeyval *list, FILE
val = strtok(NULL, separator);
/* strip trailing newline */
val = strtok(val, "\n");
- /* check if it is default property or not. those are
set in a special way */
- if (defaultProperty(key)) {
- if ((err = setConfValForKey(t, key, val)) !=
NULL) {
- free(err); /* ignore, just fall back to
default */
+ if ((err = setConfValForKey(t, key, val)) != NULL) {
+ if (strstr(err, "is not recognized") == NULL) {
+ /* If we already have more than
PROPLENGTH
+ * entries, ignore every ad hoc property
+ */
+ if (cnt >= PROPLENGTH - 1) {
+ continue;
+ }
+ list->key = strdup(key);
+ list->val = strdup(val);
+ list->ival = 0;
+ list->type = STR;
+ list++;
+ cnt++;
}
- } else {
- /* If we already have more than PROPLENGTH
entries, ignore every
- * ad hoc property
- */
- if (cnt >= PROPLENGTH - 1) {
- continue;
- }
- list->key = strdup(key);
- list->val = strdup(val);
- list->ival = 0;
- list->type = STR;
- list++;
- cnt++;
+ /* else: ignore the property */
+ free(err);
}
}
}
@@ -134,25 +133,6 @@ freeConfFile(confkeyval *list) {
}
/**
- * Returns true if the key is a default property.
- */
-int
-defaultProperty(const char *property) {
- if (property == NULL)
- return 0;
- return strcmp(property, "type") == 0 ||
- strcmp(property, "shared") == 0 ||
- strcmp(property, "nthreads") == 0 ||
- strcmp(property, "readonly") == 0 ||
- strcmp(property, "nclients") == 0 ||
- strcmp(property, "mfunnel") == 0 ||
- strcmp(property, "embedr") == 0 ||
- strcmp(property, "embedpy") == 0 ||
- strcmp(property, "embedpy3") == 0 ||
- strcmp(property, "optpipe") == 0;
-}
-
-/**
* Returns a pointer to the key-value that has a matching key with the
* given key, or NULL if no key was found.
*/
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list