diff -r 64e6128482fb monitor.c --- a/monitor.c Fri Jan 05 21:20:37 2007 -0600 +++ b/monitor.c Fri Jan 05 21:21:03 2007 -0600 @@ -1297,6 +1297,8 @@ static term_cmd_t info_cmds[] = { "", "show the currently saved VM snapshots" }, { "mice", "", do_info_mice, "", "show which guest mouse is receiving events" }, + { "vnc", "", do_info_vnc, + "", "show the vnc server status"}, { NULL, NULL, }, }; diff -r 64e6128482fb vl.h --- a/vl.h Fri Jan 05 21:20:37 2007 -0600 +++ b/vl.h Fri Jan 05 21:20:37 2007 -0600 @@ -897,6 +897,7 @@ void cocoa_display_init(DisplayState *ds /* vnc.c */ void vnc_display_init(DisplayState *ds, const char *display); +void do_info_vnc(void); /* ide.c */ #define MAX_DISKS 4 diff -r 64e6128482fb vnc.c --- a/vnc.c Fri Jan 05 21:20:37 2007 -0600 +++ b/vnc.c Fri Jan 05 21:20:37 2007 -0600 @@ -73,6 +73,8 @@ struct VncState int last_x; int last_y; + const char *display; + Buffer output; Buffer input; kbd_layout_t *kbd_layout; @@ -89,6 +91,24 @@ struct VncState /* input */ uint8_t modifiers_state[256]; }; + +static VncState *vnc_state; /* needed for info vnc */ + +void do_info_vnc(void) +{ + if (vnc_state == NULL) + term_printf("VNC server disabled\n"); + else { + term_printf("VNC server active on: "); + term_print_filename(vnc_state->display); + term_printf("\n"); + + if (vnc_state->csock == -1) + term_printf("No client connected\n"); + else + term_printf("Client connected\n"); + } +} /* TODO 1) Get the queue working for IO. @@ -1150,6 +1170,8 @@ void vnc_display_init(DisplayState *ds, exit(1); ds->opaque = vs; + vnc_state = vs; + vs->display = arg; vs->lsock = -1; vs->csock = -1;