aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--monitor.c2
-rw-r--r--vl.h1
-rw-r--r--vnc.c22
3 files changed, 25 insertions, 0 deletions
diff --git a/monitor.c b/monitor.c
index 893040a174..33c482b090 100644
--- a/monitor.c
+++ b/monitor.c
@@ -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 --git a/vl.h b/vl.h
index d492f3e7b1..ff717863f5 100644
--- a/vl.h
+++ b/vl.h
@@ -909,6 +909,7 @@ void cocoa_display_init(DisplayState *ds, int full_screen);
/* vnc.c */
void vnc_display_init(DisplayState *ds, const char *display);
+void do_info_vnc(void);
/* x_keymap.c */
extern uint8_t _translate_keycode(const int key);
diff --git a/vnc.c b/vnc.c
index 30dc516527..f729e05d8f 100644
--- a/vnc.c
+++ b/vnc.c
@@ -73,6 +73,8 @@ struct VncState
int last_x;
int last_y;
+ const char *display;
+
Buffer output;
Buffer input;
kbd_layout_t *kbd_layout;
@@ -90,6 +92,24 @@ struct VncState
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.
2) there is some weirdness when using the -S option (the screen is grey
@@ -1150,6 +1170,8 @@ void vnc_display_init(DisplayState *ds, const char *arg)
exit(1);
ds->opaque = vs;
+ vnc_state = vs;
+ vs->display = arg;
vs->lsock = -1;
vs->csock = -1;