Index: virsh.c =================================================================== RCS file: /data/cvs/libvirt/src/virsh.c,v retrieving revision 1.35 diff -c -r1.35 virsh.c *** virsh.c 21 Aug 2006 17:58:09 -0000 1.35 --- virsh.c 25 Aug 2006 19:26:57 -0000 *************** *** 319,342 **** static int cmdList(vshControl * ctl, vshCmd * cmd ATTRIBUTE_UNUSED) { ! int *ids, maxid, i; if (!vshConnectionUsability(ctl, ctl->conn, TRUE)) return FALSE; maxid = virConnectNumOfDomains(ctl->conn); ! if (maxid <= 0) { ! /* strange, there should be at least dom0... */ vshError(ctl, FALSE, "failed to list active domains."); return FALSE; } ! ids = vshMalloc(ctl, sizeof(int) * maxid); ! if (virConnectListDomains(ctl->conn, &ids[0], maxid) < 0) { ! vshError(ctl, FALSE, "failed to list active domains."); ! return FALSE; } - vshPrintExtra(ctl, "%3s %-20s %s\n", "Id", "Name", "State"); vshPrintExtra(ctl, "----------------------------------\n"); --- 319,342 ---- static int cmdList(vshControl * ctl, vshCmd * cmd ATTRIBUTE_UNUSED) { ! int *ids = NULL, maxid, i; if (!vshConnectionUsability(ctl, ctl->conn, TRUE)) return FALSE; maxid = virConnectNumOfDomains(ctl->conn); ! if (maxid < 0) { vshError(ctl, FALSE, "failed to list active domains."); return FALSE; } ! if (maxid) { ! ids = vshMalloc(ctl, sizeof(int) * maxid); ! if (virConnectListDomains(ctl->conn, &ids[0], maxid) < 0) { ! vshError(ctl, FALSE, "failed to list active domains."); ! return FALSE; ! } } vshPrintExtra(ctl, "%3s %-20s %s\n", "Id", "Name", "State"); vshPrintExtra(ctl, "----------------------------------\n"); *************** *** 357,363 **** 0 ? "no state" : vshDomainStateToString(info.state)); virDomainFree(dom); } ! free(ids); return TRUE; } --- 357,364 ---- 0 ? "no state" : vshDomainStateToString(info.state)); virDomainFree(dom); } ! if (ids) ! free(ids); return TRUE; } *************** *** 2377,2382 **** --- 2379,2385 ---- main(int argc, char **argv) { vshControl _ctl, *ctl = &_ctl; + char *defaultConn; int ret = TRUE; if (!(progname = strrchr(argv[0], '/'))) *************** *** 2387,2392 **** --- 2390,2399 ---- memset(ctl, 0, sizeof(vshControl)); ctl->imode = TRUE; /* default is interactive mode */ + if ((defaultConn = getenv("VIRSH_DEFAULT_CONNECT_URI"))) { + ctl->name = strdup(defaultConn); + } + if (!vshParseArgv(ctl, argc, argv)) exit(EXIT_FAILURE);