Skip to content

Releases: cedrozor/myrtille

FreeRDP build as library, embedded nodejs modules

07 Mar 16:23
Compare
Choose a tag to compare
  • FreeRDP is now built as a dll instead of an executable for better modularity and to reduce the risk of false positive detection of wfreerdp.exe by some antiviruses (mostly cloud based)
  • embedded interact.js and simple-keyboard (nodejs modules) into myrtille in order to remove dependencies on external CDNs (ans thus allow myrtille to be used standalone and not subject to external changes)
  • fixed a problem with the creation of the self-signed certificate that prevented Myrtille from installing correctly on Windows Server 2012 R2 (thanks camjcorley)
  • a session can now be shared directly by url (simply copy & paste the page url then share it), with owner rights (web.config, can be disabled for anti-spoofing protection)
  • region updates are now dropped by the gateway if the client latency is above the image cache duration (1 sec); only fullscreen updates are sent
  • display updates can now be distributed across concurrent websockets (round robin load balancing) to reduce lag in case of network issues (config.js, default 5 websockets: 1 up 4 down). CAUTION! IIS on Windows client OSes (7, 8, 10) is limited to 10 simultaneous connections only - across all http sessions - and will hang after that! use Windows Server editions for production environments
  • the mouse move sampling rate is now decreased automatically in case of low bandwidth (default 100%, config.js)
  • refactoring

Fixed installer hang, minor fixes

06 Dec 16:47
Compare
Choose a tag to compare
  • fixed an issue where the installer hangs due to enabling Windows features (via PowerShell) that prompt the user to restart or not while there is no UI to confirm
  • fixed a regression when hiding the toolbar from web.config
  • fixed an issue into FreeRDP with a special copy&paste logic into MS Office applications which disconnected the session after a special paste when pressing the enter key
  • the protocol scheme when sharing a session or creating a session URL is now determined by the HTTP_X_FORWARDED_PROTO http header if available, instead of the current http request, so that https is correctly detected after a redirection by a reverse proxy or a load-balancer
  • now rolling over display updates and audio block indexes if they reach max int value
  • fixed a minor regression which prevented myrtille to work on old IE browsers

Multi-Languages On-Screen Keyboard, SSE support, various fixes and improvements

20 Sep 17:04
Compare
Choose a tag to compare
  • added a virtual on-screen keyboard (multi-languages)
  • popups are now draggable
  • showing the toolbar no longer shifts the display down
  • the rendering quality can now tweaked from the toolbar (lower quality = lower bandwidth usage), in addition to the default value defined in config.js
  • display updates are now consolidated instead of dropped when the available bandwidth gets low (config.js)
  • websocket can now be configured to handle both user inputs and display updates on the same instance (duplex, default) or use separate instances (dual) [experimental]
  • added support of event source (SSE) as an alternative to long-polling (requires HTML5 and not compatible with old IE/Edge browsers) [experimental]
  • it's now possible to switch automatically from websocket to event source when the latency gets high (the websocket protocol may be filtered or throttled by some network proxies) (config.js) [experimental]
  • disabled the warning messages when the latency gets high (config.js) or in case of xhr timeout (xmlhttp.js)
  • latency is now updated on a 1 sec timer, even if the user does nothing
  • fixed random freezes while requesting fullscreen updates
  • the disconnect command is now given priority in xhr mode
  • long-polling is now an http handler
  • messages are serialized in JSON instead of raw text
  • fixed an issue with messages containing the ";" character
  • fixed an issue with file transfer when using a domain (thanks camjcorley)
  • fixed an issue with file transfer and user profiles containing unicode characters
  • fixed an issue with the tab key in SSH mode (this also fixes shell autocompletion)
  • fixed an issue with the change password popup (enterprise mode / local admin), which wasn't displayed correctly
  • if no domain is defined into the domain input field, myrtille now tries to retrieve the domain from the username (using the standard UPN syntax: DOMAIN\username or [email protected])
  • updated the myrtille project url
  • refactoring

Optimized bandwidth usage

20 Apr 22:08
Compare
Choose a tag to compare
  • changed the default display resize mode from scale to none (config.js); this eliminates a loss of display sharpness when the aspect ratio is not preserved; reconnect is not supported by Windows Server 2019 (see documentation)
  • if using scale on resize, the aspect ratio is now preserved by default (config.js)
  • lowered bandwidth usage: the default display quality is now JPEG 75% (lossy) instead of PNG (lossless) (config.js); this significantly reduces the size of display updates when using graphics applications and JPEG is generated faster
  • lowered bandwidth usage: the adaptive fullscreen update is now disabled (config.js); it's not needed most of the time (unless if the display quality is poor); it's role is to restore the display sharpness and fix potential display issues when the user becomes inactive
  • lowered bandwidth usage: the default audio compression is now MP3 128 kbps instead of WAV 1411 kbps (config.js)

Simplified host management (no domain needed), installer upgrade, docker image, clipboard fixes, and more!

25 Jan 02:47
Compare
Choose a tag to compare
  • pre-requisites change; myrtille now requires Windows 8.1 or Windows Server 2012 R2 or greater
  • the installer is now shipped without bootstraper (Setup.exe); open the myrtille msi file directly instead
  • the installer now installs the myrtille pre-requisites automatically (roles and features); the related powershell scripts can also be run manually from outside the installer, if needed
  • the installer now supports upgrading (thanks to Orca, which allows finer control over msi files), removing the need to uninstall a previous version first
  • myrtille is now available as a docker image (see DOCUMENTATION.MD)
  • resynced FreeRDP (among many things, fixes some issues related to the clipboard and audio)
  • fixed session disconnect occuring under some circumstances on clipboard paste
  • fixed an issue where only the first letter of the clipboard content was displayed on clipboard paste
  • simplified hosts management (no domain or enterprise mode required); default login: admin/admin (changed upon first login)
  • updated the enterprise mode so that a member of "EnterpriseAdminGroup" can connect an host whatever the allowed groups or users defined on it (thanks dgcom)
  • fixed an issue with the enterprise mode, which prompted to change the password due to expiration whereas the expiration date was just not set (thanks dgcom)
  • security protocol is now configurable for RDP over VM bus
  • user domain is now configurable whatever the protocol and displayed into the toolbar, if defined
  • updated comments to drain disconnected sessions when using a connection broker in HA mode (myrtille services config)
  • starting with Windows Server 2019 (or Windows 10 release 1903), RDS introduces changes with NLA and the way disconnected sessions are handled (see DOCUMENTATION.MD); myrtille now default to scale instead of reconnect
  • if scaling the display on browser resize, you can choose whether to preserve or not the aspect ratio (config.js, default = don't keep)
  • various minor fixes

Disabled application pool recycling, some fixes

27 Nov 16:40
Compare
Choose a tag to compare
    • HOTFIX * fixed a potential crash of myrtille services when sending a disconnect notification (#187, thanks gtmsew)
  • the automatic application pool recycling is now disabled by default, and is not applicable if using the enterprise mode (this prevents enterprise sessions to be dropped unexpectedly!)
  • if recycling is enabled, a new http session is now acquired on disconnect; this prevents a subsequent login failure (due to the old http session being invalid) without any error message

Seamless clipboard, support of RDS API, drain of disconnected sessions, reduced memory usage, improved display tweaking on high latency, etc.

31 Oct 14:13
Compare
Choose a tag to compare

(extracted from changelog)

2019-11-19 Version 2.7.0 (stable)
* HOTFIX * fixed a critical issue with FreeRDP (exit code 131085) when using an RD license server configured in "per device" mode, past the 120 days of the RDS grace period
updated readme and documentation about the RDS role
the browser "heartbeat" (used to detect if the browser window/tab was closed) is now on a different timer than the periodical fullscreen update (config.js; default 10 secs)
disabled the alt key capture because it may interfere with the browser alt+key menu
keys following the alt+gr modifier are now sent as scancode instead of unicode
ability to configure the login url (by default the myrtille login page; web.config)
updated the installer for a better display of prerequisites
added the option into the installer to choose either to pass the http session ID into url or store it into the default "ASP.NET_SessionId" cookie (the former allows multiple connections/tabs or iframes)
the connection API is now out of beta and installed by default (full auto-connect/start program from url syntax is still available)
the scale feature now keeps the aspect ratio on browser resize
fixed a display refresh issue under chrome + https if the clipboard is empty
increased the image cache duration (1 sec -> 3 secs)
halved the input buffer duration (based on the roundtrip duration)
updated display tweaking
improved cleanup on session disconnect into wfreerdp to prevent memory leaks with GDI+
improved cleanup on session disconnect into Myrtille to prevent memory leaks on the application pool
removed any unnecessary memory allocation and released any disposable object on the application pool
the application pool is now automatically recycled when there is no active remote session (configurable into web.config)
fixed an issue related to the disconnect callback (which was sometimes not received by the gateway due a WCF deadlock)
scripts and styles now have computed hashes to prevent browser caching (in case content is changed); they could also be minified, as needed (see comments in BundleConfig.cs)
re-enabled multiple connections/tabs (web.config, read comments about security)
the address of the connected server is now displayed into the window/tab title, if not using a connection API (thanks Zak)
fixed invalid mouse cursor update under certain circumstances (thanks joburg)
fixed potential delayed wfreerdp exit in case of session disconnect

2019-09-02 Version 2.6.0 (not released-beta)
resynced FreeRDP (2.0.0-dev5)
added a REST API to disconnect a given remote session or all of them (on a gateway)
fixed an issue with some network or domain configuration that could delay the start of a connection
support of Connection Broker database, in High Availability mode
support of RDS API
configurable drain of disconnected sessions
seamless clipboard synchronization, using the async clipboard API (requires Chrome and HTTPS) with fallback to standard web API (for other browsers and HTTP)
now hiding iframe content on browser resize
various mockup improvements
get focus back on main window after a popup is closed
screenshot is now returned as HttpResponseMessage, byte array content
clipboard virtual channel comments and check
the self-signed certificate (installed by myrtille on install) is now issued with the machine FQDN to prevent ERR_CERT_AUTHORITY_INVALID (Subject Alternative Name Missing) in recent Chrome releases
now using a web worker for the periodical fullscreen updates to keep them going even if the main thread is paused (due to inactive window/tab, after focus lost for example)
some refactoring

Audio support, REST APIs, various fixes and improvements

01 Jun 18:23
Compare
Choose a tag to compare

2019-09-23 Version 2.5.5 (patched)

  • HOTFIX fixed a critical issue with FreeRDP (exit code 131085) when using an RD license server configured in "per device" mode, past the 120 days of the RDS grace period
  • updated readme and documentation about the RDS role

2019-06-01 Version 2.5.5 (stable)

  • added audio support (MP3 (default)/WAV, config.js)
  • (beta) added a REST API to prevent the connection details to be passed into the querystring; a connection identifier (&cid=) is passed instead and the connection details are retrieved by the myrtille gateway using the REST API
  • (beta) added a REST API to share a remote session and manage the active guest(s)
  • (beta) added a REST API to take screenshots of the remote session (either automatically (periodically), or manually)
  • added the ability to hide the toolbar (web.config, you can hide it if using your own UI)
  • added the ability to disable connection from login screen or url (web.config, you can disable it if using a connection API)
  • fixed a regression into the buffer processing
  • fixed a mouse left button bug which happened sometimes in HTML4
  • fixed a display glitch with too many divs displayed at once in HTML4
  • fixed a keyboard handling issue with Ubuntu in RDP over VM bus (Hyper-V) mode
  • fixed some issues related to session sharing
  • improved the ability to run myrtille into an iframe (like for multiple connections/tabs, requires "cookieless=useURI" mode into web.config): multiple iframes on a same page, key combination to switch from one iframe to another (shift + alt), focus management, etc.; cross domain restriction can be avoided by having all iframes on the same domain as the main page
  • improved the scale and reconnect features on browser resize; they can now be toggled from the toolbar (instead of using a web.config key)
  • toolbar state is now saved into a cookie to persist across page reload(s)
  • stat, debug and compatibility modes are now handled client side, saved into a cookie and always available; they are no longer bound to the remote session (so that, if the remote session is shared, guest(s) can now use them independently from the owner!)
  • a remote session now supports mixed HTML4 and HTML5 client(s)
  • fixed some issues in compatibility (HTML4) mode (long-polling); for example, missing carriage returns and line feeds into SSH terminal and remote clipboard popup
  • removed the display websocket buffer (as the connection remains open, it was not really necessary nor did it provide satisfactory results)

Reconnect on resize, improved swipe, Windows Server 2008 fixes, etc.

14 Feb 21:41
Compare
Choose a tag to compare
  • the remote session display is now automatically scaled to the browser size on session start
  • NEW! as an alternative to scaling, the remote session can be reconnected on browser resize to preserve the aspect ratio (web.config, disable "ScaleOnResize")
  • fixed a race condition in which the browser sent certain configuration parameters before the connection was effective
  • improved the up/down swipe gesture management (should be smoother now)
  • more FreeRDP params are now configurable (bin/Myrtille.Services.exe.config)
  • disabled FreeRDP glyph cache to fix display issues on Windows Server 2008 R2 (also fixes issues with chinese characters)
  • fixed unexpected disconnects on Windows Server 2008 R2 (FreeRDP/FreeRDP#3595)
  • resynced FreeRDP (2.0.0-RC4)

WCF throttling, direct print, swipe emulation

03 Nov 19:13
Compare
Choose a tag to compare
  • HOTFIX! increased the WCF channels limits; this fixes an issue where some connections failed under the load
  • added WCF traces (disabled by default; see comments in configs)
  • replaced the remote session auto-incremented counter (as identifier) by a guid; this ensures an unique identifier even if Myrtille.Services (or MyrtilleAppPool before version 2.2.0) is restarted
  • the Myrtille.PDF virtual printer now opens the browser print dialog, removing the need to install a PDF viewer on the end user machine and providing direct access to local (or network) printers (not working with the built-in Firefox PDF.js, option to open/download the pdf instead)
  • added swipe up/down gesture management for touchscreen devices (useful to scroll the display in applications that need it; can be disabled into the toolbar) * experimental feature! * not working on IE/Edge (see below)
  • emulating mouse events for IE/Edge on touchscreen devices (touchscreen is disabled by default into IE/Edge and use pointer events instead of touch when enabled into about:flags)
  • for easier auto-connect / start program from url management, you can generate a password hash from url (thanks jol64). syntax: https://server/myrtille/GetHash.aspx?password=password
  • resynced FreeRDP (2.0.0 RC3)