xrdp: verious fixes & enable xrdp-sesman
This commit is contained in:
parent
44daa53a9e
commit
64ea0ebd13
|
@ -3,15 +3,45 @@ TERMUX_PKG_MAINTAINER="Leonid Plyushch <leonid.plyushch@gmail.com> @xeffyr"
|
||||||
TERMUX_PKG_HOMEPAGE=https://github.com/neutrinolabs/xrdp
|
TERMUX_PKG_HOMEPAGE=https://github.com/neutrinolabs/xrdp
|
||||||
TERMUX_PKG_DESCRIPTION="An open source remote desktop protocol (RDP) server"
|
TERMUX_PKG_DESCRIPTION="An open source remote desktop protocol (RDP) server"
|
||||||
TERMUX_PKG_VERSION=0.9.8
|
TERMUX_PKG_VERSION=0.9.8
|
||||||
|
TERMUX_PKG_REVISION=1
|
||||||
TERMUX_PKG_SRCURL=https://github.com/neutrinolabs/xrdp/releases/download/v${TERMUX_PKG_VERSION}/xrdp-${TERMUX_PKG_VERSION}.tar.gz
|
TERMUX_PKG_SRCURL=https://github.com/neutrinolabs/xrdp/releases/download/v${TERMUX_PKG_VERSION}/xrdp-${TERMUX_PKG_VERSION}.tar.gz
|
||||||
TERMUX_PKG_SHA256=bbb2c114903d65c212cb2cca0b11bb2620e5034fa9353e0479bc8aa9290b78ee
|
TERMUX_PKG_SHA256=bbb2c114903d65c212cb2cca0b11bb2620e5034fa9353e0479bc8aa9290b78ee
|
||||||
TERMUX_PKG_DEPENDS="tigervnc, libcrypt, libxrandr, libopus"
|
TERMUX_PKG_DEPENDS="libandroid-shmem, libandroid-support, libcrypt, libice, libsm, libuuid, libx11, libxau, libxcb, libxfixes, libxdmcp, libxrandr, openssl"
|
||||||
TERMUX_PKG_BUILD_IN_SRC=true
|
TERMUX_PKG_BUILD_IN_SRC=true
|
||||||
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
|
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
|
||||||
--disable-pam
|
--disable-pam
|
||||||
--enable-static
|
--enable-static
|
||||||
|
--with-socketdir=$TERMUX_PREFIX/tmp/.xrdp
|
||||||
"
|
"
|
||||||
|
|
||||||
termux_step_pre_configure() {
|
termux_step_pre_configure() {
|
||||||
export LIBS="-landroid-shmem -llog"
|
export LIBS="-landroid-shmem -llog"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
termux_step_post_make_install() {
|
||||||
|
mv -f "${TERMUX_PREFIX}/sbin/xrdp" "${TERMUX_PREFIX}/bin/xrdp"
|
||||||
|
mv -f "${TERMUX_PREFIX}/sbin/xrdp-chansrv" "${TERMUX_PREFIX}/bin/xrdp-chansrv"
|
||||||
|
mv -f "${TERMUX_PREFIX}/sbin/xrdp-sesman" "${TERMUX_PREFIX}/bin/xrdp-sesman"
|
||||||
|
mkdir -p "${TERMUX_PREFIX}/libexec/xrdp"
|
||||||
|
|
||||||
|
for bin in xrdp xrdp-chansrv xrdp-genkeymap xrdp-keygen xrdp-sesadmin xrdp-sesman xrdp-sesrun; do
|
||||||
|
mv -f "${TERMUX_PREFIX}/bin/${bin}" "${TERMUX_PREFIX}/libexec/xrdp/${bin}"
|
||||||
|
{
|
||||||
|
echo "#!${TERMUX_PREFIX}/bin/sh"
|
||||||
|
echo "export LD_LIBRARY_PATH=\${LD_LIBRARY_PATH}:${TERMUX_PREFIX}/lib/xrdp"
|
||||||
|
echo "exec ${TERMUX_PREFIX}/libexec/xrdp/${bin} \"\${@}\""
|
||||||
|
} > "${TERMUX_PREFIX}/bin/${bin}"
|
||||||
|
chmod 700 "${TERMUX_PREFIX}/bin/${bin}"
|
||||||
|
done
|
||||||
|
unset bin
|
||||||
|
}
|
||||||
|
|
||||||
|
termux_step_create_debscripts() {
|
||||||
|
{
|
||||||
|
echo "#!${TERMUX_PREFIX}/bin/sh"
|
||||||
|
echo "if [ ! -e \"${TERMUX_PREFIX}/etc/xrdp/rsakeys.ini\" ]; then"
|
||||||
|
echo " xrdp-keygen xrdp \"${TERMUX_PREFIX}/etc/xrdp/rsakeys.ini\""
|
||||||
|
echo "fi"
|
||||||
|
} > ./postinst
|
||||||
|
chmod 755 postinst
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,70 @@
|
||||||
|
diff -uNr xrdp-0.9.8/common/Makefile.am xrdp-0.9.8.mod/common/Makefile.am
|
||||||
|
--- xrdp-0.9.8/common/Makefile.am 2018-03-27 17:15:16.000000000 +0300
|
||||||
|
+++ xrdp-0.9.8.mod/common/Makefile.am 2018-12-27 15:41:13.808966307 +0200
|
||||||
|
@@ -58,6 +58,5 @@
|
||||||
|
$(PIXMAN_SOURCES)
|
||||||
|
|
||||||
|
libcommon_la_LIBADD = \
|
||||||
|
- -lpthread \
|
||||||
|
$(OPENSSL_LIBS) \
|
||||||
|
$(DLOPEN_LIBS)
|
||||||
|
diff -uNr xrdp-0.9.8/common/Makefile.in xrdp-0.9.8.mod/common/Makefile.in
|
||||||
|
--- xrdp-0.9.8/common/Makefile.in 2018-09-25 09:19:19.000000000 +0300
|
||||||
|
+++ xrdp-0.9.8.mod/common/Makefile.in 2018-12-27 15:41:13.815632972 +0200
|
||||||
|
@@ -417,7 +417,6 @@
|
||||||
|
$(PIXMAN_SOURCES)
|
||||||
|
|
||||||
|
libcommon_la_LIBADD = \
|
||||||
|
- -lpthread \
|
||||||
|
$(OPENSSL_LIBS) \
|
||||||
|
$(DLOPEN_LIBS)
|
||||||
|
|
||||||
|
diff -uNr xrdp-0.9.8/sesman/libscp/Makefile.am xrdp-0.9.8.mod/sesman/libscp/Makefile.am
|
||||||
|
--- xrdp-0.9.8/sesman/libscp/Makefile.am 2018-03-26 09:14:14.000000000 +0300
|
||||||
|
+++ xrdp-0.9.8.mod/sesman/libscp/Makefile.am 2018-12-27 15:41:13.815632972 +0200
|
||||||
|
@@ -42,5 +42,4 @@
|
||||||
|
libscp_vX.h
|
||||||
|
|
||||||
|
libscp_la_LIBADD = \
|
||||||
|
- $(top_builddir)/common/libcommon.la \
|
||||||
|
- -lpthread
|
||||||
|
+ $(top_builddir)/common/libcommon.la
|
||||||
|
diff -uNr xrdp-0.9.8/sesman/libscp/Makefile.in xrdp-0.9.8.mod/sesman/libscp/Makefile.in
|
||||||
|
--- xrdp-0.9.8/sesman/libscp/Makefile.in 2018-09-25 09:19:20.000000000 +0300
|
||||||
|
+++ xrdp-0.9.8.mod/sesman/libscp/Makefile.in 2018-12-27 15:41:13.822299639 +0200
|
||||||
|
@@ -397,8 +397,7 @@
|
||||||
|
libscp_vX.h
|
||||||
|
|
||||||
|
libscp_la_LIBADD = \
|
||||||
|
- $(top_builddir)/common/libcommon.la \
|
||||||
|
- -lpthread
|
||||||
|
+ $(top_builddir)/common/libcommon.la
|
||||||
|
|
||||||
|
all: all-am
|
||||||
|
|
||||||
|
diff -uNr xrdp-0.9.8/sesman/Makefile.am xrdp-0.9.8.mod/sesman/Makefile.am
|
||||||
|
--- xrdp-0.9.8/sesman/Makefile.am 2018-09-18 07:21:13.000000000 +0300
|
||||||
|
+++ xrdp-0.9.8.mod/sesman/Makefile.am 2018-12-27 15:41:13.825632971 +0200
|
||||||
|
@@ -70,8 +70,7 @@
|
||||||
|
xrdp_sesman_LDADD = \
|
||||||
|
$(top_builddir)/common/libcommon.la \
|
||||||
|
$(top_builddir)/sesman/libscp/libscp.la \
|
||||||
|
- $(AUTH_LIB) \
|
||||||
|
- -lpthread
|
||||||
|
+ $(AUTH_LIB)
|
||||||
|
|
||||||
|
sesmansysconfdir=$(sysconfdir)/xrdp
|
||||||
|
|
||||||
|
diff -uNr xrdp-0.9.8/sesman/Makefile.in xrdp-0.9.8.mod/sesman/Makefile.in
|
||||||
|
--- xrdp-0.9.8/sesman/Makefile.in 2018-09-25 09:19:20.000000000 +0300
|
||||||
|
+++ xrdp-0.9.8.mod/sesman/Makefile.in 2018-12-27 15:41:13.828966305 +0200
|
||||||
|
@@ -474,8 +474,7 @@
|
||||||
|
xrdp_sesman_LDADD = \
|
||||||
|
$(top_builddir)/common/libcommon.la \
|
||||||
|
$(top_builddir)/sesman/libscp/libscp.la \
|
||||||
|
- $(AUTH_LIB) \
|
||||||
|
- -lpthread
|
||||||
|
+ $(AUTH_LIB)
|
||||||
|
|
||||||
|
sesmansysconfdir = $(sysconfdir)/xrdp
|
||||||
|
SUBST_VARS = sed \
|
|
@ -0,0 +1,32 @@
|
||||||
|
diff -uNr xrdp-0.9.8/keygen/Makefile.am xrdp-0.9.8.mod/keygen/Makefile.am
|
||||||
|
--- xrdp-0.9.8/keygen/Makefile.am 2018-03-26 09:14:14.000000000 +0300
|
||||||
|
+++ xrdp-0.9.8.mod/keygen/Makefile.am 2018-12-27 16:00:33.310095623 +0200
|
||||||
|
@@ -19,11 +19,8 @@
|
||||||
|
|
||||||
|
install-data-hook:
|
||||||
|
umask 077 && \
|
||||||
|
- if [ ! -f $(DESTDIR)$(xrdpsysconfdir)/rsakeys.ini ]; then \
|
||||||
|
- ./xrdp-keygen xrdp $(DESTDIR)$(xrdpsysconfdir)/rsakeys.ini; \
|
||||||
|
- fi && \
|
||||||
|
if [ ! -f $(DESTDIR)$(xrdpsysconfdir)/cert.pem ]; then \
|
||||||
|
- $(OPENSSL) req -x509 -newkey rsa:2048 -sha256 -nodes \
|
||||||
|
+ openssl req -x509 -newkey rsa:2048 -sha256 -nodes \
|
||||||
|
-keyout $(DESTDIR)$(xrdpsysconfdir)/key.pem -out \
|
||||||
|
$(DESTDIR)$(xrdpsysconfdir)/cert.pem -days 365 \
|
||||||
|
-subj /C=US/ST=CA/L=Sunnyvale/O=xrdp/CN=www.xrdp.org \
|
||||||
|
diff -uNr xrdp-0.9.8/keygen/Makefile.in xrdp-0.9.8.mod/keygen/Makefile.in
|
||||||
|
--- xrdp-0.9.8/keygen/Makefile.in 2018-09-25 09:19:20.000000000 +0300
|
||||||
|
+++ xrdp-0.9.8.mod/keygen/Makefile.in 2018-12-27 16:00:45.470269522 +0200
|
||||||
|
@@ -681,11 +681,8 @@
|
||||||
|
|
||||||
|
install-data-hook:
|
||||||
|
umask 077 && \
|
||||||
|
- if [ ! -f $(DESTDIR)$(xrdpsysconfdir)/rsakeys.ini ]; then \
|
||||||
|
- ./xrdp-keygen xrdp $(DESTDIR)$(xrdpsysconfdir)/rsakeys.ini; \
|
||||||
|
- fi && \
|
||||||
|
if [ ! -f $(DESTDIR)$(xrdpsysconfdir)/cert.pem ]; then \
|
||||||
|
- $(OPENSSL) req -x509 -newkey rsa:2048 -sha256 -nodes \
|
||||||
|
+ openssl req -x509 -newkey rsa:2048 -sha256 -nodes \
|
||||||
|
-keyout $(DESTDIR)$(xrdpsysconfdir)/key.pem -out \
|
||||||
|
$(DESTDIR)$(xrdpsysconfdir)/cert.pem -days 365 \
|
||||||
|
-subj /C=US/ST=CA/L=Sunnyvale/O=xrdp/CN=www.xrdp.org \
|
|
@ -1,6 +1,6 @@
|
||||||
diff -uNr xrdp-0.9.8/configure xrdp-0.9.8.mod/configure
|
diff -uNr xrdp-0.9.8/configure xrdp-0.9.8.mod/configure
|
||||||
--- xrdp-0.9.8/configure 2018-09-25 09:19:18.000000000 +0300
|
--- xrdp-0.9.8/configure 2018-09-25 09:19:18.000000000 +0300
|
||||||
+++ xrdp-0.9.8.mod/configure 2018-12-26 19:25:55.293206203 +0200
|
+++ xrdp-0.9.8.mod/configure 2018-12-27 14:06:31.841304140 +0200
|
||||||
@@ -14388,18 +14388,7 @@
|
@@ -14388,18 +14388,7 @@
|
||||||
moduledir='${libdir}/xrdp'
|
moduledir='${libdir}/xrdp'
|
||||||
|
|
|
@ -0,0 +1,281 @@
|
||||||
|
diff -uNr xrdp-0.9.8/sesman/verify_user.c xrdp-0.9.8.mod/sesman/verify_user.c
|
||||||
|
--- xrdp-0.9.8/sesman/verify_user.c 2018-03-26 09:18:26.000000000 +0300
|
||||||
|
+++ xrdp-0.9.8.mod/sesman/verify_user.c 2018-12-27 15:46:20.210152209 +0200
|
||||||
|
@@ -33,8 +33,6 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
-#include <crypt.h>
|
||||||
|
-#include <shadow.h>
|
||||||
|
#include <pwd.h>
|
||||||
|
|
||||||
|
#ifndef SECS_PER_DAY
|
||||||
|
@@ -43,58 +41,12 @@
|
||||||
|
|
||||||
|
extern struct config_sesman *g_cfg; /* in sesman.c */
|
||||||
|
|
||||||
|
-static int
|
||||||
|
-auth_crypt_pwd(const char *pwd, const char *pln, char *crp);
|
||||||
|
-
|
||||||
|
-static int
|
||||||
|
-auth_account_disabled(struct spwd *stp);
|
||||||
|
-
|
||||||
|
/******************************************************************************/
|
||||||
|
/* returns boolean */
|
||||||
|
long
|
||||||
|
auth_userpass(const char *user, const char *pass, int *errorcode)
|
||||||
|
{
|
||||||
|
- const char *encr;
|
||||||
|
- const char *epass;
|
||||||
|
- struct passwd *spw;
|
||||||
|
- struct spwd *stp;
|
||||||
|
-
|
||||||
|
- spw = getpwnam(user);
|
||||||
|
-
|
||||||
|
- if (spw == 0)
|
||||||
|
- {
|
||||||
|
- return 0;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- if (g_strncmp(spw->pw_passwd, "x", 3) == 0)
|
||||||
|
- {
|
||||||
|
- /* the system is using shadow */
|
||||||
|
- stp = getspnam(user);
|
||||||
|
-
|
||||||
|
- if (stp == 0)
|
||||||
|
- {
|
||||||
|
- return 0;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- if (1 == auth_account_disabled(stp))
|
||||||
|
- {
|
||||||
|
- log_message(LOG_LEVEL_INFO, "account %s is disabled", user);
|
||||||
|
- return 0;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- encr = stp->sp_pwdp;
|
||||||
|
- }
|
||||||
|
- else
|
||||||
|
- {
|
||||||
|
- /* old system with only passwd */
|
||||||
|
- encr = spw->pw_passwd;
|
||||||
|
- }
|
||||||
|
- epass = crypt(pass, encr);
|
||||||
|
- if (epass == 0)
|
||||||
|
- {
|
||||||
|
- return 0;
|
||||||
|
- }
|
||||||
|
- return (strcmp(encr, epass) == 0);
|
||||||
|
+ return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/******************************************************************************/
|
||||||
|
@@ -131,207 +83,11 @@
|
||||||
|
int
|
||||||
|
auth_check_pwd_chg(const char *user)
|
||||||
|
{
|
||||||
|
- struct passwd *spw;
|
||||||
|
- struct spwd *stp;
|
||||||
|
- int now;
|
||||||
|
- long today;
|
||||||
|
-
|
||||||
|
- spw = getpwnam(user);
|
||||||
|
-
|
||||||
|
- if (spw == 0)
|
||||||
|
- {
|
||||||
|
- return AUTH_PWD_CHG_ERROR;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- if (g_strncmp(spw->pw_passwd, "x", 3) != 0)
|
||||||
|
- {
|
||||||
|
- /* old system with only passwd */
|
||||||
|
- return AUTH_PWD_CHG_OK;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- /* the system is using shadow */
|
||||||
|
- stp = getspnam(user);
|
||||||
|
-
|
||||||
|
- if (stp == 0)
|
||||||
|
- {
|
||||||
|
- return AUTH_PWD_CHG_ERROR;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- /* check if we need a pwd change */
|
||||||
|
- now = g_time1();
|
||||||
|
- today = now / SECS_PER_DAY;
|
||||||
|
-
|
||||||
|
- if (stp->sp_expire == -1)
|
||||||
|
- {
|
||||||
|
- return AUTH_PWD_CHG_OK;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- if (today >= (stp->sp_lstchg + stp->sp_max - stp->sp_warn))
|
||||||
|
- {
|
||||||
|
- return AUTH_PWD_CHG_CHANGE;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- if (today >= (stp->sp_lstchg + stp->sp_max))
|
||||||
|
- {
|
||||||
|
- return AUTH_PWD_CHG_CHANGE_MANDATORY;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- if (today < ((stp->sp_lstchg) + (stp->sp_min)))
|
||||||
|
- {
|
||||||
|
- /* cannot change pwd for now */
|
||||||
|
- return AUTH_PWD_CHG_NOT_NOW;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
return AUTH_PWD_CHG_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
auth_change_pwd(const char *user, const char *newpwd)
|
||||||
|
{
|
||||||
|
- struct passwd *spw;
|
||||||
|
- struct spwd *stp;
|
||||||
|
- char hash[35] = "";
|
||||||
|
- long today;
|
||||||
|
-
|
||||||
|
- FILE *fd;
|
||||||
|
-
|
||||||
|
- if (0 != lckpwdf())
|
||||||
|
- {
|
||||||
|
- return 1;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- /* open passwd */
|
||||||
|
- spw = getpwnam(user);
|
||||||
|
-
|
||||||
|
- if (spw == 0)
|
||||||
|
- {
|
||||||
|
- return 1;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- if (g_strncmp(spw->pw_passwd, "x", 3) != 0)
|
||||||
|
- {
|
||||||
|
- /* old system with only passwd */
|
||||||
|
- if (auth_crypt_pwd(spw->pw_passwd, newpwd, hash) != 0)
|
||||||
|
- {
|
||||||
|
- ulckpwdf();
|
||||||
|
- return 1;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- spw->pw_passwd = g_strdup(hash);
|
||||||
|
- fd = fopen("/etc/passwd", "rw");
|
||||||
|
- putpwent(spw, fd);
|
||||||
|
- }
|
||||||
|
- else
|
||||||
|
- {
|
||||||
|
- /* the system is using shadow */
|
||||||
|
- stp = getspnam(user);
|
||||||
|
-
|
||||||
|
- if (stp == 0)
|
||||||
|
- {
|
||||||
|
- return 1;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- /* old system with only passwd */
|
||||||
|
- if (auth_crypt_pwd(stp->sp_pwdp, newpwd, hash) != 0)
|
||||||
|
- {
|
||||||
|
- ulckpwdf();
|
||||||
|
- return 1;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- stp->sp_pwdp = g_strdup(hash);
|
||||||
|
- today = g_time1() / SECS_PER_DAY;
|
||||||
|
- stp->sp_lstchg = today;
|
||||||
|
- stp->sp_expire = today + stp->sp_max + stp->sp_inact;
|
||||||
|
- fd = fopen("/etc/shadow", "rw");
|
||||||
|
- putspent(stp, fd);
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- ulckpwdf();
|
||||||
|
- return 0;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-/**
|
||||||
|
- *
|
||||||
|
- * @brief Password encryption
|
||||||
|
- * @param pwd Old password
|
||||||
|
- * @param pln Plaintext new password
|
||||||
|
- * @param crp Crypted new password
|
||||||
|
- *
|
||||||
|
- */
|
||||||
|
-
|
||||||
|
-static int
|
||||||
|
-auth_crypt_pwd(const char *pwd, const char *pln, char *crp)
|
||||||
|
-{
|
||||||
|
- char salt[13] = "$1$";
|
||||||
|
- int saltcnt = 0;
|
||||||
|
- char *encr;
|
||||||
|
-
|
||||||
|
- if (g_strncmp(pwd, "$1$", 3) == 0)
|
||||||
|
- {
|
||||||
|
- /* gnu style crypt(); */
|
||||||
|
- saltcnt = 3;
|
||||||
|
-
|
||||||
|
- while ((pwd[saltcnt] != '$') && (saltcnt < 11))
|
||||||
|
- {
|
||||||
|
- salt[saltcnt] = pwd[saltcnt];
|
||||||
|
- saltcnt++;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- salt[saltcnt] = '$';
|
||||||
|
- salt[saltcnt + 1] = '\0';
|
||||||
|
- }
|
||||||
|
- else
|
||||||
|
- {
|
||||||
|
- /* classic two char salt */
|
||||||
|
- salt[0] = pwd[0];
|
||||||
|
- salt[1] = pwd[1];
|
||||||
|
- salt[2] = '\0';
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- encr = crypt(pln, salt);
|
||||||
|
- g_strncpy(crp, encr, 34);
|
||||||
|
-
|
||||||
|
- return 0;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-/**
|
||||||
|
- *
|
||||||
|
- * @return 1 if the account is disabled, 0 otherwise
|
||||||
|
- *
|
||||||
|
- */
|
||||||
|
-static int
|
||||||
|
-auth_account_disabled(struct spwd *stp)
|
||||||
|
-{
|
||||||
|
- int today;
|
||||||
|
-
|
||||||
|
- if (0 == stp)
|
||||||
|
- {
|
||||||
|
- /* if an invalid struct was passed we assume a disabled account */
|
||||||
|
- return 1;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- today = g_time1() / SECS_PER_DAY;
|
||||||
|
-
|
||||||
|
- LOG_DBG("last %d", stp->sp_lstchg);
|
||||||
|
- LOG_DBG("min %d", stp->sp_min);
|
||||||
|
- LOG_DBG("max %d", stp->sp_max);
|
||||||
|
- LOG_DBG("inact %d", stp->sp_inact);
|
||||||
|
- LOG_DBG("warn %d", stp->sp_warn);
|
||||||
|
- LOG_DBG("expire %d", stp->sp_expire);
|
||||||
|
- LOG_DBG("today %d", today);
|
||||||
|
-
|
||||||
|
- if ((stp->sp_expire != -1) && (today >= stp->sp_expire))
|
||||||
|
- {
|
||||||
|
- return 1;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- if ((stp->sp_max >= 0) &&
|
||||||
|
- (stp->sp_inact >= 0) &&
|
||||||
|
- (stp->sp_lstchg > 0) &&
|
||||||
|
- (today >= (stp->sp_lstchg + stp->sp_max + stp->sp_inact)))
|
||||||
|
- {
|
||||||
|
- return 1;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- return 0;
|
||||||
|
+ return 1;
|
||||||
|
}
|
|
@ -0,0 +1,67 @@
|
||||||
|
diff -uNr xrdp-0.9.8/sesman/sesman.c xrdp-0.9.8.mod/sesman/sesman.c
|
||||||
|
--- xrdp-0.9.8/sesman/sesman.c 2018-08-02 03:02:02.000000000 +0300
|
||||||
|
+++ xrdp-0.9.8.mod/sesman/sesman.c 2018-12-27 15:39:08.642579869 +0200
|
||||||
|
@@ -430,14 +430,14 @@
|
||||||
|
g_mk_socket_path("xrdp-sesman");
|
||||||
|
|
||||||
|
/* make sure the /tmp/.X11-unix directory exists */
|
||||||
|
- if (!g_directory_exist("/tmp/.X11-unix"))
|
||||||
|
+ if (!g_directory_exist("@TERMUX_PREFIX@/tmp/.X11-unix"))
|
||||||
|
{
|
||||||
|
- if (!g_create_dir("/tmp/.X11-unix"))
|
||||||
|
+ if (!g_create_dir("@TERMUX_PREFIX@/tmp/.X11-unix"))
|
||||||
|
{
|
||||||
|
log_message(LOG_LEVEL_ERROR,
|
||||||
|
- "sesman.c: error creating dir /tmp/.X11-unix");
|
||||||
|
+ "sesman.c: error creating dir @TERMUX_PREFIX@/tmp/.X11-unix");
|
||||||
|
}
|
||||||
|
- g_chmod_hex("/tmp/.X11-unix", 0x1777);
|
||||||
|
+ g_chmod_hex("@TERMUX_PREFIX@/tmp/.X11-unix", 0x1777);
|
||||||
|
}
|
||||||
|
|
||||||
|
g_snprintf(text, 255, "xrdp_sesman_%8.8x_main_term", g_pid);
|
||||||
|
diff -uNr xrdp-0.9.8/sesman/session.c xrdp-0.9.8.mod/sesman/session.c
|
||||||
|
--- xrdp-0.9.8/sesman/session.c 2018-09-18 07:21:13.000000000 +0300
|
||||||
|
+++ xrdp-0.9.8.mod/sesman/session.c 2018-12-27 15:39:08.645913187 +0200
|
||||||
|
@@ -171,12 +171,12 @@
|
||||||
|
int x_running;
|
||||||
|
int sck;
|
||||||
|
|
||||||
|
- g_sprintf(text, "/tmp/.X11-unix/X%d", display);
|
||||||
|
+ g_sprintf(text, "@TERMUX_PREFIX@/tmp/.X11-unix/X%d", display);
|
||||||
|
x_running = g_file_exist(text);
|
||||||
|
|
||||||
|
if (!x_running)
|
||||||
|
{
|
||||||
|
- g_sprintf(text, "/tmp/.X%d-lock", display);
|
||||||
|
+ g_sprintf(text, "@TERMUX_PREFIX@/tmp/.X%d-lock", display);
|
||||||
|
x_running = g_file_exist(text);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -257,12 +257,12 @@
|
||||||
|
char text[256];
|
||||||
|
int x_running;
|
||||||
|
|
||||||
|
- g_sprintf(text, "/tmp/.X11-unix/X%d", display);
|
||||||
|
+ g_sprintf(text, "@TERMUX_PREFIX@/tmp/.X11-unix/X%d", display);
|
||||||
|
x_running = g_file_exist(text);
|
||||||
|
|
||||||
|
if (!x_running)
|
||||||
|
{
|
||||||
|
- g_sprintf(text, "/tmp/.X%d-lock", display);
|
||||||
|
+ g_sprintf(text, "@TERMUX_PREFIX@/tmp/.X%d-lock", display);
|
||||||
|
x_running = g_file_exist(text);
|
||||||
|
}
|
||||||
|
|
||||||
|
diff -uNr xrdp-0.9.8/xrdp/xrdp_mm.c xrdp-0.9.8.mod/xrdp/xrdp_mm.c
|
||||||
|
--- xrdp-0.9.8/xrdp/xrdp_mm.c 2018-07-12 12:02:33.000000000 +0300
|
||||||
|
+++ xrdp-0.9.8.mod/xrdp/xrdp_mm.c 2018-12-27 15:39:08.649246505 +0200
|
||||||
|
@@ -2123,7 +2123,7 @@
|
||||||
|
header.bytes_follow = enc_done->comp_bytes - (2 + pheader_bytes[0]);
|
||||||
|
if (ii == 0)
|
||||||
|
{
|
||||||
|
- ii = g_file_open("/tmp/jpeg.beef.bin");
|
||||||
|
+ ii = g_file_open("@TERMUX_PREFIX@/tmp/jpeg.beef.bin");
|
||||||
|
if (ii == -1)
|
||||||
|
{
|
||||||
|
ii = 0;
|
|
@ -1,11 +0,0 @@
|
||||||
diff -uNr xrdp-0.9.8/Makefile.am xrdp-0.9.8.mod/Makefile.am
|
|
||||||
--- xrdp-0.9.8/Makefile.am 2018-09-11 05:58:08.000000000 +0300
|
|
||||||
+++ xrdp-0.9.8.mod/Makefile.am 2018-12-26 19:04:01.793437260 +0200
|
|
||||||
@@ -57,7 +57,6 @@
|
|
||||||
$(PAINTERDIR) \
|
|
||||||
$(RFXCODECDIR) \
|
|
||||||
xrdp \
|
|
||||||
- sesman \
|
|
||||||
keygen \
|
|
||||||
docs \
|
|
||||||
instfiles \
|
|
|
@ -1,20 +0,0 @@
|
||||||
diff -uNr xrdp-0.9.8/Makefile.in xrdp-0.9.8.mod/Makefile.in
|
|
||||||
--- xrdp-0.9.8/Makefile.in 2018-09-25 09:19:19.000000000 +0300
|
|
||||||
+++ xrdp-0.9.8.mod/Makefile.in 2018-12-26 19:04:16.010272502 +0200
|
|
||||||
@@ -167,7 +167,7 @@
|
|
||||||
CTAGS = ctags
|
|
||||||
CSCOPE = cscope
|
|
||||||
DIST_SUBDIRS = common vnc xup mc neutrinordp libxrdp libpainter \
|
|
||||||
- librfxcodec xrdp sesman keygen docs instfiles genkeymap \
|
|
||||||
+ librfxcodec xrdp keygen docs instfiles genkeymap \
|
|
||||||
xrdpapi pkgconfig xrdpvr
|
|
||||||
am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config_ac-h.in \
|
|
||||||
COPYING compile config.guess config.sub install-sh ltmain.sh \
|
|
||||||
@@ -400,7 +400,6 @@
|
|
||||||
$(PAINTERDIR) \
|
|
||||||
$(RFXCODECDIR) \
|
|
||||||
xrdp \
|
|
||||||
- sesman \
|
|
||||||
keygen \
|
|
||||||
docs \
|
|
||||||
instfiles \
|
|
|
@ -1,10 +0,0 @@
|
||||||
diff -uNr xrdp-0.9.8/common/Makefile.am xrdp-0.9.8.mod/common/Makefile.am
|
|
||||||
--- xrdp-0.9.8/common/Makefile.am 2018-03-27 17:15:16.000000000 +0300
|
|
||||||
+++ xrdp-0.9.8.mod/common/Makefile.am 2018-12-26 18:16:40.415737116 +0200
|
|
||||||
@@ -58,6 +58,5 @@
|
|
||||||
$(PIXMAN_SOURCES)
|
|
||||||
|
|
||||||
libcommon_la_LIBADD = \
|
|
||||||
- -lpthread \
|
|
||||||
$(OPENSSL_LIBS) \
|
|
||||||
$(DLOPEN_LIBS)
|
|
|
@ -1,11 +0,0 @@
|
||||||
diff -uNr xrdp-0.9.8/common/Makefile.in xrdp-0.9.8.mod/common/Makefile.in
|
|
||||||
--- xrdp-0.9.8/common/Makefile.in 2018-09-25 09:19:19.000000000 +0300
|
|
||||||
+++ xrdp-0.9.8.mod/common/Makefile.in 2018-12-26 18:16:36.582386251 +0200
|
|
||||||
@@ -417,7 +417,6 @@
|
|
||||||
$(PIXMAN_SOURCES)
|
|
||||||
|
|
||||||
libcommon_la_LIBADD = \
|
|
||||||
- -lpthread \
|
|
||||||
$(OPENSSL_LIBS) \
|
|
||||||
$(DLOPEN_LIBS)
|
|
||||||
|
|
|
@ -1,23 +0,0 @@
|
||||||
diff -uNr xrdp-0.9.8/keygen/Makefile.am xrdp-0.9.8.mod/keygen/Makefile.am
|
|
||||||
--- xrdp-0.9.8/keygen/Makefile.am 2018-03-26 09:14:14.000000000 +0300
|
|
||||||
+++ xrdp-0.9.8.mod/keygen/Makefile.am 2018-12-26 19:28:46.744764873 +0200
|
|
||||||
@@ -17,19 +17,6 @@
|
|
||||||
|
|
||||||
xrdpsysconfdir = $(sysconfdir)/xrdp
|
|
||||||
|
|
||||||
-install-data-hook:
|
|
||||||
- umask 077 && \
|
|
||||||
- if [ ! -f $(DESTDIR)$(xrdpsysconfdir)/rsakeys.ini ]; then \
|
|
||||||
- ./xrdp-keygen xrdp $(DESTDIR)$(xrdpsysconfdir)/rsakeys.ini; \
|
|
||||||
- fi && \
|
|
||||||
- if [ ! -f $(DESTDIR)$(xrdpsysconfdir)/cert.pem ]; then \
|
|
||||||
- $(OPENSSL) req -x509 -newkey rsa:2048 -sha256 -nodes \
|
|
||||||
- -keyout $(DESTDIR)$(xrdpsysconfdir)/key.pem -out \
|
|
||||||
- $(DESTDIR)$(xrdpsysconfdir)/cert.pem -days 365 \
|
|
||||||
- -subj /C=US/ST=CA/L=Sunnyvale/O=xrdp/CN=www.xrdp.org \
|
|
||||||
- -config $(srcdir)/openssl.conf; \
|
|
||||||
- fi
|
|
||||||
-
|
|
||||||
uninstall-hook:
|
|
||||||
rm -f $(DESTDIR)$(xrdpsysconfdir)/rsakeys.ini
|
|
||||||
rm -f $(DESTDIR)$(xrdpsysconfdir)/cert.pem
|
|
|
@ -1,23 +0,0 @@
|
||||||
diff -uNr xrdp-0.9.8/keygen/Makefile.in xrdp-0.9.8.mod/keygen/Makefile.in
|
|
||||||
--- xrdp-0.9.8/keygen/Makefile.in 2018-09-25 09:19:20.000000000 +0300
|
|
||||||
+++ xrdp-0.9.8.mod/keygen/Makefile.in 2018-12-26 19:29:05.848271211 +0200
|
|
||||||
@@ -679,19 +679,6 @@
|
|
||||||
.PRECIOUS: Makefile
|
|
||||||
|
|
||||||
|
|
||||||
-install-data-hook:
|
|
||||||
- umask 077 && \
|
|
||||||
- if [ ! -f $(DESTDIR)$(xrdpsysconfdir)/rsakeys.ini ]; then \
|
|
||||||
- ./xrdp-keygen xrdp $(DESTDIR)$(xrdpsysconfdir)/rsakeys.ini; \
|
|
||||||
- fi && \
|
|
||||||
- if [ ! -f $(DESTDIR)$(xrdpsysconfdir)/cert.pem ]; then \
|
|
||||||
- $(OPENSSL) req -x509 -newkey rsa:2048 -sha256 -nodes \
|
|
||||||
- -keyout $(DESTDIR)$(xrdpsysconfdir)/key.pem -out \
|
|
||||||
- $(DESTDIR)$(xrdpsysconfdir)/cert.pem -days 365 \
|
|
||||||
- -subj /C=US/ST=CA/L=Sunnyvale/O=xrdp/CN=www.xrdp.org \
|
|
||||||
- -config $(srcdir)/openssl.conf; \
|
|
||||||
- fi
|
|
||||||
-
|
|
||||||
uninstall-hook:
|
|
||||||
rm -f $(DESTDIR)$(xrdpsysconfdir)/rsakeys.ini
|
|
||||||
rm -f $(DESTDIR)$(xrdpsysconfdir)/cert.pem
|
|
|
@ -1,13 +0,0 @@
|
||||||
diff -uNr xrdp-0.9.8/sesman/Makefile.am xrdp-0.9.8.mod/sesman/Makefile.am
|
|
||||||
--- xrdp-0.9.8/sesman/Makefile.am 2018-09-18 07:21:13.000000000 +0300
|
|
||||||
+++ xrdp-0.9.8.mod/sesman/Makefile.am 2018-12-26 18:16:46.679099072 +0200
|
|
||||||
@@ -70,8 +70,7 @@
|
|
||||||
xrdp_sesman_LDADD = \
|
|
||||||
$(top_builddir)/common/libcommon.la \
|
|
||||||
$(top_builddir)/sesman/libscp/libscp.la \
|
|
||||||
- $(AUTH_LIB) \
|
|
||||||
- -lpthread
|
|
||||||
+ $(AUTH_LIB)
|
|
||||||
|
|
||||||
sesmansysconfdir=$(sysconfdir)/xrdp
|
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
diff -uNr xrdp-0.9.8/sesman/Makefile.in xrdp-0.9.8.mod/sesman/Makefile.in
|
|
||||||
--- xrdp-0.9.8/sesman/Makefile.in 2018-09-25 09:19:20.000000000 +0300
|
|
||||||
+++ xrdp-0.9.8.mod/sesman/Makefile.in 2018-12-26 18:16:52.382458449 +0200
|
|
||||||
@@ -474,8 +474,7 @@
|
|
||||||
xrdp_sesman_LDADD = \
|
|
||||||
$(top_builddir)/common/libcommon.la \
|
|
||||||
$(top_builddir)/sesman/libscp/libscp.la \
|
|
||||||
- $(AUTH_LIB) \
|
|
||||||
- -lpthread
|
|
||||||
+ $(AUTH_LIB)
|
|
||||||
|
|
||||||
sesmansysconfdir = $(sysconfdir)/xrdp
|
|
||||||
SUBST_VARS = sed \
|
|
|
@ -1,10 +0,0 @@
|
||||||
diff -uNr xrdp-0.9.8/sesman/libscp/Makefile.am xrdp-0.9.8.mod/sesman/libscp/Makefile.am
|
|
||||||
--- xrdp-0.9.8/sesman/libscp/Makefile.am 2018-03-26 09:14:14.000000000 +0300
|
|
||||||
+++ xrdp-0.9.8.mod/sesman/libscp/Makefile.am 2018-12-26 18:16:57.529148602 +0200
|
|
||||||
@@ -42,5 +42,4 @@
|
|
||||||
libscp_vX.h
|
|
||||||
|
|
||||||
libscp_la_LIBADD = \
|
|
||||||
- $(top_builddir)/common/libcommon.la \
|
|
||||||
- -lpthread
|
|
||||||
+ $(top_builddir)/common/libcommon.la
|
|
|
@ -1,13 +0,0 @@
|
||||||
diff -uNr xrdp-0.9.8/sesman/libscp/Makefile.in xrdp-0.9.8.mod/sesman/libscp/Makefile.in
|
|
||||||
--- xrdp-0.9.8/sesman/libscp/Makefile.in 2018-09-25 09:19:20.000000000 +0300
|
|
||||||
+++ xrdp-0.9.8.mod/sesman/libscp/Makefile.in 2018-12-26 18:17:03.132507481 +0200
|
|
||||||
@@ -397,8 +397,7 @@
|
|
||||||
libscp_vX.h
|
|
||||||
|
|
||||||
libscp_la_LIBADD = \
|
|
||||||
- $(top_builddir)/common/libcommon.la \
|
|
||||||
- -lpthread
|
|
||||||
+ $(top_builddir)/common/libcommon.la
|
|
||||||
|
|
||||||
all: all-am
|
|
||||||
|
|
Loading…
Reference in New Issue