提交 534daeef 编写于 作者: P Peter Krempa

qemu: monitor: Remove HMP command (un)escaping infrastructure

We don't need to escape the commands any more since we use QMP
passthrough, which means we can delete the functions.
Signed-off-by: NPeter Krempa <pkrempa@redhat.com>
Reviewed-by: NJiri Denemark <jdenemar@redhat.com>
上级 d6fc3b93
......@@ -197,99 +197,6 @@ VIR_ENUM_IMPL(qemuMonitorDumpStatus,
"none", "active", "completed", "failed",
);
char *
qemuMonitorEscapeArg(const char *in)
{
int len = 0;
size_t i, j;
char *out;
/* To pass through the QEMU monitor, we need to use escape
sequences: \r, \n, \", \\
*/
for (i = 0; in[i] != '\0'; i++) {
switch (in[i]) {
case '\r':
case '\n':
case '"':
case '\\':
len += 2;
break;
default:
len += 1;
break;
}
}
if (VIR_ALLOC_N(out, len + 1) < 0)
return NULL;
for (i = j = 0; in[i] != '\0'; i++) {
switch (in[i]) {
case '\r':
out[j++] = '\\';
out[j++] = 'r';
break;
case '\n':
out[j++] = '\\';
out[j++] = 'n';
break;
case '"':
case '\\':
out[j++] = '\\';
out[j++] = in[i];
break;
default:
out[j++] = in[i];
break;
}
}
out[j] = '\0';
return out;
}
char *
qemuMonitorUnescapeArg(const char *in)
{
size_t i, j;
char *out;
int len = strlen(in);
char next;
if (VIR_ALLOC_N(out, len + 1) < 0)
return NULL;
for (i = j = 0; i < len; ++i) {
next = in[i];
if (in[i] == '\\') {
++i;
switch (in[i]) {
case 'r':
next = '\r';
break;
case 'n':
next = '\n';
break;
case '"':
case '\\':
next = in[i];
break;
default:
/* invalid input (including trailing '\' at end of in) */
VIR_FREE(out);
return NULL;
}
}
out[j++] = next;
}
out[j] = '\0';
return out;
}
#if DEBUG_RAW_IO
# include <c-ctype.h>
......
......@@ -382,9 +382,6 @@ struct _qemuMonitorCallbacks {
qemuMonitorDomainRdmaGidStatusChangedCallback domainRdmaGidStatusChanged;
};
char *qemuMonitorEscapeArg(const char *in);
char *qemuMonitorUnescapeArg(const char *in);
qemuMonitorPtr qemuMonitorOpen(virDomainObjPtr vm,
virDomainChrSourceDefPtr config,
bool retry,
......
......@@ -187,7 +187,6 @@ int ATTRIBUTE_FMT_PRINTF(2, 3)
qemuMonitorReportError(qemuMonitorTestPtr test, const char *errmsg, ...)
{
va_list msgargs;
VIR_AUTOFREE(char *) tmp = NULL;
VIR_AUTOFREE(char *) msg = NULL;
VIR_AUTOFREE(char *) jsonmsg = NULL;
int ret = -1;
......@@ -197,13 +196,10 @@ qemuMonitorReportError(qemuMonitorTestPtr test, const char *errmsg, ...)
if (virVasprintf(&msg, errmsg, msgargs) < 0)
goto cleanup;
if (!(tmp = qemuMonitorEscapeArg(msg)))
goto cleanup;
if (virAsprintf(&jsonmsg, "{ \"error\": "
" { \"desc\": \"%s\", "
" \"class\": \"UnexpectedCommand\" } }",
tmp) < 0)
msg) < 0)
goto cleanup;
ret = qemuMonitorTestAddResponse(test, jsonmsg);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册