From: chris@kneesaa.uk.xensource.com Date: Thu, 3 Aug 2006 18:14:41 +0000 (+0100) Subject: [qemu] Write the port number where the vnc server is listening to xenstore. X-Git-Tag: 3.0.3-branched~482^2~72 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=2a33cbb5dbbf18272a2e15147241801df602526c;p=xen.git [qemu] Write the port number where the vnc server is listening to xenstore. Signed-off-by: Christian Limpach --- diff --git a/tools/ioemu/vl.c b/tools/ioemu/vl.c index 1f2edace32..34ae60df0b 100644 --- a/tools/ioemu/vl.c +++ b/tools/ioemu/vl.c @@ -5954,6 +5954,7 @@ int main(int argc, char **argv) vnc_display_init(ds, vnc_display); if (vncviewer) vnc_start_viewer(vnc_display); + xenstore_write_vncport(vnc_display); } else { #if defined(CONFIG_SDL) sdl_display_init(ds, full_screen); diff --git a/tools/ioemu/vl.h b/tools/ioemu/vl.h index 28990cb8dd..517209fb79 100644 --- a/tools/ioemu/vl.h +++ b/tools/ioemu/vl.h @@ -1111,6 +1111,7 @@ void xenstore_parse_domain_config(int domid); int xenstore_fd(void); void xenstore_process_event(void *opaque); void xenstore_check_new_media_present(int timeout); +void xenstore_write_vncport(int vnc_display); void kqemu_record_dump(void); diff --git a/tools/ioemu/xenstore.c b/tools/ioemu/xenstore.c index e1c20bb180..fde469305a 100644 --- a/tools/ioemu/xenstore.c +++ b/tools/ioemu/xenstore.c @@ -185,3 +185,31 @@ void xenstore_process_event(void *opaque) free(image); free(vec); } + +void xenstore_write_vncport(int display) +{ + char *buf = NULL, *path; + char *portstr = NULL; + + if (xsh == NULL) + return; + + path = xs_get_domain_path(xsh, domid); + if (path == NULL) { + fprintf(logfile, "xs_get_domain_path() error\n"); + goto out; + } + + if (pasprintf(&buf, "%s/console/vnc-port", path) == -1) + goto out; + + if (pasprintf(&portstr, "%d", 5900 + display) == -1) + goto out; + + if (xs_write(xsh, XBT_NULL, buf, portstr, strlen(portstr)) == 0) + fprintf(logfile, "xs_write() vncport failed\n"); + + out: + free(portstr); + free(buf); +}