diff options
| author | Marc-André Lureau <marcandre.lureau@redhat.com> | 2011-07-21 16:22:30 +0200 |
|---|---|---|
| committer | Daniel P. Berrange <berrange@redhat.com> | 2011-07-22 16:09:14 +0100 |
| commit | a1f0b01afc960e152b142fdb41b7a7f9032d5bfa (patch) | |
| tree | 95d3a96254b6c561382517fc928426b78f551b78 /src | |
| parent | e56a8cb203884554ab3e4d67cb8f49d53a749c82 (diff) | |
| download | virt-viewer-a1f0b01afc960e152b142fdb41b7a7f9032d5bfa.tar.gz virt-viewer-a1f0b01afc960e152b142fdb41b7a7f9032d5bfa.tar.xz virt-viewer-a1f0b01afc960e152b142fdb41b7a7f9032d5bfa.zip | |
Split virt_viewer_activate() and virt_viewer_set_domain()
Diffstat (limited to 'src')
| -rw-r--r-- | src/virt-viewer.c | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/src/virt-viewer.c b/src/virt-viewer.c index 1859cda..8ea14cd 100644 --- a/src/virt-viewer.c +++ b/src/virt-viewer.c @@ -1214,20 +1214,15 @@ virt_viewer_channel_open(VirtViewerSession *session G_GNUC_UNUSED, #endif static int -virt_viewer_activate(VirtViewer *viewer, - virDomainPtr dom) +virt_viewer_set_domain(VirtViewer *viewer, + virDomainPtr dom) { - int fd = -1; - int ret = -1; - - if (viewer->active) - goto cleanup; - virt_viewer_trace(viewer, "Guest %s is running, determining display\n", viewer->domkey); + if (viewer->session == NULL) { if (!virt_viewer_extract_connect_info(viewer, dom)) - goto cleanup; + return -1; if (viewer->gport) viewer->pretty_address = g_strdup_printf("%s:%s", viewer->ghost, viewer->gport); @@ -1235,6 +1230,18 @@ virt_viewer_activate(VirtViewer *viewer, viewer->pretty_address = g_strdup_printf("%s:%s", viewer->host, viewer->unixsock); } + return 0; +} + +static int +virt_viewer_activate(VirtViewer *viewer) +{ + int fd = -1; + int ret = -1; + + if (viewer->active) + goto cleanup; + #if defined(HAVE_SOCKETPAIR) && defined(HAVE_FORK) if (viewer->transport && g_strcasecmp(viewer->transport, "ssh") == 0 && @@ -1464,7 +1471,8 @@ virt_viewer_domain_event(virConnectPtr conn G_GNUC_UNUSED, break; case VIR_DOMAIN_EVENT_STARTED: - virt_viewer_activate(viewer, dom); + virt_viewer_set_domain(viewer, dom); + virt_viewer_activate(viewer); break; } @@ -1507,7 +1515,9 @@ virt_viewer_initial_connect(VirtViewer *viewer) if (info.state == VIR_DOMAIN_SHUTOFF) { virt_viewer_set_status(viewer, "Waiting for guest domain to start"); } else { - ret = virt_viewer_activate(viewer, dom); + ret = virt_viewer_set_domain(viewer, dom); + if (ret >= 0) + ret = virt_viewer_activate(viewer); if (ret < 0) { if (viewer->waitvm) { virt_viewer_set_status(viewer, "Waiting for guest domain to start server"); |
