提交 b474952e 编写于 作者: D Daniel P. Berrange

lockd: convert to typesafe virConf accessors

Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
上级 b9c8af4d
...@@ -82,7 +82,7 @@ static virLockManagerLockDaemonDriverPtr driver; ...@@ -82,7 +82,7 @@ static virLockManagerLockDaemonDriverPtr driver;
static int virLockManagerLockDaemonLoadConfig(const char *configFile) static int virLockManagerLockDaemonLoadConfig(const char *configFile)
{ {
virConfPtr conf; virConfPtr conf;
virConfValuePtr p; int ret = -1;
if (access(configFile, R_OK) == -1) { if (access(configFile, R_OK) == -1) {
if (errno != ENOENT) { if (errno != ENOENT) {
...@@ -97,57 +97,26 @@ static int virLockManagerLockDaemonLoadConfig(const char *configFile) ...@@ -97,57 +97,26 @@ static int virLockManagerLockDaemonLoadConfig(const char *configFile)
if (!(conf = virConfReadFile(configFile, 0))) if (!(conf = virConfReadFile(configFile, 0)))
return -1; return -1;
#define CHECK_TYPE(name, typ) if (p && p->type != (typ)) { \ if (virConfGetValueBool(conf, "auto_disk_leases", &driver->autoDiskLease) < 0)
virReportError(VIR_ERR_INTERNAL_ERROR, \ goto cleanup;
"%s: %s: expected type " #typ, \
configFile, (name)); \
virConfFree(conf); \
return -1; \
}
p = virConfGetValue(conf, "auto_disk_leases");
CHECK_TYPE("auto_disk_leases", VIR_CONF_ULONG);
if (p) driver->autoDiskLease = p->l;
p = virConfGetValue(conf, "file_lockspace_dir"); if (virConfGetValueString(conf, "file_lockspace_dir", &driver->fileLockSpaceDir) < 0)
CHECK_TYPE("file_lockspace_dir", VIR_CONF_STRING); goto cleanup;
if (p && p->str) {
VIR_FREE(driver->fileLockSpaceDir);
if (VIR_STRDUP(driver->fileLockSpaceDir, p->str) < 0) {
virConfFree(conf);
return -1;
}
}
p = virConfGetValue(conf, "lvm_lockspace_dir"); if (virConfGetValueString(conf, "lvm_lockspace_dir", &driver->lvmLockSpaceDir) < 0)
CHECK_TYPE("lvm_lockspace_dir", VIR_CONF_STRING); goto cleanup;
if (p && p->str) {
VIR_FREE(driver->lvmLockSpaceDir);
if (VIR_STRDUP(driver->lvmLockSpaceDir, p->str) < 0) {
virConfFree(conf);
return -1;
}
}
p = virConfGetValue(conf, "scsi_lockspace_dir"); if (virConfGetValueString(conf, "scsi_lockspace_dir", &driver->scsiLockSpaceDir) < 0)
CHECK_TYPE("scsi_lockspace_dir", VIR_CONF_STRING); goto cleanup;
if (p && p->str) {
VIR_FREE(driver->scsiLockSpaceDir);
if (VIR_STRDUP(driver->scsiLockSpaceDir, p->str) < 0) {
virConfFree(conf);
return -1;
}
}
p = virConfGetValue(conf, "require_lease_for_disks");
CHECK_TYPE("require_lease_for_disks", VIR_CONF_ULONG);
if (p)
driver->requireLeaseForDisks = p->l;
else
driver->requireLeaseForDisks = !driver->autoDiskLease; driver->requireLeaseForDisks = !driver->autoDiskLease;
if (virConfGetValueBool(conf, "require_lease_for_disks", &driver->requireLeaseForDisks) < 0)
goto cleanup;
ret = 0;
cleanup:
virConfFree(conf); virConfFree(conf);
return 0; return ret;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册