From 39d1b75d1368db28c6bdf57fb5ca9cac0ca38b59 Mon Sep 17 00:00:00 2001 From: Bojan Smojver Date: Sep 18 2017 21:22:54 +0000 Subject: Add patch to clean sockets. --- diff --git a/xrdp-0.9.3-clean-sockets.patch b/xrdp-0.9.3-clean-sockets.patch new file mode 100644 index 0000000..8c1cd37 --- /dev/null +++ b/xrdp-0.9.3-clean-sockets.patch @@ -0,0 +1,104 @@ +From 46ffb9818eb51ce769b4747592bd60316e4ac2bd Mon Sep 17 00:00:00 2001 +From: Koichiro IWAO +Date: Wed, 12 Jul 2017 17:48:00 +0900 +Subject: [PATCH] sesman: delete socket files when session exits + +--- + sesman/session.c | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + sesman/session.h | 7 +++++++ + 2 files changed, 70 insertions(+) + +diff --git a/sesman/session.c b/sesman/session.c +index f2dc087d7..ae3194da0 100644 +--- a/sesman/session.c ++++ b/sesman/session.c +@@ -796,6 +796,7 @@ session_start_fork(tbus data, tui8 type, struct SCP_CONNECTION *c, + auth_end(data); + g_sigterm(display_pid); + g_sigterm(chansrv_pid); ++ cleanup_sockets(display); + g_deinit(); + g_exit(0); + } +@@ -1116,3 +1117,65 @@ session_get_byuser(const char *user, int *cnt, unsigned char flags) + (*cnt) = count; + return sess; + } ++ ++/******************************************************************************/ ++int ++cleanup_sockets(int display) ++{ ++ log_message(LOG_LEVEL_DEBUG, "cleanup_sockets:"); ++ char file[256]; ++ int error; ++ ++ error = 0; ++ ++ g_snprintf(file, 255, CHANSRV_PORT_OUT_STR, display); ++ if (g_file_exist(file)) ++ { ++ log_message(LOG_LEVEL_DEBUG, "cleanup_sockets: deleting %s", file); ++ if (g_file_delete(file) == 0) ++ { ++ log_message(LOG_LEVEL_DEBUG, ++ "cleanup_sockets: failed to delete %s", file); ++ error++; ++ } ++ } ++ ++ g_snprintf(file, 255, CHANSRV_PORT_IN_STR, display); ++ if (g_file_exist(file)) ++ { ++ log_message(LOG_LEVEL_DEBUG, "cleanup_sockets: deleting %s", file); ++ if (g_file_delete(file) == 0) ++ { ++ log_message(LOG_LEVEL_DEBUG, ++ "cleanup_sockets: failed to delete %s", file); ++ error++; ++ } ++ } ++ ++ g_snprintf(file, 255, XRDP_CHANSRV_STR, display); ++ if (g_file_exist(file)) ++ { ++ log_message(LOG_LEVEL_DEBUG, "cleanup_sockets: deleting %s", file); ++ if (g_file_delete(file) == 0) ++ { ++ log_message(LOG_LEVEL_DEBUG, ++ "cleanup_sockets: failed to delete %s", file); ++ error++; ++ } ++ } ++ ++ g_snprintf(file, 255, CHANSRV_API_STR, display); ++ if (g_file_exist(file)) ++ { ++ log_message(LOG_LEVEL_DEBUG, "cleanup_sockets: deleting %s", file); ++ if (g_file_delete(file) == 0) ++ { ++ log_message(LOG_LEVEL_DEBUG, ++ "cleanup_sockets: failed to delete %s", file); ++ error++; ++ } ++ } ++ ++ return error; ++ ++} +diff --git a/sesman/session.h b/sesman/session.h +index a9884a211..10cd4d572 100644 +--- a/sesman/session.h ++++ b/sesman/session.h +@@ -150,4 +150,11 @@ session_get_bypid(int pid); + struct SCP_DISCONNECTED_SESSION* + session_get_byuser(const char *user, int *cnt, unsigned char flags); + ++/** ++ * ++ * @brief delete socket files ++ * @param display number ++ * @return non-zero value (number of errors) if failed ++ */ ++int cleanup_sockets(int display); + #endif diff --git a/xrdp.spec b/xrdp.spec index 43279ca..8a5a990 100644 --- a/xrdp.spec +++ b/xrdp.spec @@ -7,7 +7,7 @@ Summary: Open source remote desktop protocol (RDP) server Name: xrdp Epoch: 1 Version: 0.9.3 -Release: 1%{?dist} +Release: 2%{?dist} License: ASL 2.0 Group: Applications/Internet URL: http://www.xrdp.org/ @@ -24,6 +24,7 @@ Patch2: xrdp-0.9.3-service.patch Patch3: xrdp-0.9.2-setpriv.patch Patch4: xrdp-0.9.2-scripts-libexec.patch Patch5: xrdp-0.9.2-split-line.patch +Patch6: xrdp-0.9.3-clean-sockets.patch BuildRequires: libX11-devel BuildRequires: libXfixes-devel @@ -259,6 +260,9 @@ fi %{_datadir}/selinux/*/%{name}.pp %changelog +* Tue Sep 19 2017 Bojan Smojver - 1:0.9.3-2 +- Add patch to clean up sockets + * Thu Aug 10 2017 Bojan Smojver - 1:0.9.3-1 - Bump up to 0.9.3