aboutsummaryrefslogtreecommitdiffstats
path: root/qemu-gtk.c
diff options
context:
space:
mode:
authorkraxel <kraxel>2009-03-18 08:25:51 +0000
committerkraxel <kraxel>2009-03-18 08:25:51 +0000
commit09a214dd9c1659e23ecd02d700bb1a0547900e6c (patch)
treeb4e2934a84d106d49d814d7f1bd7b99ce2dd4c7e /qemu-gtk.c
parent24f9b290712cdbfadf38f57f4acc700932c56d66 (diff)
downloadqemu-gtk-09a214dd9c1659e23ecd02d700bb1a0547900e6c.tar.gz
fix usbhost parser, change vm name lookup
Diffstat (limited to 'qemu-gtk.c')
-rw-r--r--qemu-gtk.c30
1 files changed, 29 insertions, 1 deletions
diff --git a/qemu-gtk.c b/qemu-gtk.c
index 073d572..a092c3c 100644
--- a/qemu-gtk.c
+++ b/qemu-gtk.c
@@ -957,10 +957,37 @@ static void usage(FILE *fp)
APPNAME);
}
+static void vm_lookup(char *mon, int len, char *arg)
+{
+ GError *err = NULL;
+ char *ptr;
+
+ /* monitor connection specified? */
+ if (strchr(arg,':') || strchr(arg,'/')) {
+ snprintf(mon, len, "%s", arg);
+ goto done;
+ }
+
+ /* listed in config file? */
+ ptr = g_key_file_get_string(config, "vm", arg, &err);
+ if (ptr) {
+ snprintf(mon, len, "%s", ptr);
+ goto done;
+ }
+
+ /* try socket created by qemu-run script */
+ snprintf(mon, len, "unix:%s/.qemu-gtk/%s", getenv("HOME"), arg);
+
+done:
+ if (debug)
+ fprintf(stderr, "monitor: %s\n", mon);
+}
+
int
main(int argc, char *argv[])
{
struct qemu_window *win;
+ char mon[256];
int monitor_tab = 0;
int sercon_tab = 0;
int quit_on_shutdown = 1;
@@ -1002,7 +1029,8 @@ main(int argc, char *argv[])
/* main window */
win = qemu_create_window();
- if (-1 == monitor_connect(win, argv[optind])) {
+ vm_lookup(mon, sizeof(mon), argv[optind]);
+ if (-1 == monitor_connect(win, mon)) {
exit(1);
}
win->quit_on_shutdown = quit_on_shutdown;