FreeRDP
Loading...
Searching...
No Matches
rdpudp.h
1
18#ifndef FREERDP_LIB_CORE_RDPUDP_H
19#define FREERDP_LIB_CORE_RDPUDP_H
20
21#include <winpr/wtypes.h>
22#include <winpr/winsock.h>
23#include <winpr/wlog.h>
24
25#include <freerdp/api.h>
26
39typedef struct rdp_udp rdpUdp;
40
41typedef enum
42{
43 RDPUDP_STATE_CLOSED,
44 RDPUDP_STATE_SYN_SENT,
45 RDPUDP_STATE_ESTABLISHED,
46 RDPUDP_STATE_FAILED
47} RDPUDP_STATE;
48
49#define RDPUDP_PROTOCOL_VERSION_1 0x0001
50#define RDPUDP_PROTOCOL_VERSION_2 0x0002
51#define RDPUDP_PROTOCOL_VERSION_3 0x0101
52
54typedef BOOL (*rdpUdpReceiveFn)(void* custom, const BYTE* data, size_t length);
55
56FREERDP_LOCAL void rdpudp_free(rdpUdp* udp);
57
59WINPR_ATTR_MALLOC(rdpudp_free, 1)
60WINPR_ATTR_NODISCARD
61FREERDP_LOCAL rdpUdp* rdpudp_new(wLog* log, const BYTE* cookieHash, rdpUdpReceiveFn receive,
62 void* custom);
63
65WINPR_ATTR_NODISCARD
66FREERDP_LOCAL BOOL rdpudp_connect(rdpUdp* udp, const struct sockaddr* addr, size_t addrlen);
67
68WINPR_ATTR_NODISCARD
69FREERDP_LOCAL SOCKET rdpudp_get_socket(const rdpUdp* udp);
70
71WINPR_ATTR_NODISCARD
72FREERDP_LOCAL RDPUDP_STATE rdpudp_get_state(const rdpUdp* udp);
73
74WINPR_ATTR_NODISCARD
75FREERDP_LOCAL UINT16 rdpudp_get_version(const rdpUdp* udp);
76
78WINPR_ATTR_NODISCARD
79FREERDP_LOCAL size_t rdpudp_get_max_payload(const rdpUdp* udp);
80
82WINPR_ATTR_NODISCARD
83FREERDP_LOCAL UINT32 rdpudp_get_timeout(const rdpUdp* udp);
84
87WINPR_ATTR_NODISCARD
88FREERDP_LOCAL BOOL rdpudp_check(rdpUdp* udp);
89
91WINPR_ATTR_NODISCARD
92FREERDP_LOCAL BOOL rdpudp_send(rdpUdp* udp, const BYTE* data, size_t length);
93
94#endif /* FREERDP_LIB_CORE_RDPUDP_H */