Commit Graph

259 Commits

Author SHA1 Message Date
matt335672 ce23c824ea
Merge pull request #1976 from matt335672/fail2ban_support
Fail2ban support (#1076)
2021-11-18 10:11:12 +00:00
matt335672 50e37bf673 Add more file info functions
- g_file_get_device_number()
- g_file_get_inode_num()
2021-10-25 15:24:27 +01:00
matt335672 5fb621ca53 Logged IP address for fail2ban on login failure 2021-10-25 11:35:35 +01:00
matt335672 60016c1f75 Rename client_ip to connection_description 2021-10-25 11:35:35 +01:00
Alexandre Quesnel f5e4b53b11 Add logging to g_exec*() functions 2021-04-14 04:41:53 +00:00
Alexandre Quesnel 2ab3b97ba0 Migrating logging to LOG() and LOG_DEVEL() in common/* 2021-03-14 23:33:31 +00:00
Alexandre Quesnel bb9d3079c0 Fixing formatting with astyle in common/* 2021-03-14 23:33:31 +00:00
matt335672 0a1a8f40e5 Moved a lot of string funcs to string_calls module 2020-12-22 11:57:24 +00:00
matt335672 5523847540 Allow FuseMountName for chansrv to be absolute path 2020-12-21 12:36:31 +00:00
Bolke de Bruin a6a0e5e004 Allow domain name to be concatenated to username
If a server is multihomed (i.e. mutiple domains) the
users are identified by their domain name. This change
allows to concat the domain name to the username with
a specific separator.
2020-08-30 21:56:16 +02:00
matt335672 27653f97f2 Code changes for cppcheck 2.1 warnings 2020-06-19 11:07:23 +01:00
Koichiro IWAO e8c845e78b
common: switch _exit to exit
mentioned in #1472.
2020-01-08 09:21:39 +09:00
Koichiro IWAO e928d8baf2
common: flush stream in g_deinit()
unless flushing stream before exitting, `xrdp --version | cat` will
show empty output.

Fixes #1471.
2020-01-07 19:24:17 +09:00
Jay Sorg ee65ccb31d use address for tcp:// and tcp6:// and vsock:// 2019-07-01 17:56:50 -07:00
Jay Sorg 0bc7803eaa add TCP V4 and V6 only socket functions 2019-06-29 23:59:18 -07:00
Justin Terry (VM) d7d14d7462 Implements the accept/close logic for vsock 2017-11-17 20:23:20 -08:00
Jay Sorg 285465a1f5 common, return -1 for bad socket 2017-11-07 18:20:45 -08:00
Jay Sorg c6c513b23c use g_memcpy, braces 2017-11-07 18:20:45 -08:00
Jay Sorg 26507644e3 vsock, move some defines 2017-11-07 18:20:45 -08:00
Justin Terry (VM) 50bd624cc4 Implements XRDP over vsock
1. Implements the ability to use AV_VSOCK for the transport rather than TCP.
2. Updates the ini file to be able to conditionally turn this feature on.
2017-11-07 18:20:45 -08:00
Koichiro IWAO 00bf62bd42 common: prevent raw use of snprintf 2017-10-03 21:55:08 +09:00
Koichiro IWAO f9ab4df7f2 common: fix g_write_ip_address() didn't return correct IP address
Fixes: #878.
2017-09-26 10:54:08 +09:00
Ian Geiser 324a334315 append a / to ensure the full path is created even when the config variable lacks a trailing / 2017-07-19 10:35:37 +09:00
Koichiro IWAO aa0721a90e common: fix more glitches in IPv4 initialization 2017-07-14 21:21:15 +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 8d5010a202 common: use log_message 2017-07-13 13:41:26 +09:00
Koichiro IWAO 8c74fcb80c common: fix a glitch with IPv4 struct initialization
Pointed out by: andrecbarros
Closes: #803
2017-07-10 11:58:10 +09:00
Koichiro IWAO 088bd2d811 common: implement g_file_readable for WIN32 2017-06-12 16:57:04 +09:00
Koichiro IWAO 65c1fe87d7 Log user-friendly message when certificate/privkey is inaccessible
We shouldn't assume that xrdp daemon is running under root privilege.
In many cases, root privilege is not really needed for xrdp daemon.
xrdp may fail to load certificate/privkey due to lack of permissions
when running under user privilege. Checking existence of files is not
enough and xrdp should output user-friendly log in such case.

Reported by Debian user in bug 856436 [1].

[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=856436
2017-06-12 16:57:04 +09:00
MichaelSweden 5c668dc420 Removed error message while falling back to IPv4 (issue #714) 2017-04-25 09:31:22 +09:00
MichaelSweden 106ae2cd43 Fix to handle OS disabled IPv6, issue #714.
- Changes made only in the os_calls.c file.
- Exported functions changed: g_tcp_bind g_tcp_bind_address g_tcp_connect
- Support three network configurations:
  1) Normal network, with IPv6
  2) Partly disabled IPv6 via sysctl.conf
  3) Total disabled IPv6 via grub
2017-04-25 09:31:22 +09:00
Pavel Roskin 95506a169f Log socket fd in g_sck_accept(), fix AF_UNIX logging 2017-03-21 21:59:50 -07:00
Pavel Roskin 58c9cb43e9 Make socket directory configurable, don't hardcode /tmp/.xrdp
Use XRDP_SOCKET_PATH in file_loc.h

Don't define any non-socket paths in file_loc.h, they should come from
the makefiles.

Define all paths unconditionally, they should not be defined elsewhere.

Pass XRDP_SOCKET_PATH as environment variable to the backends.
2017-03-17 22:25:05 -07:00
Pavel Roskin 6ed4c969f4 Eliminate APP_CC and DEFAULT_CC 2017-03-14 00:21:48 -07:00
mirabilos 6257bae23f Add GNU/kFreeBSD support (#645)
* GNU/kFreeBSD is a FreeBSD variant, for code purposes.

* GNU/kFreeBSD uses GNU/Linux-ish init scripts, however.
2017-01-26 23:02:41 -02:00
Pavel Roskin d97155e2f6 Don't use colon to separate IPv6 address from the port
IPv6 addresses can have colons in their names, so the final colon can be
confusing.
2016-12-09 08:42:56 -08:00
Jay Sorg 9a517b34f0 vnc: code cleanup 2016-12-04 15:39:10 -08:00
Koichiro IWAO 849a8075c5 common: If IPv6 not supported, fall back to IPv4
The system to run xrdp does not necessarily support IPv6 even though
it is compiled with IPv6.

Fixes #432.
2016-11-22 16:40:54 +09:00
Itamar Reis Peixoto 7cc1dd2ba8 Merge pull request #460 from metalefty/ipv6/logs
common: Fix client IP address logging when IPv6 is enabled
2016-11-20 16:00:26 -02:00
Pavel Roskin 2dcc69b752 Use g_get_strerror() instead of strerror(errno) for portability 2016-11-08 14:08:51 -08:00
Koichiro IWAO dcf36b592b common: Address family it not always AF_INET6
even if XRDP_ENABLE_IPV6 defined.
2016-11-04 17:31:36 +09:00
Koichiro IWAO b2118450f4 common: Fix client IP address logging when IPv6 is enabled
g_tcp_accept() and g_sck_accept() should use sockadd_in6 when IPv6 is
enabled. The former code logs client IP address always "0.0.0.0" in such
case.

Fixes #412.
2016-11-04 17:31:36 +09:00
Pavel Roskin 6fef1e4eb5 Use const pointers in function arguments when possible 2016-10-17 08:54:07 -07:00
Pavel Roskin a618d4f757 Don't use final newline in log calls, it's already appended 2016-10-17 08:54:07 -07:00
Pavel Roskin 7d03d1a3e9 Fix outgoing connections on Mac OSX
connect() on an already established connection returns error with errno
set to EISCONN. Treat it as success.
2016-09-08 22:28:38 -07:00
Pavel Roskin 5465b8c85e Add socklen_t check with substitution, use socklen_t as needed 2016-09-08 20:26:19 -07:00
Pavel Roskin 6f4ffa769c Improve debug information when closing a socket
Don't assume AF_INET family. Don't assume the socket is connected. Report
local address and port. Don't try to close non-sockets and invalid file
descriptors. Report errors getting socket information and closing the
socket. Use more appropriate log levels.
2016-09-08 20:26:19 -07:00
Koichiro IWAO ceb4b7b2a4 Fix clipboard when text/filename contains non-ASCII characters
broken by #314. This is compatible with the fix introduced in #314.

To use non-ASCII text/filename in clipboard, chansrv needs to be run
with LC_CTYPE=*.UTF-8 because the behaviour of mbstowcs(3) function
called in chansrv depends on LC_CTYPE[1].  However #314 made
LC_CTYPE=C in chansrv context.  Even if LANG and LC_* are set in
.bashrc, /etc/profile, /etc/locale.conf or something like that,
it doesn't affect in chansrv context because chansrv doesn't source
any of them unlike sesman.

So do not set LC_CTYPE to blank or "C" in g_init() in order to get
g_mbstowcs and g_wcstombs to work properly with non-ASCII UTF-8
characters in any context.

Setting LC_CTYPE to *.UTF-8 doesn't obstruct applying system
language in RHEL [2].

[1] Linux man page says:
      The behavior of mbstowcs() depends on the LC_CTYPE category of
      the current locale.

[2] https://bugzilla.redhat.com/show_bug.cgi?id=1290820
2016-08-18 13:27:55 +09:00
jsorg71 8353baab3d Merge pull request #390 from proski/june21
Cleanups and C++ compatibility
2016-08-05 14:38:41 -07:00
speidy c9b55e3691 sesman: env_set_user, fix potential bof issues 2016-07-22 04:48:37 -04:00
Pavel Roskin d1efb0d5ba Fix signed to unsigned comparisons reported by g++ 6.1.0 2016-07-08 04:29:51 +00:00
Pavel Roskin aeeb3d2c2e Fix warnings detected by -Wwrite-strings 2016-07-08 04:29:42 +00:00
Pavel Roskin 77b380c0b5 Fix format warnings in log_message() calls 2016-06-21 16:30:16 -07:00
Pavel Roskin ae5bb5bf9c Fix incorrect use of "it's" and "its", adjust wording 2016-06-21 16:30:15 -07:00
jsorg71 8249091183 Merge pull request #332 from metalefty/freebsd/ipv6
common: add log for g_tcp_connect
2016-05-05 22:00:51 -07:00
Jay Sorg bd6c38af4d common: fix warnings 2016-04-02 16:49:23 -07:00
Jay Sorg 689ffe79d9 fix warnings, move some calls to os_calls 2016-03-16 14:32:14 -07:00
Jay Sorg 7393579205 Don't attempt to intercept SIGKILL, it doesn't work on any OS 2016-03-14 16:33:49 -07:00
Koichiro IWAO 9460bdb643 common: no logic change, indent 2 -> 4 2016-02-23 18:26:42 +09:00
Koichiro IWAO d01854a341 common: no logic change, fix alignment, whitespaces 2016-02-23 18:26:41 +09:00
Koichiro IWAO 1ed7dbec53 common: add log for g_tcp_connect
in case getaddrinfo(3) might fail.

In FreeBSD, AI_V4MAPPED support for getaddrinfo(3) was very recently
implemented[1].  Most of FreeBSD systems in the world do not have
this implementation yet.  This will be a problem when AI_V4MAPPED
isn't supported and xrdp is built with IPv6 option.  In such a case,
g_tcp_connect always fails.

Of course getaddrinfo(3) might fail in other cases.  The log helps
us to know what's happening.

[1] https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=198092
2016-02-23 18:18:28 +09:00
Pavel Roskin 92a6833e9b Fix typos 2016-02-13 20:41:07 -08:00
Itamar Reis Peixoto 08121e0840 Merge pull request #254 from metalefty/freebsd/ipv6
Unbreak IPv6 on FreeBSD and add IPv6-only option
2016-02-08 22:40:05 -02:00
Pavel Roskin 964e860072 Run through codespell 2016-01-14 08:47:50 -08:00
Jay Sorg ab3b8edf4a common: change wait objs to use 'pipe' and remove per process temp directories in /tmp/.xrdp/ 2015-10-06 20:55:47 -07:00
Jay Sorg 5c08ece708 common: add g_mirror_memcpy 2015-08-18 17:14:09 -07:00
Koichiro IWAO 536ee41c5e common: add --enable-ipv6only option 2015-07-02 15:08:56 +09:00
Koichiro IWAO 5bc0453605 common: drop ipv6 autodetection only valid for linux 2015-07-02 15:08:55 +09:00
Koichiro IWAO 1f844b2d0e common: workaround for #146 2015-03-18 08:46:23 +00:00
Koichiro IWAO 278e957dd7 common: add experimental --enable-ipv6 option 2015-03-10 14:05:13 +09:00
Jay Sorg 6b0bbbeefa common: merge from a8 2014-11-07 22:10:59 -08:00
Laxmikant Rashinkar 0311a82c0a coverity: copy into fixed sized buffer 2014-07-27 12:42:12 -07:00
Laxmikant Rashinkar 1c423dadf4 coverity: copy into fixed sized buffer 2014-07-26 16:33:36 -07:00
Laxmikant Rashinkar a990287c46 coverity: fixed unchecked return value from library 2014-07-20 13:14:09 -07:00
Jay Sorg 1934c9ea00 sesman: more options for session lookup from Fredy Paquet 2014-04-20 00:42:19 -07:00
Jay Sorg aa983d2b46 common: fix for clearing environment vars in BSD 2014-04-17 21:40:30 -07:00
Jay Sorg 43e388b7e5 remove some warning, move gethostname to os_calls 2014-02-08 21:48:44 -08:00
Jay Sorg 4e6d57dbe5 common: some notes and compile fixes 2014-02-08 18:05:52 -08:00
Jay Sorg 48228cae2e common: added shm to os_calls 2014-01-28 10:38:36 -08:00
Jay Sorg 25369460a1 log client ip with pid, etc 2013-10-02 16:27:12 -07:00
Jay Sorg 7176f14647 added options to set tcp send and recv buffer sizes 2013-10-02 12:52:35 -07:00
Jay Sorg b598e258a4 add pid logging 2013-10-01 22:42:12 -07:00
Laxmikant Rashinkar ece8f1fb47 gracefully handle segfaults in chansrv code 2013-09-03 19:44:20 -07:00
Jay Sorg 1a616a1b46 move text2bool to os_calls 2013-08-24 22:41:44 -07:00
Jay Sorg cd0a8721d1 disable ipv6 for now 2013-05-06 17:45:30 -07:00
Jay Sorg 2ed8b31a11 ipv6 2013-04-04 01:31:51 -07:00
Jay Sorg d9c0af1e78 ipv6 2013-04-03 23:06:08 -07:00
Jay Sorg 54463affaf autodetect ipv6 2013-04-03 00:54:52 -07:00
Jay Sorg 8b71f48f7b adding ipv6 support 2013-04-03 00:16:52 -07:00
Jay Sorg cae3b1b0f1 ipv6 started pushing bits 2013-04-02 02:08:10 -07:00
ArvidNorr fb7294ed26 small len fixes 2013-01-31 20:17:42 +01:00
ArvidNorr 975d44e99f More logging added 2013-01-18 10:24:25 +01:00
LawrenceK a52dbba1a5 Add g_strchr to os_calls 2012-12-20 07:02:41 +00:00
Jay Sorg 82a8366fc0 added getgid to os_calls 2012-10-29 20:30:48 -07:00
Jay Sorg e07dd5afb5 added a file open funtion 2012-10-13 22:48:05 -07:00
Laxmikant Rashinkar 1123323fda o moved from GNU General Public License to Apache License, Version 2.0
o applied new coding standards to all .c files
o moved some files around
2012-09-19 20:51:34 -07:00
Jay Sorg 4e92468262 output error when set socket opt fails 2012-07-23 11:06:04 -07:00
Jay Sorg 7dc5a77116 common: no logic changes, code cleanup 2012-06-23 16:22:38 -07:00
ArvidNorr d2903cd1fc Merge pull request #28 from ArvidNorr/tcp_nodelay
Support for TCP keepalive and TCP no_delay added
2012-06-18 00:00:05 -07:00
ArvidNorr 1011b4a256 Merge pull request #22 from ArvidNorr/moduleload
Moduleload
2012-06-17 23:14:40 -07:00