projects
/
openvswitch
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Allow sFlowCpInterval=0 to disable counter samples, and fix bug in sampler removal.
[openvswitch]
/
lib
/
cfg.c
diff --git
a/lib/cfg.c
b/lib/cfg.c
index 433d7a0fac56ba6cb47e402fe573ed909941e8ed..d0170b60e720fd00f5e78721c60c1b8c00fe644a 100644
(file)
--- a/
lib/cfg.c
+++ b/
lib/cfg.c
@@
-92,6
+92,12
@@
static bool is_type(const char *s, enum cfg_flags);
#define CC_FILE_NAME CC_ALNUM "._-"
#define CC_KEY CC_ALNUM "._-@$:+"
#define CC_FILE_NAME CC_ALNUM "._-"
#define CC_KEY CC_ALNUM "._-@$:+"
+void
+cfg_init(void)
+{
+ svec_terminate(&cfg);
+}
+
/* Sets 'file_name' as the configuration file read by cfg_read(). Returns 0 on
* success, otherwise a positive errno value if 'file_name' cannot be opened.
*
/* Sets 'file_name' as the configuration file read by cfg_read(). Returns 0 on
* success, otherwise a positive errno value if 'file_name' cannot be opened.
*
@@
-130,7
+136,7
@@
cfg_set_file(const char *file_name)
slash = strrchr(file_name, '/');
if (slash) {
lock_name = xasprintf("%.*s/.%s.~lock~",
slash = strrchr(file_name, '/');
if (slash) {
lock_name = xasprintf("%.*s/.%s.~lock~",
-
slash - file_name
, file_name, slash + 1);
+
(int) (slash - file_name)
, file_name, slash + 1);
} else {
lock_name = xasprintf(".%s.~lock~", file_name);
}
} else {
lock_name = xasprintf(".%s.~lock~", file_name);
}
@@
-183,6
+189,7
@@
cfg_read(void)
file = fopen(cfg_name, "r");
if (!file) {
VLOG_ERR("failed to open \"%s\": %s", cfg_name, strerror(errno));
file = fopen(cfg_name, "r");
if (!file) {
VLOG_ERR("failed to open \"%s\": %s", cfg_name, strerror(errno));
+ svec_terminate(&cfg);
return errno;
}
return errno;
}