aboutsummaryrefslogtreecommitdiffstats
path: root/drv_vnc.c
diff options
context:
space:
mode:
authormichux <michux@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>2009-03-30 18:44:28 +0000
committermichux <michux@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>2009-03-30 18:44:28 +0000
commita4601a3a9382a083f232e7b74213e0e836643297 (patch)
tree74e6dfc148e7ae54900ac7a99c3efff12748ef6f /drv_vnc.c
parent6200a30774d6024ff1f1cd9a653b6818484df8e2 (diff)
downloadlcd4linux-a4601a3a9382a083f232e7b74213e0e836643297.tar.gz
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
Diffstat (limited to 'drv_vnc.c')
-rw-r--r--drv_vnc.c17
1 files changed, 16 insertions, 1 deletions
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();