21#ifndef FREERDP_LIB_CORE_UTILS_H
22#define FREERDP_LIB_CORE_UTILS_H
24#include <winpr/winpr.h>
25#include <freerdp/freerdp.h>
27#include "../crypto/tls.h"
30#define HTTP_TUNNEL_REDIR_ENABLE_ALL 0x80000000
31#define HTTP_TUNNEL_REDIR_DISABLE_ALL 0x40000000
32#define HTTP_TUNNEL_REDIR_DISABLE_DRIVE 0x1
33#define HTTP_TUNNEL_REDIR_DISABLE_PRINTER 0x2
34#define HTTP_TUNNEL_REDIR_DISABLE_PORT 0x4
35#define HTTP_TUNNEL_REDIR_DISABLE_CLIPBOARD 0x8
36#define HTTP_TUNNEL_REDIR_DISABLE_PNP 0x10
47WINPR_ATTR_NODISCARD FREERDP_LOCAL auth_status utils_authenticate_gateway(freerdp* instance,
48 rdp_auth_reason reason);
50WINPR_ATTR_NODISCARD FREERDP_LOCAL auth_status utils_authenticate(freerdp* instance,
51 rdp_auth_reason reason,
54WINPR_ATTR_NODISCARD FREERDP_LOCAL HANDLE utils_get_abort_event(rdpRdp* rdp);
56WINPR_ATTR_NODISCARD FREERDP_LOCAL BOOL utils_abort_event_is_set(
const rdpRdp* rdp);
58WINPR_ATTR_NODISCARD FREERDP_LOCAL BOOL utils_reset_abort(rdpRdp* rdp);
60FREERDP_LOCAL BOOL utils_abort_connect(rdpRdp* rdp);
62WINPR_ATTR_NODISCARD FREERDP_LOCAL BOOL utils_sync_credentials(rdpSettings* settings,
65WINPR_ATTR_NODISCARD FREERDP_LOCAL BOOL utils_persist_credentials(rdpSettings* settings,
66 const rdpSettings* current);
68WINPR_ATTR_NODISCARD FREERDP_LOCAL BOOL utils_str_is_empty(
const char* str);
70WINPR_ATTR_NODISCARD FREERDP_LOCAL BOOL utils_str_copy(
const char* value,
char** dst);
72WINPR_ATTR_NODISCARD FREERDP_LOCAL
const char* utils_is_vsock(
const char* hostname);
74WINPR_ATTR_NODISCARD FREERDP_LOCAL BOOL utils_apply_gateway_policy(wLog* log, rdpContext* context,
78WINPR_ATTR_NODISCARD FREERDP_LOCAL
char* utils_redir_flags_to_string(UINT32 flags,
char* buffer,
81WINPR_ATTR_NODISCARD FREERDP_LOCAL BOOL utils_reload_channels(rdpContext* context);
83#if !defined(WITHOUT_FREERDP_3x_DEPRECATED)
92WINPR_ATTR_MALLOC(free, 1)
94char* freerdp_getApplicatonDetailsRegKey(WINPR_FORMAT_ARG const
char* fmt);
104WINPR_ATTR_MALLOC(free, 1)
106char* freerdp_getApplicatonDetailsCombined(
char separator);
116BOOL freerdp_areApplicationDetailsCustomized(
void);
119FREERDP_LOCAL const
char* guid2str(const GUID* guid,
char* buffer,
size_t len);
122FREERDP_LOCAL BOOL utils_is_valid_ip(const
char* ipAddress);
125FREERDP_LOCAL BOOL utils_is_valid_ipV6(const
char* ipAddress);
128FREERDP_LOCAL BOOL utils_is_valid_ipN(const
char* ipAddress,
size_t len);
131FREERDP_LOCAL BOOL utils_is_valid_ipV6N(const
char* ipAddress,
size_t len);
134FREERDP_LOCAL BOOL utils_compare_ip_strings(const
char* ipAddressA,
size_t lenA,
135 const
char* ipAddressB,
size_t lenB);
142FREERDP_LOCAL BOOL utils_set_umask(
void);
145FREERDP_LOCAL BOOL utils_tls_connect(rdpContext* context, rdpTls* tls, wLog* log,
146 const
char* hostname, UINT16 port, BOOL layerConnect,