From a4601a3a9382a083f232e7b74213e0e836643297 Mon Sep 17 00:00:00 2001 From: michux Date: Mon, 30 Mar 2009 18:44:28 +0000 Subject: add UNSECURE password option to drv_vnc - SSH would be the better choice. git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@1016 3ae390bd-cb1e-0410-b409-cd5a39f66f1f --- drv_vnc.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'drv_vnc.c') diff --git a/drv_vnc.c b/drv_vnc.c index 5330030..147b7dc 100644 --- a/drv_vnc.c +++ b/drv_vnc.c @@ -92,6 +92,7 @@ static int mouse_x = 0; static int mouse_y = 0; static int mouse_stat_old = 0; static int process_event = 0; +static char *password; /* draws a simple rect, used to display keypad */ int draw_rect(int x, int y, int size, unsigned char col, char *buffer) @@ -278,10 +279,13 @@ static int drv_vnc_open(const char *Section) frameg = (keypadcol & 0xff00) >> 8; frameb = (keypadcol & 0xff0000) >> 16; } - if (cfg_number(Section, "Port", 5900, 1, 65535, &port) < 1) { info("[DRV_VNC] no '%s.Port' entry from %s using default %d", Section, cfg_source(), port); } + password = cfg_get(Section, "Password", NULL); + if (password != NULL) { + info("[DRV_VNC] password enabled"); + } return 0; } @@ -378,6 +382,14 @@ static int drv_vnc_start(const char *section) server->ptrAddEvent = hook_mouseaction; server->newClientHook = hook_newclient; + if (password != NULL) { + char **passwds = malloc(sizeof(char **) * 2); + passwds[0] = password; + passwds[1] = 0; + server->authPasswdData = (void *) passwds; + server->passwordCheck = rfbCheckPasswordByList; + } + /* Initialize the server */ rfbInitServer(server); @@ -461,6 +473,9 @@ int drv_vnc_quit(const int quiet) drv_generic_graphic_quit(); drv_generic_keypad_quit(); + if (password != NULL) { + free(password); + } debug("closing connection"); drv_vnc_close(); -- cgit v1.2.3