#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.
*
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);
}
file = fopen(cfg_name, "r");
if (!file) {
VLOG_ERR("failed to open \"%s\": %s", cfg_name, strerror(errno));
+ svec_terminate(&cfg);
return errno;
}
/* Returns the value numbered 'idx' of 'key', parsed as an datapath ID.
* Returns 0 if 'idx' is greater than or equal to cfg_count(key) or if the
- * value 'idx' of 'key' is not a valid datapath ID consisting of exactly 12
+ * value 'idx' of 'key' is not a valid datapath ID consisting of exactly 16
* hexadecimal digits. */
uint64_t
cfg_get_dpid(int idx, const char *key_, ...)
static bool
parse_dpid(const char *s, uint64_t *dpid)
{
- if (strlen(s) == 12 && strspn(s, "0123456789abcdefABCDEF") == 12) {
+ if (strlen(s) == 16 && strspn(s, "0123456789abcdefABCDEF") == 16) {
*dpid = strtoll(s, NULL, 16);
return true;
} else {