diff options
author | Jay Sorg <jay.sorg@gmail.com> | 2013-05-01 22:26:34 -0700 |
---|---|---|
committer | Jay Sorg <jay.sorg@gmail.com> | 2013-05-01 22:26:34 -0700 |
commit | 19a9ed47dcd3d0c55114c7b3686709a9a795e5cf (patch) | |
tree | 9f7ed4959752becad8b8ab5853ecf48527821c63 | |
parent | be44e0be4bb5b0580ca09ce1b7e95a5f96699a3e (diff) | |
download | xrdp-proprietary-19a9ed47dcd3d0c55114c7b3686709a9a795e5cf.tar.gz xrdp-proprietary-19a9ed47dcd3d0c55114c7b3686709a9a795e5cf.zip |
xrdp: use full path for loading xrdp modules
-rw-r--r-- | common/file_loc.h | 4 | ||||
-rw-r--r-- | xrdp/Makefile.am | 1 | ||||
-rw-r--r-- | xrdp/xrdp.ini | 1 | ||||
-rw-r--r-- | xrdp/xrdp_mm.c | 13 |
4 files changed, 12 insertions, 7 deletions
diff --git a/common/file_loc.h b/common/file_loc.h index db312fb4..c8b3a76f 100644 --- a/common/file_loc.h +++ b/common/file_loc.h @@ -37,4 +37,8 @@ #define XRDP_SHARE_PATH "/usr/local/share/xrdp" #endif +#if !defined(XRDP_LIB_PATH) +#define XRDP_LIB_PATH "/usr/local/lib/xrdp" +#endif + #endif diff --git a/xrdp/Makefile.am b/xrdp/Makefile.am index 3fe0138a..ac3b7fe0 100644 --- a/xrdp/Makefile.am +++ b/xrdp/Makefile.am @@ -11,6 +11,7 @@ AM_CFLAGS = \ -DXRDP_SBIN_PATH=\"${sbindir}\" \ -DXRDP_SHARE_PATH=\"${datadir}/xrdp\" \ -DXRDP_PID_PATH=\"${localstatedir}/run\" \ + -DXRDP_LIB_PATH=\"${libdir}\" \ $(EXTRA_DEFINES) INCLUDES = \ diff --git a/xrdp/xrdp.ini b/xrdp/xrdp.ini index f4c44666..7b2e33a8 100644 --- a/xrdp/xrdp.ini +++ b/xrdp/xrdp.ini @@ -63,6 +63,7 @@ password=ask ip=127.0.0.1 port=-1 xserverbpp=24 +code=10 [xrdp2] name=sesman-Xvnc diff --git a/xrdp/xrdp_mm.c b/xrdp/xrdp_mm.c index cd4006f4..0a79810b 100644 --- a/xrdp/xrdp_mm.c +++ b/xrdp/xrdp_mm.c @@ -17,6 +17,7 @@ * * module manager */ + #include <config_ac.h> #define ACCESS #include "xrdp.h" @@ -148,13 +149,10 @@ xrdp_mm_send_login(struct xrdp_mm *self) { password = value; } - else if (g_strcasecmp(name, "lib") == 0) + else if (g_strcasecmp(name, "code") == 0) { - if ((g_strcasecmp(value, "libxup.so") == 0) || - (g_strcasecmp(value, "xup.dll") == 0)) - { - self->code = 10; - } + /* this code is either 0 for Xvnc or 10 for X11rdp */ + self->code = g_atoi(value); } else if (g_strcasecmp(name, "xserverbpp") == 0) { @@ -311,8 +309,9 @@ xrdp_mm_setup_mod1(struct xrdp_mm *self) if (self->mod_handle == 0) { + g_snprintf(text, 255, "%s/%s", XRDP_LIB_PATH, lib); /* Let the main thread load the lib,*/ - self->mod_handle = g_xrdp_sync(xrdp_mm_sync_load, (long)lib, 0); + self->mod_handle = g_xrdp_sync(xrdp_mm_sync_load, (tintptr)text, 0); if (self->mod_handle != 0) { |