Commit Graph

12599 Commits

Author SHA1 Message Date
Armin Novak 666ef4ab34 Fix #4864: Register pointer cache after PostConnect is called
With #4950 client side pointer implementation was made optional.
This addresses an issue that each client had to call
pointer_cache_register_callbacks on its own.
2018-11-20 09:49:39 +01:00
Martin Fleisz b216520d5b
Merge pull request #5021 from akallabeth/profiler_api_rework
Fixed profiler API
2018-11-19 10:20:52 +01:00
Bernhard Miklautz b7354ce438
Merge pull request #4940 from akallabeth/check_window_order_support
Added checks for order type window support.
2018-11-19 09:15:14 +00:00
Bernhard Miklautz 3eb46444e2
Merge pull request #5025 from DustPuppyNet/openssl_1_1_1
fix for connection with openssl 1.1.1
2018-11-19 08:57:53 +00:00
Christian Gall fffe4f077a * remove obsolete SSLv23_client_method in tls_connect()
* set min TLS Version
2018-11-18 14:09:37 +00:00
Bernhard Miklautz 621ade9b84
Merge pull request #5023 from ileGITimo/master
call xf_SetWindowTitle before XMapWindow
2018-11-17 18:47:08 +00:00
ileGITimo d5dd983bcd call xf_SetWindowTitle before XMapWindow, so window manager can act on window name 2018-11-17 06:32:52 -08:00
Armin Novak d2e1248b09 Fixed profiler API
* Duplicate the name internally to avoid issues with stack
* Made API opaque and removed direct dereferencing of struct.
2018-11-16 09:32:15 +01:00
Bernhard Miklautz fe1a79759e
Merge pull request #5018 from hardening/windowpos
cmdline: add window-position argument to set initial window position
2018-11-15 16:46:57 +00:00
Bernhard Miklautz 010e3485cb
Merge pull request #4989 from akallabeth/dsp_encode_resample
Added resampling to freerdp_dsp_encode.
2018-11-15 15:54:56 +00:00
Bernhard Miklautz d6dea852b3
Merge pull request #4976 from hardening/rfx_flush
remotefx: fix rlgr last bits of encoder
2018-11-15 15:25:25 +00:00
Bernhard Miklautz b8cf70b13a
Merge pull request #4964 from akallabeth/rdg_fixes
Rdg/RPC and gateway fixes
2018-11-15 13:48:22 +00:00
David Fort e118d14f6a cmdline: add window-position argument to set initial window position
This is useful if you want the window to be at a given position. The patch also mutualizes
the parsing of <xpos>x<ypos> or <width>x<height> arguments.
2018-11-15 14:40:03 +01:00
Armin Novak 4d7bece6ea Fixed order mask 2018-11-15 09:52:54 +01:00
Armin Novak dd80a09781 Allow window orders with AllowUnanouncedOrdersFromServer 2018-11-15 09:52:54 +01:00
Armin Novak c0b13cf43f Added checks for order type window support. 2018-11-15 09:52:50 +01:00
Bernhard Miklautz d915491717
Merge pull request #5012 from akallabeth/rail_app_icons
Rail app icons
2018-11-15 08:50:56 +00:00
akallabeth cf2c8ef6ac
Merge pull request #5015 from chipitsine/cleanup
cleanup based on PVS analyzer findings
2018-11-15 08:43:54 +01:00
Ilya Shipitsin 77323d6f1d remove not needed check
PVS analyzer: A part of conditional expression is always true: DomainMatch.
2018-11-15 01:54:39 +05:00
Ilya Shipitsin be8f70998a remove not needed check
PVS analyzer: A part of conditional expression is always true: bWaitAll.
2018-11-15 01:51:44 +05:00
akallabeth 268a2c0cf8
Merge pull request #4979 from hardening/CAL
license: support CAL license
2018-11-14 13:45:31 +01:00
Martin Fleisz 1f5c4e2232
Merge pull request #5009 from akallabeth/rdp_version_update
Updated RDP_VERSION definitions.
2018-11-14 13:35:42 +01:00
akallabeth 50395ff575
Merge pull request #5013 from bmiklautz/sspi_symbols
fix [winpr/sspi]: export symbols on all systems
2018-11-14 13:29:03 +01:00
Armin Novak 5490ceb4ed Fixed source format for freerdp_dsp_encode in rdpsnd_server_send_wave_pdu 2018-11-14 13:27:20 +01:00
Armin Novak e5197f529d Add soxr library and include paths. 2018-11-14 13:27:20 +01:00
Armin Novak 9766161f10 Added missing define guards. 2018-11-14 13:27:20 +01:00
Armin Novak 5b363e72aa Allow building without libsoxr support. 2018-11-14 13:27:20 +01:00
Armin Novak 6af56458ad Marked custom ADPCM codecs experimental. 2018-11-14 13:27:20 +01:00
Armin Novak 0f45a570fa Added fallback for supported sample rates if original not supported.
Added format compatibility check between recording input and destination.
2018-11-14 13:27:20 +01:00
Armin Novak 93eea24120 Fixed possible NULL pointer dereference 2018-11-14 13:27:20 +01:00
Armin Novak b362b61a1a Added libsoxr based resampling. 2018-11-14 13:27:20 +01:00
Armin Novak e93aab2f7f Added CMake detection support for libsoxr 2018-11-14 13:27:20 +01:00
Armin Novak ab15e34032 Refactored freerdp_dsp_resample, checks now done internally. 2018-11-14 13:27:20 +01:00
Armin Novak 83f959ce6b Fixed format issues with server sound channel (review by @llysz) 2018-11-14 13:27:20 +01:00
Armin Novak 60025dde8e Fixed unused function warnings when FFMPEG backend is used. 2018-11-14 13:27:20 +01:00
Armin Novak e8e4800c5e Added resampling to freerdp_dsp_encode. 2018-11-14 13:27:20 +01:00
Bernhard Miklautz e980d20e8e
Merge pull request #4973 from Devolutions/fix_drive_redirection
Allow fixed drive redirection (Windows) and fix macos drive duplication.
2018-11-14 11:57:13 +00:00
Bernhard Miklautz 44ead4cfef
Merge pull request #5001 from akallabeth/mac_clipboard_fix
Fixed #4995: Don't forget to send the NULL of the clipboard string.
2018-11-14 11:39:23 +00:00
Bernhard Miklautz a9bcc07d23 fix [winpr/sspi]: export symbols on all systems 2018-11-14 12:19:36 +01:00
Armin Novak 98a537d05d Better description and formatting for update_read_icon_info 2018-11-14 11:57:57 +01:00
Armin Novak 7e12955c55 Made all internal functions static. 2018-11-14 11:57:57 +01:00
Armin Novak 43e17c9755 Fixed color conversion, log level and buffer types 2018-11-14 11:57:57 +01:00
Armin Novak e500abc092 Fixed rail_string_to_unicode_string size calculation. 2018-11-14 11:03:59 +01:00
ilammy 9292b2231f xfreerdp: set _NET_WM_ICON to RAIL app icon
Icons on X11 windows are configured using the _NET_WM_ICON property
described in Extended Window Manager Hints. Here we implement converison
from DIB bitmaps used by RAIL to the format expected by _NET_WM_ICON,
and actually set the icon for RAIL app windows.

Both DIB format and _NET_WM_ICON (or rather, Xlib) are weird. Let's
start with RAIL's format. That's the one used in BMP and ICO formats
on Windows. It has some strange properties but thankfully FreeRDP's
freerdp_image_copy() can handle most of them for us. (With an exception
of monochrome and 16-color formats that it does not support. Sorry, but
I'm too lazy to fix them. They are not seem to be used by any real
application either.) The one thing that it can't do is to apply the
alpha transparency bitmask so we have to do it manually. This instantly
reminds us that DIB format has HISTORY: it's vertically flipped and
each must be padded to 4 bytes. Both these quirks having reasonable
(for a certain definition of 'reason') explanations. Such is life.
(Also, 8-bit images require a color palette which we must fill in.)

So okay, now comes _NET_WM_ICON. It is more sane (or rather, easier to
deal with). The bitmap is represented with a tiny [width, height] header
followed by an array of pixels in ARGB format. There is no padding, no
weird color formats. But here's a catch: you can't simply take the
output of freerdp_image_copy() and cast to (unsigned char*) of colors.
We have to allocate an array of C's longs and copy the pixels there,
because that's what Xlib expects (and this is mentioned in the spec).
Simply casting an array of bytes causes crashes on 64-bit systems.
So don't try to cheat or "optimize" and read the docs, kids.

Note that XFlush() call after XChangeProperty(). It's there because it
seems to helps see the icon quicker with Unity on Ubuntu 14.04. I don't
know why. (And Unity does not support _NET_WM_ICON officially. But it
sorta kinda works sometimes.)

Oh, and while we're here, delete some old, unused, and commented out
code that was setting window icons in the past. It's not needed anymore.
2018-11-14 10:53:45 +01:00
ilammy 8163b6d1ce xfreerdp: add RAIL icon cache
This commit adds a cache for RAIL application icons. It is (surpisingly)
used to cache icons for remote applications. This mechanism is described
in MS-RDPERP 3.1.1.2 Icon Cache Support and related items.

Note that some (actually, most) of the icons are not cached. These are
marked with CacheId == 0xFF. In order to keep the code clean we do not
introduce a special case and instead use a 'scratch' icon and simply
pretend to return an xfRailIcon from cache.

We're going to set icons via _NET_WM_ICON property which explains
why we use "long" values to store pixel data. The icon conversion
is not implemented in this commit, it's only stubs.

However, we do implement processing of window information orders that
contain new icons or cached references to previously sent icons. Note
that it is important to not fail (i.e., to not return FALSE) if we
cannot find a window for the icon by its ID. The server occasionally
likes to be slow or something and send icon updates for nonexistent
windows. This behavior is mandated by the spec, too:

    MS-RDPERP 3.2.5.1.6 Processing Window Information Orders

    Upon receipt of a Window Information Order for an icon or
    cached icon, as specified in sections 2.2.1.3.1.2.2 and
    2.2.1.3.1.2.3, the client SHOULD locate the local RAIL window
    that corresponds to the WindowId reported in the Hdr field
    and apply the icon updates to the RAIL window. If no such
    window can be found, the client SHOULD ignore the order.

Indeed, we silently ignore such orders now.
2018-11-14 10:53:45 +01:00
ilammy 7a2b6e1301 libfreerdp-core: fix reading TS_ICON_INFO
The spec says that CbColorTable field is present when Bpp is 1, 4, 8.
Actually, bpp == 2 is not supported by TS_ICON_INFO according to the
spec (though, DIB definitely supports 16-color images).

    MS-RDPERP 2.2.1.2.3 Icon Info (TS_ICON_INFO)

    CbColorTable (2 bytes):
        This field is ONLY present if the bits per pixel (Bpp)
        value is 1, 4, or 8.

Omitting 8-bit value breaks 256-color icons which are incorrectly
read with color and alpha data mixed up.
2018-11-14 10:53:45 +01:00
Armin Novak 138eb13fea Updated RDP_VERSION definitions. 2018-11-14 10:14:48 +01:00
akallabeth ca6d1d5919
Merge pull request #5005 from bmiklautz/nightly_build
fix [rpm/freerdp-nightly]: build dependencies
2018-11-13 14:39:39 +01:00
Bernhard Miklautz bbd6a3e6c2 fix [rpm/freerdp-nightly]: build dependencies
Depend on libswresample-devel not libavresample-dev.
This reverts the behavior introduced in
fbe95209e7.
2018-11-13 13:59:41 +01:00
Armin Novak ecac998340 Fixed rdg bio cleanup.
When attaching the RDG BIO to the TLS BIO also transfer ownership.
2018-11-13 12:22:09 +01:00