FreeRDP
include/freerdp/listener.h
1 
20 #ifndef FREERDP_LISTENER_H
21 #define FREERDP_LISTENER_H
22 
23 #include <freerdp/api.h>
24 #include <freerdp/types.h>
25 #include <freerdp/settings.h>
26 #include <freerdp/peer.h>
27 
28 #ifdef __cplusplus
29 extern "C"
30 {
31 #endif
32 
33  typedef struct rdp_freerdp_listener freerdp_listener;
34 
35  typedef BOOL (*psListenerOpen)(freerdp_listener* instance, const char* bind_address,
36  UINT16 port);
37  typedef BOOL (*psListenerOpenLocal)(freerdp_listener* instance, const char* path);
38  typedef BOOL (*psListenerOpenFromSocket)(freerdp_listener* instance, int fd);
39 #if defined(WITH_FREERDP_DEPRECATED)
40  WINPR_DEPRECATED_VAR("Use psListenerGetEventHandles instead",
41  typedef BOOL (*psListenerGetFileDescriptor)(freerdp_listener* instance,
42  void** rfds, int* rcount);)
43 #endif
44  typedef DWORD (*psListenerGetEventHandles)(freerdp_listener* instance, HANDLE* events,
45  DWORD nCount);
46  typedef BOOL (*psListenerCheckFileDescriptor)(freerdp_listener* instance);
47  typedef void (*psListenerClose)(freerdp_listener* instance);
48  typedef BOOL (*psPeerAccepted)(freerdp_listener* instance, freerdp_peer* client);
49 
51  {
52  void* info;
53  void* listener;
54  void* param1;
55  void* param2;
56  void* param3;
57  void* param4;
58 
59  psListenerOpen Open;
60  psListenerOpenLocal OpenLocal;
61 #if defined(WITH_FREERDP_DEPRECATED)
62  WINPR_DEPRECATED_VAR("Use rdp_freerdp_listener::GetEventHandles instead",
63  psListenerGetFileDescriptor GetFileDescriptor;)
64 #else
65  void* reserved;
66 #endif
67  psListenerGetEventHandles GetEventHandles;
68  psListenerCheckFileDescriptor CheckFileDescriptor;
69  psListenerClose Close;
70 
71  psPeerAccepted PeerAccepted;
72  psListenerOpenFromSocket OpenFromSocket;
73 
74  psListenerCheckFileDescriptor CheckPeerAcceptRestrictions;
75  };
76 
77  FREERDP_API void freerdp_listener_free(freerdp_listener* instance);
78 
79  WINPR_ATTR_MALLOC(freerdp_listener_free, 1)
80  FREERDP_API freerdp_listener* freerdp_listener_new(void);
81 
82 #ifdef __cplusplus
83 }
84 #endif
85 
86 #endif /* FREERDP_LISTENER_H */