Hi,

I am porting FreeRDP and Guacamole to OpenBSD for the use of RDP.

Guacamole works perfect with ssh sessions to Linux/OpenBSD systems, but I am really after the RDP functionality which doesn't work with the latest guacamole release.

To ensure that the issue is not a "fixed" bug, I am using the "main" branch of Guacamole (as of the morning of June 25, 2020).

I have got the FreeRDP port of the main branch (freerdp-3.0.0dev) working using xfreerdp to Windows XP totally fine.  xfreerdp from the latest release branch of FreeRDP (2.1.2) does not work properly, that's why I've worked on the latest GIT Repository.  I found individual patches that made xfreerdp from 2.1.2 work, so I went all in and am working with the main branch.

Guacamole connects to the same Windows XP box (legacy, interfaced to proprietary hardware and cannot be upgraded) fine, but when I click on the "Start" menu, guacamole errors out and a reconnect happens, which errors out again, etc.

What would be the best way to be troubleshooting this?  I am an experienced C programmer, but new to FreeRDP/Guacamole.

desktop# guacd -f -L debug
guacd[626]: INFO:       Guacamole proxy daemon (guacd) version 1.2.0 started
guacd[626]: DEBUG:      Successfully bound socket to host 127.0.0.1, port 4822
guacd[626]: INFO:       Listening on host 127.0.0.1, port 4822
guacd[626]: INFO:       Creating new client for protocol "rdp"
guacd[626]: INFO:       Connection ID is "$51851f68-c2b4-41b7-a254-75a45ce5e554"
guacd[71005]: DEBUG:    Processing instruction: size
guacd[71005]: DEBUG:    Processing instruction: audio
guacd[71005]: DEBUG:    Processing instruction: video
guacd[71005]: DEBUG:    Processing instruction: image
guacd[71005]: DEBUG:    Processing instruction: timezone
guacd[71005]: DEBUG:    Parameter "console" omitted. Using default value of 0. guacd[71005]: DEBUG:    Parameter "console-audio" omitted. Using default value of 0. guacd[71005]: DEBUG:    Parameter "disable-auth" omitted. Using default value of 0. guacd[71005]: INFO:     No security mode specified. Defaulting to security mode negotiation with server.
guacd[71005]: DEBUG:    User resolution is 1920x937 at 96 DPI
guacd[71005]: DEBUG:    Parameter "dpi" omitted. Using default value of 96.
guacd[71005]: DEBUG:    Using resolution of 1920x937 at 96 DPI
guacd[71005]: DEBUG:    Parameter "read-only" omitted. Using default value of 0. guacd[71005]: DEBUG:    Parameter "client-name" omitted. Using default value of "Guacamole RDP". guacd[71005]: DEBUG:    Parameter "enable-wallpaper" omitted. Using default value of 0. guacd[71005]: DEBUG:    Parameter "enable-theming" omitted. Using default value of 0. guacd[71005]: DEBUG:    Parameter "enable-font-smoothing" omitted. Using default value of 0. guacd[71005]: DEBUG:    Parameter "enable-full-window-drag" omitted. Using default value of 0. guacd[71005]: DEBUG:    Parameter "enable-desktop-composition" omitted. Using default value of 0. guacd[71005]: DEBUG:    Parameter "enable-menu-animations" omitted. Using default value of 0. guacd[71005]: DEBUG:    Parameter "disable-bitmap-caching" omitted. Using default value of 0. guacd[71005]: DEBUG:    Parameter "disable-offscreen-caching" omitted. Using default value of 0. guacd[71005]: DEBUG:    Parameter "disable-glyph-caching" omitted. Using default value of 0. guacd[71005]: DEBUG:    Parameter "color-depth" omitted. Using default value of 16. guacd[71005]: DEBUG:    Parameter "enable-printing" omitted. Using default value of 0. guacd[71005]: DEBUG:    Parameter "printer-name" omitted. Using default value of "Guacamole Printer". guacd[71005]: DEBUG:    Parameter "enable-drive" omitted. Using default value of 0. guacd[71005]: DEBUG:    Parameter "drive-name" omitted. Using default value of "Guacamole Filesystem". guacd[71005]: DEBUG:    Parameter "drive-path" omitted. Using default value of "". guacd[71005]: DEBUG:    Parameter "create-drive-path" omitted. Using default value of 0. guacd[71005]: DEBUG:    Parameter "disable-download" omitted. Using default value of 0. guacd[71005]: DEBUG:    Parameter "disable-upload" omitted. Using default value of 0. guacd[71005]: DEBUG:    Parameter "timezone" omitted. Using default value of "America/Edmonton". guacd[71005]: DEBUG:    Parameter "enable-sftp" omitted. Using default value of 0. guacd[71005]: DEBUG:    Parameter "sftp-hostname" omitted. Using default value of "192.168.124.101". guacd[71005]: DEBUG:    Parameter "sftp-port" omitted. Using default value of "22". guacd[71005]: DEBUG:    Parameter "sftp-username" omitted. Using default value of "steve". guacd[71005]: DEBUG:    Parameter "sftp-password" omitted. Using default value of "". guacd[71005]: DEBUG:    Parameter "sftp-passphrase" omitted. Using default value of "". guacd[71005]: DEBUG:    Parameter "sftp-root-directory" omitted. Using default value of "/". guacd[71005]: DEBUG:    Parameter "sftp-server-alive-interval" omitted. Using default value of 0. guacd[71005]: DEBUG:    Parameter "sftp-disable-download" omitted. Using default value of 0. guacd[71005]: DEBUG:    Parameter "sftp-disable-upload" omitted. Using default value of 0. guacd[71005]: DEBUG:    Parameter "recording-name" omitted. Using default value of "recording". guacd[71005]: DEBUG:    Parameter "recording-exclude-output" omitted. Using default value of 0. guacd[71005]: DEBUG:    Parameter "recording-exclude-mouse" omitted. Using default value of 0. guacd[71005]: DEBUG:    Parameter "recording-include-keys" omitted. Using default value of 0. guacd[71005]: DEBUG:    Parameter "create-recording-path" omitted. Using default value of 0.
guacd[71005]: INFO:     Resize method: none
guacd[71005]: DEBUG:    Parameter "enable-audio-input" omitted. Using default value of 0. guacd[71005]: DEBUG:    Parameter "gateway-port" omitted. Using default value of 443. guacd[71005]: DEBUG:    Parameter "disable-copy" omitted. Using default value of 0. guacd[71005]: DEBUG:    Parameter "disable-paste" omitted. Using default value of 0. guacd[71005]: DEBUG:    Parameter "wol-send-packet" omitted. Using default value of 0. guacd[71005]: INFO:     User "@922fd4ca-e877-4c72-9747-552be84fb27e" joined connection "$51851f68-c2b4-41b7-a254-75a45ce5e554" (1 users now present)
guacd[71005]: DEBUG:    Client is using protocol version "VERSION_1_1_0"
guacd[71005]: INFO:     Loading keymap "base"
guacd[71005]: INFO:     Loading keymap "en-us-qwerty"
guacd[71005]: DEBUG:    freerdp_connect:freerdp_set_last_error_ex resetting error state guacd[71005]: DEBUG:    Support for CLIPRDR (clipboard redirection) registered. Awaiting channel connection.
guacd[71005]: DEBUG:    Local framebuffer format PIXEL_FORMAT_BGRX32
guacd[71005]: DEBUG:    Remote framebuffer format PIXEL_FORMAT_RGB16
guacd[71005]: DEBUG:    primitives autodetect, using generic
guacd[71005]: DEBUG: freerdp_tcp_is_hostname_resolvable:freerdp_set_last_error_ex resetting error state guacd[71005]: DEBUG: freerdp_tcp_connect:freerdp_set_last_error_ex resetting error state
guacd[71005]: DEBUG:    CLIPRDR (clipboard redirection) channel connected.
guacd[71005]: DEBUG:    Clipboard data received. Reporting availability of clipboard data to RDP server.

** Everything works now, until I click on the "Start" Menu **
guacd[71005]: DEBUG:    [0x18] FastGlyph - update_read_dstblt_order() failed
guacd[71005]: DEBUG:    order flags 05 failed
guacd[71005]: DEBUG:    Fastpath update Orders [0] failed, status 0
guacd[71005]: DEBUG:    fastpath_recv_update() - -1
guacd[71005]: DEBUG:    fastpath_recv_update_data() fail
guacd[71005]: DEBUG:    transport_check_fds: transport->ReceiveCallback() - -3
guacd[71005]: DEBUG:    freerdp_check_fds() failed - 0
guacd[71005]: ERROR:    Connection closed.
guacd[71005]: INFO:     User "@922fd4ca-e877-4c72-9747-552be84fb27e" disconnected (0 users remain) guacd[71005]: INFO:     Last user of connection "$51851f68-c2b4-41b7-a254-75a45ce5e554" disconnected
guacd[71005]: DEBUG:    Requesting termination of client...
guacd[71005]: INFO:     Internal RDP client disconnected
guacd[71005]: DEBUG:    Client terminated successfully.
guacd[626]: INFO:       Connection "$51851f68-c2b4-41b7-a254-75a45ce5e554" removed.

The xfreerdp version that works:
desktop$ xfreerdp /buildconfig
This is FreeRDP version 3.0.0-dev (n/a)
Build configuration: BUILD_TESTING=ON BUILTIN_CHANNELS=ON HAVE_AIO_H= HAVE_EXECINFO_H=1 HAVE_FCNTL_H=1 HAVE_INTTYPES_H=1 HAVE_MATH_C99_LONG_DOUBLE=1 HAVE_POLL_H=1 HAVE_PTHREAD_MUTEX_TIMEDLOCK=ON HAVE_PTHREAD_MUTEX_TIMEDLOCK_LIBS= HAVE_PTHREAD_MUTEX_TIMEDLOCK_SYMBOL=1 HAVE_SYSLOG_H=1 HAVE_SYS_EVENTFD_H= HAVE_SYS_FILIO_H=1 HAVE_SYS_MODEM_H= HAVE_SYS_SELECT_H=1 HAVE_SYS_SOCKIO_H=1 HAVE_SYS_STRTIO_H= HAVE_SYS_TIMERFD_H= HAVE_TM_GMTOFF=1 HAVE_UNISTD_H=1 HAVE_XI_TOUCH_CLASS=1 WITH_ALSA=OFF WITH_CAIRO=OFF WITH_CCACHE=ON WITH_CHANNELS=ON WITH_CLANG_FORMAT=ON WITH_CLIENT=ON WITH_CLIENT_AVAILABLE=1 WITH_CLIENT_CHANNELS=ON WITH_CLIENT_CHANNELS_AVAILABLE=1 WITH_CLIENT_COMMON=ON WITH_CLIENT_INTERFACE=OFF WITH_CUPS=ON WITH_DEBUG_ALL=OFF WITH_DEBUG_CAPABILITIES=OFF WITH_DEBUG_CERTIFICATE=OFF WITH_DEBUG_CHANNELS=OFF WITH_DEBUG_CLIPRDR=OFF WITH_DEBUG_DVC=OFF WITH_DEBUG_KBD=OFF WITH_DEBUG_LICENSE=OFF WITH_DEBUG_MUTEX=OFF WITH_DEBUG_NEGO=OFF WITH_DEBUG_NLA=OFF WITH_DEBUG_NTLM=OFF WITH_DEBUG_RAIL=OFF WITH_DEBUG_RDP=OFF WITH_DEBUG_RDPDR=OFF WITH_DEBUG_RDPEI=OFF WITH_DEBUG_RDPGFX=OFF WITH_DEBUG_REDIR=OFF WITH_DEBUG_RFX=OFF WITH_DEBUG_RINGBUFFER=OFF WITH_DEBUG_SCARD=OFF WITH_DEBUG_SND=OFF WITH_DEBUG_SVC=OFF WITH_DEBUG_SYMBOLS=OFF WITH_DEBUG_THREADS=OFF WITH_DEBUG_TIMEZONE=OFF WITH_DEBUG_TRANSPORT=OFF WITH_DEBUG_TSG=OFF WITH_DEBUG_TSMF=OFF WITH_DEBUG_TSMF=OFF WITH_DEBUG_TSMF_AVAILABLE=0 WITH_DEBUG_WND=OFF WITH_DEBUG_X11=OFF WITH_DEBUG_X11_CLIPRDR=OFF WITH_DEBUG_X11_LOCAL_MOVESIZE=OFF WITH_DEBUG_XV=OFF WITH_DIRECTFB=OFF WITH_DSP_EXPERIMENTAL=OFF WITH_DSP_FFMPEG=OFF WITH_FAAC=OFF WITH_FAAD2=OFF WITH_FFMPEG=TRUE WITH_FFMPEG=TRUE WITH_GFX_H264=ON WITH_GPROF=OFF WITH_GSM=OFF WITH_GSSAPI=OFF WITH_GSTREAMER_0_10=OFF WITH_GSTREAMER_1_0=OFF WITH_ICU=OFF WITH_IPP=OFF WITH_JPEG=OFF WITH_LAME=OFF WITH_LIBRARY_VERSIONING=ON WITH_LIBSYSTEMD=OFF WITH_MACAUDIO=OFF WITH_MACAUDIO=OFF WITH_MACAUDIO_AVAILABLE=0 WITH_MANPAGES=ON WITH_MANPAGES=ON WITH_MBEDTLS=OFF WITH_OPENCL=OFF WITH_OPENH264=OFF WITH_OPENSLES=OFF WITH_OPENSSL=ON WITH_OSS=OFF WITH_PCSC=ON WITH_PROFILER=OFF WITH_PULSE=OFF WITH_SAMPLE=OFF WITH_SANITIZE_ADDRESS=OFF WITH_SANITIZE_ADDRESS_AVAILABLE=1 WITH_SANITIZE_MEMORY=OFF WITH_SANITIZE_MEMORY_AVAILABLE=1 WITH_SANITIZE_THREAD=OFF WITH_SANITIZE_THREAD_AVAILABLE=1 WITH_SERVER=OFF WITH_SERVER_INTERFACE=ON WITH_SMARTCARD_INSPECT=OFF WITH_SOXR=OFF WITH_SSE2=OFF WITH_SWSCALE=OFF WITH_THIRD_PARTY=OFF WITH_VAAPI=OFF WITH_VALGRIND_MEMCHECK=OFF WITH_VALGRIND_MEMCHECK_AVAILABLE=1 WITH_WAYLAND=OFF WITH_WINPR_TOOLS=ON WITH_X11=ON WITH_X264=OFF WITH_XCURSOR=ON WITH_XEXT=ON WITH_XFIXES=ON WITH_XI=ON WITH_XINERAMA=ON WITH_XKBFILE=ON WITH_XRANDR=ON WITH_XRENDER=ON WITH_XSHM=ON WITH_XV=ON WITH_ZLIB=ON
Build type:          Release
CFLAGS:              -O2 -pipe -g -I/usr/X11R6/include -I/usr/local/include -Wno-unused-parameter -Wno-unused-macros -Wno-padded -Wno-c11-extensions -Wno-gnu -Wno-unused-command-line-argument -Wno-deprecated-declarations -DWINPR_DLL
Compiler:            Clang, 8.0.1

Thanks,
Steve Williams


Reply via email to