The functions for converting migration typed parameters to QEMU
migration parameters and back were only implemented for integer types.
This patch adds support for string parameters.
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
---
src/qemu/qemu_migration_params.c | 56 ++++++++++++++++++++++++++++++++
1 file changed, 56 insertions(+)
diff --git a/src/qemu/qemu_migration_params.c b/src/qemu/qemu_migration_params.c
index c28814bc5b..88c08528bc 100644
--- a/src/qemu/qemu_migration_params.c
+++ b/src/qemu/qemu_migration_params.c
@@ -412,6 +412,51 @@ qemuMigrationParamsSetTPULL(qemuMigrationParamsPtr migParams,
}
+static int
+qemuMigrationParamsGetTPString(qemuMigrationParamsPtr migParams,
+ qemuMigrationParam param,
+ virTypedParameterPtr params,
+ int nparams,
+ const char *name)
+{
+ const char *value = NULL;
+ int rc;
+
+ if (qemuMigrationParamsCheckType(param, QEMU_MIGRATION_PARAM_TYPE_STRING) < 0)
+ return -1;
+
+ if (!params)
+ return 0;
+
+ if ((rc = virTypedParamsGetString(params, nparams, name, &value)) < 0)
+ return -1;
+
+ migParams->params[param].value.s = g_strdup(value);
+ migParams->params[param].set = !!rc;
+ return 0;
+}
+
+
+static int
+qemuMigrationParamsSetTPString(qemuMigrationParamsPtr migParams,
+ qemuMigrationParam param,
+ virTypedParameterPtr *params,
+ int *nparams,
+ int *maxparams,
+ const char *name)
+{
+ if (qemuMigrationParamsCheckType(param, QEMU_MIGRATION_PARAM_TYPE_STRING) < 0)
+ return -1;
+
+ if (!migParams->params[param].set)
+ return 0;
+
+ return virTypedParamsAddString(params, nparams, maxparams, name,
+ migParams->params[param].value.s);
+}
+
+
+
static int
qemuMigrationParamsSetCompression(virTypedParameterPtr params,
int nparams,
@@ -536,7 +581,12 @@ qemuMigrationParamsFromFlags(virTypedParameterPtr params,
break;
case QEMU_MIGRATION_PARAM_TYPE_BOOL:
+ break;
+
case QEMU_MIGRATION_PARAM_TYPE_STRING:
+ if (qemuMigrationParamsGetTPString(migParams, item->param, params,
+ nparams, item->typedParam) < 0)
+ goto error;
break;
}
}
@@ -612,7 +662,13 @@ qemuMigrationParamsDump(qemuMigrationParamsPtr migParams,
break;
case QEMU_MIGRATION_PARAM_TYPE_BOOL:
+ break;
+
case QEMU_MIGRATION_PARAM_TYPE_STRING:
+ if (qemuMigrationParamsSetTPString(migParams, item->param,
+ params, nparams, maxparams,
+ item->typedParam) < 0)
+ return -1;
break;
}
}
--
2.24.0