Commit a9ce859052ccb0d588173dfa11bc9cd6858ec6c3
1 parent
564c337e
info vnc command (Anthony Liguori)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2391 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
3 changed files
with
25 additions
and
0 deletions
monitor.c
| @@ -1297,6 +1297,8 @@ static term_cmd_t info_cmds[] = { | @@ -1297,6 +1297,8 @@ static term_cmd_t info_cmds[] = { | ||
| 1297 | "", "show the currently saved VM snapshots" }, | 1297 | "", "show the currently saved VM snapshots" }, |
| 1298 | { "mice", "", do_info_mice, | 1298 | { "mice", "", do_info_mice, |
| 1299 | "", "show which guest mouse is receiving events" }, | 1299 | "", "show which guest mouse is receiving events" }, |
| 1300 | + { "vnc", "", do_info_vnc, | ||
| 1301 | + "", "show the vnc server status"}, | ||
| 1300 | { NULL, NULL, }, | 1302 | { NULL, NULL, }, |
| 1301 | }; | 1303 | }; |
| 1302 | 1304 |
vl.h
| @@ -909,6 +909,7 @@ void cocoa_display_init(DisplayState *ds, int full_screen); | @@ -909,6 +909,7 @@ void cocoa_display_init(DisplayState *ds, int full_screen); | ||
| 909 | 909 | ||
| 910 | /* vnc.c */ | 910 | /* vnc.c */ |
| 911 | void vnc_display_init(DisplayState *ds, const char *display); | 911 | void vnc_display_init(DisplayState *ds, const char *display); |
| 912 | +void do_info_vnc(void); | ||
| 912 | 913 | ||
| 913 | /* x_keymap.c */ | 914 | /* x_keymap.c */ |
| 914 | extern uint8_t _translate_keycode(const int key); | 915 | extern uint8_t _translate_keycode(const int key); |
vnc.c
| @@ -73,6 +73,8 @@ struct VncState | @@ -73,6 +73,8 @@ struct VncState | ||
| 73 | int last_x; | 73 | int last_x; |
| 74 | int last_y; | 74 | int last_y; |
| 75 | 75 | ||
| 76 | + const char *display; | ||
| 77 | + | ||
| 76 | Buffer output; | 78 | Buffer output; |
| 77 | Buffer input; | 79 | Buffer input; |
| 78 | kbd_layout_t *kbd_layout; | 80 | kbd_layout_t *kbd_layout; |
| @@ -90,6 +92,24 @@ struct VncState | @@ -90,6 +92,24 @@ struct VncState | ||
| 90 | uint8_t modifiers_state[256]; | 92 | uint8_t modifiers_state[256]; |
| 91 | }; | 93 | }; |
| 92 | 94 | ||
| 95 | +static VncState *vnc_state; /* needed for info vnc */ | ||
| 96 | + | ||
| 97 | +void do_info_vnc(void) | ||
| 98 | +{ | ||
| 99 | + if (vnc_state == NULL) | ||
| 100 | + term_printf("VNC server disabled\n"); | ||
| 101 | + else { | ||
| 102 | + term_printf("VNC server active on: "); | ||
| 103 | + term_print_filename(vnc_state->display); | ||
| 104 | + term_printf("\n"); | ||
| 105 | + | ||
| 106 | + if (vnc_state->csock == -1) | ||
| 107 | + term_printf("No client connected\n"); | ||
| 108 | + else | ||
| 109 | + term_printf("Client connected\n"); | ||
| 110 | + } | ||
| 111 | +} | ||
| 112 | + | ||
| 93 | /* TODO | 113 | /* TODO |
| 94 | 1) Get the queue working for IO. | 114 | 1) Get the queue working for IO. |
| 95 | 2) there is some weirdness when using the -S option (the screen is grey | 115 | 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) | @@ -1150,6 +1170,8 @@ void vnc_display_init(DisplayState *ds, const char *arg) | ||
| 1150 | exit(1); | 1170 | exit(1); |
| 1151 | 1171 | ||
| 1152 | ds->opaque = vs; | 1172 | ds->opaque = vs; |
| 1173 | + vnc_state = vs; | ||
| 1174 | + vs->display = arg; | ||
| 1153 | 1175 | ||
| 1154 | vs->lsock = -1; | 1176 | vs->lsock = -1; |
| 1155 | vs->csock = -1; | 1177 | vs->csock = -1; |