|
FreeRDP
|
Dynamic virtual channel hooks of the client side tunnels. More...
#include <multitransport.h>
Data Fields | |
| WINPR_ATTR_NODISCARD BOOL(* | TunnelDataReceived )(void *custom, UINT32 tunnelType, wStream *s) |
| WINPR_ATTR_NODISCARD BOOL(* | TunnelStateChanged )(void *custom, UINT32 tunnelType, FreeRDP_MultitransportTunnelState state) |
| BOOL | DataOnTunnelThread |
Dynamic virtual channel hooks of the client side tunnels.
Tunnel types are the TUNNELTYPE_ values of [MS-RDPEDYC]. Both callbacks run on the thread that runs freerdp_check_event_handles(), except TunnelDataReceived with DataOnTunnelThread set.
Data that arrived on a tunnel has been acknowledged to the server already, so it cannot be dropped without corrupting the channel stream. A callback that fails returns FALSE, which ends the connection like a broken main transport.
Definition at line 52 of file include/freerdp/multitransport.h.
| BOOL FreeRDP_MultitransportDvcCallbacks::DataOnTunnelThread |
TRUE: once TunnelStateChanged has reported the tunnel ready, TunnelDataReceived runs on the tunnel's own thread, which saves the way through the main loop. It must then only pass the stream on to the thread that reads the channels, without blocking: the tunnel waits for it.
Definition at line 66 of file include/freerdp/multitransport.h.
| WINPR_ATTR_NODISCARD BOOL(* FreeRDP_MultitransportDvcCallbacks::TunnelDataReceived) (void *custom, UINT32 tunnelType, wStream *s) |
One dynamic virtual channel PDU arrived on a tunnel. The callback owns s, at position 0 with its length sealed, and releases it with Stream_Release(), also when it fails.
Definition at line 57 of file include/freerdp/multitransport.h.
| WINPR_ATTR_NODISCARD BOOL(* FreeRDP_MultitransportDvcCallbacks::TunnelStateChanged) (void *custom, UINT32 tunnelType, FreeRDP_MultitransportTunnelState state) |
A tunnel became ready, or went away.
Definition at line 60 of file include/freerdp/multitransport.h.