20#ifndef FREERDP_LIB_CORE_GATEWAY_RDG_H
21#define FREERDP_LIB_CORE_GATEWAY_RDG_H
23#include <winpr/wtypes.h>
24#include <winpr/stream.h>
25#include <winpr/winpr.h>
27#include <freerdp/api.h>
28#include <freerdp/types.h>
31#include <openssl/ssl.h>
33typedef struct rdp_rdg rdpRdg;
35FREERDP_LOCAL
void rdg_free(rdpRdg* rdg);
37WINPR_ATTR_MALLOC(rdg_free, 1)
39FREERDP_LOCAL rdpRdg* rdg_new(rdpContext* context);
42FREERDP_LOCAL BIO* rdg_get_front_bio_and_take_ownership(rdpRdg* rdg);
45FREERDP_LOCAL BOOL rdg_connect(rdpRdg* rdg, DWORD timeout, BOOL* rpcFallback);
48FREERDP_LOCAL DWORD rdg_get_event_handles(rdpRdg* rdg, HANDLE* events, DWORD count);