On 1/15/19 8:23 AM, Ján Tomko wrote: > Split out parts of the config parsing code to make > the parent function easier to read. > > Signed-off-by: Ján Tomko <jtomko@xxxxxxxxxx> > --- > src/qemu/qemu_conf.c | 162 ++++++++++++++++++++++++------------------- > 1 file changed, 90 insertions(+), 72 deletions(-) > > diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c > index 776ba3f3ad..8bc653fa9e 100644 > --- a/src/qemu/qemu_conf.c > +++ b/src/qemu/qemu_conf.c > @@ -423,6 +423,95 @@ virQEMUDriverConfigHugeTLBFSInit(virHugeTLBFSPtr hugetlbfs, > } > > > +static int > +virQEMUDriverConfigLoadProcessEntry(virQEMUDriverConfigPtr cfg, > + virConfPtr conf) > +{ > + char *stdioHandler = NULL; > + char **hugetlbfs = NULL; > + char *corestr = NULL; VIR_AUTOPTR for each > + int ret = -1; > + size_t i; > + > + if (virConfGetValueStringList(conf, "hugetlbfs_mount", true, > + &hugetlbfs) < 0) > + goto cleanup; > + if (hugetlbfs) { > + /* There already might be something autodetected. Avoid leaking it. */ > + while (cfg->nhugetlbfs) { > + cfg->nhugetlbfs--; > + VIR_FREE(cfg->hugetlbfs[cfg->nhugetlbfs].mnt_dir); > + } > + VIR_FREE(cfg->hugetlbfs); > + > + cfg->nhugetlbfs = virStringListLength((const char *const *)hugetlbfs); > + if (hugetlbfs[0] && > + VIR_ALLOC_N(cfg->hugetlbfs, cfg->nhugetlbfs) < 0) > + goto cleanup; > + > + for (i = 0; hugetlbfs[i] != NULL; i++) { > + if (virQEMUDriverConfigHugeTLBFSInit(&cfg->hugetlbfs[i], > + hugetlbfs[i], i != 0) < 0) > + goto cleanup; > + } > + } > + > + if (virConfGetValueBool(conf, "clear_emulator_capabilities", &cfg->clearEmulatorCapabilities) < 0) > + goto cleanup; > + if (virConfGetValueString(conf, "bridge_helper", &cfg->bridgeHelperName) < 0) > + goto cleanup; > + > + if (virConfGetValueString(conf, "pr_helper", &cfg->prHelperName) < 0) > + goto cleanup; > + > + if (virConfGetValueBool(conf, "set_process_name", &cfg->setProcessName) < 0) > + goto cleanup; > + if (virConfGetValueUInt(conf, "max_processes", &cfg->maxProcesses) < 0) > + goto cleanup; > + if (virConfGetValueUInt(conf, "max_files", &cfg->maxFiles) < 0) > + goto cleanup; > + > + if (virConfGetValueType(conf, "max_core") == VIR_CONF_STRING) { > + if (virConfGetValueString(conf, "max_core", &corestr) < 0) > + goto cleanup; > + if (STREQ(corestr, "unlimited")) { > + cfg->maxCore = ULLONG_MAX; > + } else { > + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, > + _("Unknown core size '%s'"), > + corestr); > + goto cleanup; > + } > + } else if (virConfGetValueULLong(conf, "max_core", &cfg->maxCore) < 0) { > + goto cleanup; > + } > + > + if (virConfGetValueBool(conf, "dump_guest_core", &cfg->dumpGuestCore) < 0) > + goto cleanup; > + if (virConfGetValueString(conf, "stdio_handler", &stdioHandler) < 0) > + goto cleanup; > + if (stdioHandler) { > + if (STREQ(stdioHandler, "logd")) { > + cfg->stdioLogD = true; > + } else if (STREQ(stdioHandler, "file")) { > + cfg->stdioLogD = false; > + } else { > + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, > + _("Unknown stdio handler %s"), > + stdioHandler); > + VIR_FREE(stdioHandler); > + goto cleanup; > + } > + VIR_FREE(stdioHandler); > + } > + > + ret = 0; > + cleanup: > + virStringListFree(hugetlbfs); > + VIR_FREE(corestr); > + return ret; > +} > + blank line Reviewed-by: John Ferlan <jferlan@xxxxxxxxxx> John -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list