matt335672
6a6442e32f
Fix sing symbol link error when --disable-fuse is set
2019-04-02 13:08:47 +01:00
matt335672
d154df5059
Add remote drive lookup functionality to fuse
...
- Replace xfuse_cb_enum_dir() directory callback for adding files with
more general xfuse_devredir_add_file_or_dir() to be called from a
directory or a lookup operation.
- Moved XRDP_INODE out of public interface for chansrv_fuse, and replaced
with simpler struct file_attr to pass to
xfuse_devredir_add_file_or_dir()
- Allow a struct file_attr to be placed in an IRP for assembly of file
attributes over multiple IRP_MJ_QUERY_INFORMATION requats.
- Add dev_redir_lookup_entry() to public interface for devredir.c
- Add xfuse_devredir_cb_lookup_entry() callback to public interface for
chansrv-fuse.c
2019-04-01 14:15:12 +01:00
matt335672
ef9013b4d9
Implement O_WRONLY option for open file
...
Allows files to be overwritten on Linux without EIO
Logging improved on failed write
2019-04-01 14:14:46 +01:00
matt335672
c43c9cd551
Code tidyups
...
- Remove unused 'is_synced' member from struct xrdp_inode
- Move prototype for xfuse_devredir_cb_write_file() to correct file
- Add const correctness to dev_redir_strings_ends_with() function
- Add const correctness to fuse_reverse_pathname() function
- Moved devredir_proc_cid_* functions out of devredir.h and made static
- Added XFUSE_DUMP_ADDED_ENTRIES maro for debugging
- Removed duplicate code path in xfuse_remove_dir_or_file()
- Removed duplicate code path in xfuse_cb_rename()
- Removed duplicate code path in xfuse_create_dir_or_file()
- Removed duplicate code path in xfuse_cb_open()
- Removed duplicate code path in xfuse_proc_opendir_req()
2019-04-01 14:14:22 +01:00
matt335672
c31b3b0dc2
chansrv_fuse.c tidyups
...
- Remove unused USE_SYNC_FLAG macro
- Remove unused members invoke_fuse, off, dirbuf1 from XFUSE_INFO
- Clear f_fifo_opendir entries on deinit
- Added some comments and fixed some others
2019-04-01 14:13:57 +01:00
Koichiro IWAO
81703c426f
sesman: Fix default_wm and reconnect_sh refer wrong path after SIGHUP
...
Changes in #1147 had a bug. Fixes #1315 .
Reported by: Daniel Hoffend
2019-03-28 11:42:32 +09:00
metalefty
ec05d4208d
Merge pull request #1298 from jaroslaw-osmanski/restrict-outbound-clipboard
...
Restrict outbound clipboard
2019-03-20 10:37:40 +09:00
Jaroslaw Osmanski
56fe961349
Fixed style and format issues.
2019-03-08 08:42:18 +01:00
Jaroslaw Osmanski
7d7e8184ae
Use CHANSRV_RESTRICT_OUTBOUND_CLIPBOARD env between sesman -> chansrv
2019-03-02 16:53:15 +01:00
Jaroslaw Osmanski
1b6bfa682c
Log when outbound copy was rejected because RestrictOutboundClipboard was set
2019-03-01 14:49:57 +01:00
matt335672
d49f405130
Add implementation of xfuse_deinit_xrdp_fs()
2019-02-26 13:22:30 +00:00
Jaroslaw Osmanski
46c33ddaf4
Read sesman config in clipboard
2019-02-26 11:36:32 +01:00
Krzysztof Adamski
751cd97018
reapply outboud-resitrcted clipboard
2019-02-26 07:40:17 +01:00
Jaroslaw Osmanski
0d8a49ab13
astyle formatting for sesman config.h and chansrv clipboard
2019-02-26 07:40:10 +01:00
4680414@qq.com
e655fe6a1b
libscp v1 server set height twice,and not set width. so fix it.
2019-02-15 09:18:37 +08:00
Koichiro IWAO
88f0d3114d
Fix build with FDK AAC v2
...
Original fix provided by takefu. See also:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=233556
2018-11-28 01:31:14 +09:00
Koichiro IWAO
a4b0aa9355
Remove x11rdp from config
...
as it is already deprecated. x11rdp is complicated to build and very few
people using it actually. However, some people still select "X11rdp"
session and get stuck despite not installing x11rdp.
https://github.com/neutrinolabs/xrdp/issues/962#issuecomment-430545526
People who really want to use x11rdp should revert this commit.
2018-10-18 11:19:38 +09:00
metalefty
c2ade7a1f7
Merge pull request #1225 from savisko/devel
...
Fix crash of xrdp-chansrv process, issue #1202 .
2018-10-18 10:49:09 +09:00
metalefty
a83400060b
Merge pull request #1227 from metalefty/idle-disc
...
Ressurect IdleTimeLimit
2018-10-18 10:40:12 +09:00
Koichiro IWAO
5ea403430a
Sort & reword description of IdleTimeLimit
2018-10-16 16:53:33 +09:00
jsorg71
ae1514c167
dynamic virtual channel improvements
...
remove not used chansrv <-> xrdp messages
move static channel disable control into libxrdp
remove some blocking read, write chansrv calls
add drdynvc calls to libxrdp
add drdynvc calls to chansrv
channel cleanup
2018-10-11 22:09:20 -07:00
Michael Savisko
47d8e03d3a
Fixed compilation warning in previous commit.
2018-10-11 13:51:59 +03:00
Michael Savisko
ba93badf73
Fix crash of xrdp-chansrv process, issue #1202 .
...
In xfuse_create_file_in_xrdp_fs insure that xfuse_fs is properly initialized.
2018-10-11 13:11:24 +03:00
Koichiro IWAO
f84f3de478
docs: ressurect IdleTimeLimit
...
This reverts commit 513f767996
.
2018-10-10 17:47:12 +09:00
Koichiro IWAO
2a85a65d08
show more helpful message if xrdp-dis failed
2018-09-11 11:58:44 +09:00
Koichiro IWAO
d6992cf62d
sesman: add XRDP_ prefix to xrdp related environment variable
...
and remove CHANSRV, use the shorter name
2018-09-04 16:01:40 +09:00
Koichiro IWAO
59f3a79fe4
sesman: pass pulse socket name via environment variable
2018-09-04 16:01:40 +09:00
Idan Freiberg
5d2c5b1410
chansrv: remove pulseaudio modules from xrdp source tree
...
its actually an independent code which is not part of xrdp
moved to its own repoistory: https://github.com/neutrinolabs/pulseaudio-modules
Signed-off-by: Idan Freiberg <speidy@gmail.com>
2018-08-03 06:12:53 +03:00
Koichiro IWAO
ff85cb4530
Merge branch 'wfix-pulsechansrv-makefile' into devel
2018-08-03 10:05:46 +09:00
Brandon Wooldridge
8427c3601b
Corrected spacing between arguments to cc
for Pulseaudio chanserv Makefile
2018-08-02 15:24:46 -07:00
matt335672
c467ba6b04
Add handler for fatal X server conditions
...
Unless X server failures are caught, these can cause a premature
exit of chansrv, giving it no chance to clean up. This is currently a
particular problem for fuser mounts.
2018-07-19 08:16:29 +01:00
Koichiro IWAO
eda1842825
sesman: add comments, no logic change
2018-06-19 12:57:30 +09:00
Koichiro IWAO
6e16b38ecc
sesman: fix potential buffer over flow
2018-06-16 16:44:37 +09:00
Koichiro IWAO
9192e95c96
sesman: fix logging after default_wm change
2018-06-16 16:44:37 +09:00
Koichiro IWAO
6fb18cd5fa
docs: document configurable reconnect script path
2018-06-16 16:44:37 +09:00
Koichiro IWAO
a39b413746
sesman: make the path of reconnect script configurable
2018-06-16 16:44:37 +09:00
Koichiro IWAO
e82f212f34
sesman: accept full path for DefaultWindowManager
...
Solves: #1143
Also, this idea is inspired by Fedora's patch [1]. Some distro wants to
put all scripts in libexec directory due to SELinux. This enables
distros to put such scripts anywhere.
[1] https://src.fedoraproject.org/cgit/rpms/xrdp.git/tree/xrdp-0.9.6-scripts-libexec.patch?id=02f845c1b8cea781313cf3e9efcd6d7d50341824
2018-06-16 16:44:37 +09:00
Idan Freiberg
036c292120
Merge pull request #1146 from metalefty/sesman-leak
...
sesman: fix leak in struct config_sesman
2018-06-14 12:43:02 +03:00
metalefty
f83d967f46
Merge pull request #1120 from matt335672/set-env-on-reconnect
...
Copy the PAM session environment for the reconnect script
2018-06-14 11:04:43 +09:00
Koichiro IWAO
037d4eeece
sesman: fix leak in struct config_sesman
2018-06-13 17:20:03 +09:00
Koichiro IWAO
2262f1361f
sesman: close stdout/stderr earlier
...
not to spit on the console
2018-06-05 00:19:36 +09:00
Koichiro IWAO
6ae3052a0f
sesman: don't spit on the console when starting
...
As the Debian patch[1] expresses, spitting messages on the console when
a process starts in background is a bad idea. Everything should be
written to log file and daemon should start silently. This is a first
step to shut up daemons.
Got some idea from Debian Remote Maintainers and Thorsten Glaser,
thanks!
[1] 2751ad4d62/debian/patches/shutup-daemon.diff
2018-06-05 00:19:36 +09:00
Koichiro IWAO
19fa26a27e
sesman: don't print config in reader function
...
reader function should just read. Add config_dump function to print read
config.
2018-06-05 00:19:35 +09:00
Koichiro IWAO
de33a7832e
sesman: s/XOrg/Xorg/g, no logic change
...
X.Org is usually spelled X.Org or Xorg.
2018-06-05 00:19:35 +09:00
Koichiro IWAO
e4857b13fa
sesman: config_read_logging function no longer exists
2018-06-05 00:19:33 +09:00
matt335672
cde5b09129
Copy the PAM session environment for the reconnect script
...
This provides access to variables set at login which may be
required by the script (e.g. KRB5CCNAME)
2018-05-31 10:54:38 +01:00
metalefty
39b664fc27
Merge pull request #1108 from aiden0z/devel
...
sesrun support start other session based on session_code argument
2018-04-22 13:45:18 +09:00
Aiden Luo
7864f9d692
sesrun support start other session based on session_code argument
2018-04-20 18:11:27 +08:00
Koichiro IWAO
819c506d26
sesman: Update Xorg help comment for Arch Linux
...
As reported in #1106 , Arch Linux looks to me like using Xorg wrapper now.
2018-04-19 01:21:54 +09:00
Koichiro IWAO
a63c411772
sesman: rename vnc password file, just a cosmetic change
2018-03-23 19:16:10 +09:00
Jay Sorg
e40f0dc7e2
sesman: add hostname to vnc password file
2018-03-23 15:48:25 +09:00
Koichiro IWAO
780ba744f6
Revert "devredir: fix xinode leak"
...
This reverts commit 5daa09171e
.
Causes "double free". Fix #990 was not correct.
```
[1271363627]: DEV_REDIR dev_redir_proc_device_iocompletion: 738 : entered: IoStatus=0x0 CompletionId=1
[1271363627]: DEV_REDIR dev_redir_proc_device_iocompletion: 839 : got CID_DIRECTORY_CONTROL
[1271363627]: DEV_REDIR dev_redir_proc_query_dir_response: 933 : processing FILE_DIRECTORY_INFORMATION structs
[1271363627]: DEV_REDIR dev_redir_proc_query_dir_response: 968 : FileName: .
[1271363627]: DEV_REDIR devredir_fuse_data_peek: 1335 : returning 0x7f2a9c013410
*** Error in `/usr/sbin/xrdp-chansrv': double free or corruption (out): 0x00007f2a9c13a330 ***
```
Closes : #1025
2018-03-23 11:40:52 +09:00
Koichiro IWAO
97c21bc972
sesman: default startwm.sh should use bash
...
as it sources bash_profile. And add comments.
Closes #1009 .
2018-03-09 14:24:17 +09:00
Vraiment
fd37805ac0
Make sesman.ini dynamic for the location of the configuration file
2018-02-19 11:41:55 +09:00
Koichiro IWAO
c50015122c
FreeBSD: rework setsid code
...
Pull request #650 is not valid to avoid run session twice.
It certainly stops running session twice but causes #1016 .
In FreeBSD, sesman process will run like this. The intermediate
sesman is needed to detect session termination correctly.
xrdp-sesman (daemon)
|
+- xrdp-sesman (FreeBSD specific intermediate sesman)
|
+- xrdp-sesman (bsd sesion leader & each session)
|
+- Xorg
+- startwm.sh
+- xrdp-chansrv
To stop runninng session twice correctly, just exit before the
intermediate sesman executes Xorg, WM and chansrv.
2018-02-06 16:03:10 +09:00
Koichiro IWAO
e16029cbc2
fix leak of SCP_DISCONNECTED_SESSION
...
Pointed out by: #919
2018-01-23 11:16:26 +09:00
Koichiro IWAO
5daa09171e
devredir: fix xinode leak
...
Pointed out by: #919
2018-01-12 09:24:03 +09:00
Koichiro IWAO
08f847d74b
sesman: refactor, change variable names
...
session_variables1 -> env_names
session_variables2 -> env_values
Use the name used in callee function env_set_user(). The former names
are not clear.
2018-01-11 10:57:47 +09:00
Koichiro IWAO
dcf64e43ca
remove trailing space
2018-01-11 10:57:43 +09:00
Koichiro IWAO
f2db57afb0
fix indent
2018-01-09 14:09:13 +09:00
matt335672
3f2a017c97
Make listen check before daemon fork
2017-12-27 15:00:18 +00:00
Dominik George
53eccc93a2
Simplify pulseaudio module build instructions
2017-12-26 19:06:36 +09:00
Koichiro IWAO
93481365d1
pulse: replace old pulse notes with bran-new README
2017-12-26 09:26:51 +09:00
Dominik George
3244cb59d5
Fix memory corruption introduced by CVE-2017-16927 fix.
2017-12-21 14:07:51 +09:00
Koichiro IWAO
d8bb32541a
sesman: bring Xorg at the top in sesman.ini
...
as Xorg prefered recommended backend now. Add more comments.
2017-12-16 00:27:06 +09:00
Koichiro IWAO
64a0deb9cf
sesman: comment on non-suid Xorg in sesman.ini
...
Pointed out by: #923
2017-12-16 00:27:06 +09:00
speidy
d958d1f018
sesman: scpv0, accept variable length data fields
2017-11-28 09:04:25 +09:00
Koichiro IWAO
929a7c359d
chansrv: add LOG_LEVEL_TRACE here, too
2017-11-12 22:27:46 +09:00
Koichiro IWAO
3d29b6ec76
sound: g_bbuf_size should be determined after codec is determined
...
Fixes #910 , if both client and server support more than one codecs,
g_bbuf_size might be set to wrong value.
2017-11-08 08:57:52 +09:00
Koichiro IWAO
26394870e5
sesman: delete socket files when session exits
2017-09-13 09:04:58 +09:00
Jay Sorg
d9b929c185
chansrv: sound, fdk-aac, avoid 1 item array items
2017-08-04 17:24:57 -07:00
Jay Sorg
152318ad7c
use pkg-config to configure with fdk-aac
2017-08-04 17:24:57 -07:00
Jay Sorg
4f91a52109
chansrv: sound, remove a do not know and a comment
2017-08-04 17:24:57 -07:00
Jay Sorg
021a78f4c6
chansrv: sound, use WAVE_FORMAT_AAC not WAVE_FORMAT_AAC_MS
2017-08-04 17:24:57 -07:00
Jay Sorg
bf0d56c314
chansrv: sound, add aac
2017-08-04 17:24:57 -07:00
Jay Sorg
8ac35d7ed1
chansrv: sound, handle skips in audio acks
2017-08-04 17:24:57 -07:00
matt335672
4023aa7f1c
xfuse_create_share() called before xfuse_init()
...
* Initialise inode table in `xfuse_create_share()` if necessary
* Add guard to `xfuse_init_xrdp_fs()` to prevent double initialisation of the inode table
2017-08-03 11:50:31 +09:00
Koichiro IWAO
05ef6d104e
sesman: search pam files also in ${sysconfdir}/pam.d
...
as some operating system such as FreeBSD searches not only `/etc/pam.d`
but also `/usr/local/etc/pam.d` [1].
[1] https://www.freebsd.org/cgi/man.cgi?query=pam.d&sektion=5
2017-07-26 11:34:01 +09:00
Koichiro IWAO
e990dd4263
chansrv: remove trailing space
2017-07-25 11:40:04 +09:00
Koichiro IWAO
ca24572fd5
chansrv: use switch-case to support more codecs
2017-07-25 11:40:04 +09:00
Koichiro IWAO
dbaf23e93b
chansrv: constify wFormatTag
2017-07-25 11:40:04 +09:00
Ian Geiser
4b87548b71
Use g_create_path instead of g_create_dir
...
Rename g_mk_temp_dir to g_mk_socket_path
2017-07-14 20:52:38 +09:00
Koichiro IWAO
858e6149f0
fix typo
2017-07-13 13:41:26 +09:00
Koichiro IWAO
6f8eacd72b
sesman: make sure socket directory present
...
before try to create a domain socket.
Originally proposed by Ian Geiser (geiseri).
2017-07-13 13:41:26 +09:00
Jay Sorg
b6bd8acef1
sesman: move auth_start_session, auth_stop_session, and auth_end to child process
2017-07-12 17:58:36 +09:00
Ben Cohen
c7d08bd9e7
xrdp-sesadmin: fix error when there are no sessions
...
Test case: On a system running xrdp with no sessions running run:
xrdp-sesadmin -u=<user> -p=<password> -c=list
Expected result: "No sessions." (ignoring debug output)
Observed result: "Error getting session list."
In the SCP_SERVER_STATE_MNG_LISTREQ case in scp_v1_mng_process() if
there are no sessions it ends the scp session, which causes an error in
the client. In commit 0017081d
the client was changed to report errors,
giving the result above.
Fix by calling scp_v1s_mng_list_sessions() from scp_v1_mng_process()
even when there are no sessions, and if so sending a packet with a count
of zero so that the client gets what it expects.
2017-07-06 13:40:25 +09:00
Koichiro IWAO
9065964bd9
chansrv: include display number in chansrv log filename
...
since xrdp-chansrv may be run multiple instances per user. For example,
Xvnc backend creates one session per screen geometry.
2017-07-06 12:36:47 +09:00
Koichiro IWAO
5a7208a15b
sesman: exit with failure status if listen failed
2017-06-20 14:29:02 +09:00
Koichiro IWAO
6a860d4b02
sesman: install empty reconnectwm.sh as a template
...
as it was undocumented and few people know reconnectwm.sh is executed on
client reconnect. The behaviour of startwm.sh / reconnectwm.sh should
be documented. This is a first step of documenting them.
2017-06-20 13:40:05 +09:00
Koichiro IWAO
e1d11a74da
pulse: respect XRDP_SOCKET_PATH environment variable
2017-05-16 10:41:06 +09:00
Koichiro IWAO
1acef2567c
sesman: pass xrdp socket path to user session
...
via environment variable.
2017-05-16 10:41:06 +09:00
Fuminobu TAKEYAMA
1f27a4d850
startwm.sh: do not call pseudo shell code for /etc/X11/xdm/Xsession
...
Since /etc/X11/xdm/Xsession calls user's login shell, startwm.sh
should not execute the pseudo code; It causes to execute
~/.profile twice.
2017-05-09 16:26:38 +09:00
Koichiro IWAO
10fe699466
pulse: define default socket directory in Makefile
2017-04-06 09:29:16 +09:00
Koichiro IWAO
06ce0d7ee3
sesman: LOGNAME should be set to username
...
which is used to store login name. The login name shall be the string
that would be returned by the getlogin() function [1]. Some applications
only refers LOGNAME environment variable and don't fallback to other
variables such as USER.
Fixes #725 . Reported by @seidler2547.
[1] The Single UNIX Specification, Issue 7
2017-04-06 09:25:02 +09:00
Pavel Roskin
148afd1170
Rename file_loc.h to xrdp_sockets.h, install it
...
Include xrdp_sockets.h directly, not through headers.
2017-03-28 00:59:16 -07:00
Koichiro IWAO
8220afceab
pulse: refer correct path to file_loc.h
2017-03-24 13:49:21 +09:00
Koichiro IWAO
a20d88335f
pulse: use correct macro for audio in/out sockets
2017-03-24 13:49:21 +09:00
Jay Sorg
4b8a33e087
sesman: move auth/pam calls to main process
2017-03-21 21:56:28 -07:00
Pavel Roskin
b0c2f18521
xrdp-chansrv: default to INFO log level rather than ERROR
2017-03-20 19:11:06 -07:00
Jay Sorg
05c599666d
sesman: remove sessvc, one less process to manage
2017-03-19 17:16:36 -07:00