Commit Graph

194 Commits (a20d5c29e82abe501b5dfcd8ac1bfc07f3da7806)

Author SHA1 Message Date
Justin Terry (VM) d7d14d7462 Implements the accept/close logic for vsock 7 years ago
Jay Sorg 285465a1f5 common, return -1 for bad socket 7 years ago
Jay Sorg c6c513b23c use g_memcpy, braces 7 years ago
Jay Sorg 26507644e3 vsock, move some defines 7 years ago
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.
7 years ago
Koichiro IWAO 00bf62bd42 common: prevent raw use of snprintf 7 years ago
Koichiro IWAO f9ab4df7f2 common: fix g_write_ip_address() didn't return correct IP address
Fixes: #878.
8 years ago
Ian Geiser 324a334315 append a / to ensure the full path is created even when the config variable lacks a trailing / 8 years ago
Koichiro IWAO aa0721a90e common: fix more glitches in IPv4 initialization 8 years ago
Ian Geiser 4b87548b71 Use g_create_path instead of g_create_dir
Rename g_mk_temp_dir to g_mk_socket_path
8 years ago
Koichiro IWAO 8d5010a202 common: use log_message 8 years ago
Koichiro IWAO 8c74fcb80c common: fix a glitch with IPv4 struct initialization
Pointed out by: andrecbarros
Closes: #803
8 years ago
Koichiro IWAO 088bd2d811 common: implement g_file_readable for WIN32 8 years ago
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
8 years ago
MichaelSweden 5c668dc420 Removed error message while falling back to IPv4 (issue #714) 8 years ago
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
8 years ago
Pavel Roskin 95506a169f Log socket fd in g_sck_accept(), fix AF_UNIX logging 8 years ago
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.
8 years ago
Pavel Roskin 6ed4c969f4 Eliminate APP_CC and DEFAULT_CC 8 years ago
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.
8 years ago
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.
8 years ago
Jay Sorg 9a517b34f0 vnc: code cleanup 8 years ago
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.
8 years ago
Itamar Reis Peixoto 7cc1dd2ba8 Merge pull request #460 from metalefty/ipv6/logs
common: Fix client IP address logging when IPv6 is enabled
8 years ago
Pavel Roskin 2dcc69b752 Use g_get_strerror() instead of strerror(errno) for portability 8 years ago
Koichiro IWAO dcf36b592b common: Address family it not always AF_INET6
even if XRDP_ENABLE_IPV6 defined.
8 years ago
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.
8 years ago
Pavel Roskin 6fef1e4eb5 Use const pointers in function arguments when possible 8 years ago
Pavel Roskin a618d4f757 Don't use final newline in log calls, it's already appended 8 years ago
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.
9 years ago
Pavel Roskin 5465b8c85e Add socklen_t check with substitution, use socklen_t as needed 9 years ago
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.
9 years ago
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
9 years ago
jsorg71 8353baab3d Merge pull request #390 from proski/june21
Cleanups and C++ compatibility
9 years ago
speidy c9b55e3691 sesman: env_set_user, fix potential bof issues 9 years ago
Pavel Roskin d1efb0d5ba Fix signed to unsigned comparisons reported by g++ 6.1.0 9 years ago
Pavel Roskin aeeb3d2c2e Fix warnings detected by -Wwrite-strings 9 years ago
Pavel Roskin 77b380c0b5 Fix format warnings in log_message() calls 9 years ago
Pavel Roskin ae5bb5bf9c Fix incorrect use of "it's" and "its", adjust wording 9 years ago
jsorg71 8249091183 Merge pull request #332 from metalefty/freebsd/ipv6
common: add log for g_tcp_connect
9 years ago
Jay Sorg bd6c38af4d common: fix warnings 9 years ago
Jay Sorg 689ffe79d9 fix warnings, move some calls to os_calls 9 years ago
Jay Sorg 7393579205 Don't attempt to intercept SIGKILL, it doesn't work on any OS 9 years ago
Koichiro IWAO 9460bdb643 common: no logic change, indent 2 -> 4 9 years ago
Koichiro IWAO d01854a341 common: no logic change, fix alignment, whitespaces 9 years ago
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
9 years ago
Pavel Roskin 92a6833e9b Fix typos 9 years ago
Itamar Reis Peixoto 08121e0840 Merge pull request #254 from metalefty/freebsd/ipv6
Unbreak IPv6 on FreeBSD and add IPv6-only option
9 years ago
Pavel Roskin 964e860072 Run through codespell 9 years ago
Jay Sorg ab3b8edf4a common: change wait objs to use 'pipe' and remove per process temp directories in /tmp/.xrdp/ 10 years ago