On 12/18/2013 04:54 PM, Chen Hanxiao wrote:
From: Chen Hanxiao <chenhanxiao(a)cn.fujitsu.com>
If we config more than one consoles for container,
we always named them as "consoleN".
We had to type a complex option "--devname consoleN".
This patch enables option "--devname N"
to be equal to "--devname consoleN".
Do we really need this?
Signed-off-by: Chen Hanxiao <chenhanxiao(a)cn.fujitsu.com>
---
src/lxc/lxc_driver.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c
index 61a90ca..13213a5 100644
--- a/src/lxc/lxc_driver.c
+++ b/src/lxc/lxc_driver.c
@@ -2439,6 +2439,7 @@ lxcDomainOpenConsole(virDomainPtr dom,
int ret = -1;
virDomainChrDefPtr chr = NULL;
size_t i;
+ char *tmp_name = NULL;
virCheckFlags(0, -1);
@@ -2455,9 +2456,17 @@ lxcDomainOpenConsole(virDomainPtr dom,
}
if (dev_name) {
+ if (STRPREFIX(dev_name, "console")) {
+ if (VIR_STRDUP(tmp_name, dev_name) < 0)
+ goto cleanup;
+ } else {
+ if (virAsprintf(&tmp_name, "console%s", dev_name) < 0)
+ goto cleanup;
+ }
+
for (i = 0; i < vm->def->nconsoles; i++) {
if (vm->def->consoles[i]->info.alias &&
- STREQ(vm->def->consoles[i]->info.alias, dev_name)) {
+ STREQ(vm->def->consoles[i]->info.alias, tmp_name)) {
chr = vm->def->consoles[i];
break;
}
@@ -2490,6 +2499,7 @@ lxcDomainOpenConsole(virDomainPtr dom,
cleanup:
if (vm)
virObjectUnlock(vm);
+ VIR_FREE(tmp_name);
return ret;
}