mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-24 06:35:24 +00:00
Fix URI connect precedence
Commitabfff210
changed the order of vshParseArgv() and vshInit() in order to make fix debugging of parameter parsing. However, vshInit() did a vshReconnect() even though ctl->name wasn't set according to the '-c' parameter yet. In order to keep both issues fixed, I've split the vshInit() into vshInitDebug() and vshInit(). One simple memleak of ctl->name is fixed as a part of this patch, since it is related to the issue it's fixing. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=999323 (cherry picked from commita0b6a36f94
)
This commit is contained in:
parent
cac16b5d9e
commit
87cbaec97d
@ -2297,16 +2297,13 @@ vshEventLoop(void *opaque)
|
||||
|
||||
|
||||
/*
|
||||
* Initialize connection.
|
||||
* Initialize debug settings.
|
||||
*/
|
||||
static bool
|
||||
vshInit(vshControl *ctl)
|
||||
static void
|
||||
vshInitDebug(vshControl *ctl)
|
||||
{
|
||||
char *debugEnv;
|
||||
|
||||
if (ctl->conn)
|
||||
return false;
|
||||
|
||||
if (ctl->debug == VSH_DEBUG_DEFAULT) {
|
||||
/* log level not set from commandline, check env variable */
|
||||
debugEnv = getenv("VIRSH_DEBUG");
|
||||
@ -2331,6 +2328,16 @@ vshInit(vshControl *ctl)
|
||||
}
|
||||
|
||||
vshOpenLogFile(ctl);
|
||||
}
|
||||
|
||||
/*
|
||||
* Initialize connection.
|
||||
*/
|
||||
static bool
|
||||
vshInit(vshControl *ctl)
|
||||
{
|
||||
if (ctl->conn)
|
||||
return false;
|
||||
|
||||
/* set up the library error handler */
|
||||
virSetErrorFunc(NULL, virshErrorHandler);
|
||||
@ -3019,6 +3026,7 @@ vshParseArgv(vshControl *ctl, int argc, char **argv)
|
||||
ctl->timing = true;
|
||||
break;
|
||||
case 'c':
|
||||
VIR_FREE(ctl->name);
|
||||
ctl->name = vshStrdup(ctl, optarg);
|
||||
break;
|
||||
case 'v':
|
||||
@ -3194,12 +3202,10 @@ main(int argc, char **argv)
|
||||
ctl->name = vshStrdup(ctl, defaultConn);
|
||||
}
|
||||
|
||||
if (!vshInit(ctl)) {
|
||||
vshDeinit(ctl);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
vshInitDebug(ctl);
|
||||
|
||||
if (!vshParseArgv(ctl, argc, argv)) {
|
||||
if (!vshParseArgv(ctl, argc, argv) ||
|
||||
!vshInit(ctl)) {
|
||||
vshDeinit(ctl);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user