listener.h (2367B)
1/** 2 * FreeRDP: A Remote Desktop Protocol Implementation 3 * RDP Server Listener 4 * 5 * Copyright 2011 Vic Lee 6 * 7 * Licensed under the Apache License, Version 2.0 (the "License"); 8 * you may not use this file except in compliance with the License. 9 * You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, software 14 * distributed under the License is distributed on an "AS IS" BASIS, 15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 * See the License for the specific language governing permissions and 17 * limitations under the License. 18 */ 19 20#ifndef FREERDP_LISTENER_H 21#define FREERDP_LISTENER_H 22 23typedef struct rdp_freerdp_listener freerdp_listener; 24 25#include <freerdp/api.h> 26#include <freerdp/types.h> 27#include <freerdp/settings.h> 28#include <freerdp/peer.h> 29 30#ifdef __cplusplus 31extern "C" 32{ 33#endif 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 typedef BOOL (*psListenerGetFileDescriptor)(freerdp_listener* instance, void** rfds, 40 int* rcount); 41 typedef DWORD (*psListenerGetEventHandles)(freerdp_listener* instance, HANDLE* events, 42 DWORD nCount); 43 typedef BOOL (*psListenerCheckFileDescriptor)(freerdp_listener* instance); 44 typedef void (*psListenerClose)(freerdp_listener* instance); 45 typedef BOOL (*psPeerAccepted)(freerdp_listener* instance, freerdp_peer* client); 46 47 struct rdp_freerdp_listener 48 { 49 void* info; 50 void* listener; 51 void* param1; 52 void* param2; 53 void* param3; 54 void* param4; 55 56 psListenerOpen Open; 57 psListenerOpenLocal OpenLocal; 58 psListenerGetFileDescriptor GetFileDescriptor; 59 psListenerGetEventHandles GetEventHandles; 60 psListenerCheckFileDescriptor CheckFileDescriptor; 61 psListenerClose Close; 62 63 psPeerAccepted PeerAccepted; 64 psListenerOpenFromSocket OpenFromSocket; 65 }; 66 67 FREERDP_API freerdp_listener* freerdp_listener_new(void); 68 FREERDP_API void freerdp_listener_free(freerdp_listener* instance); 69 70#ifdef __cplusplus 71} 72#endif 73 74#endif /* FREERDP_LISTENER_H */