cscg24-guacamole

CSCG 2024 Challenge 'Guacamole Mashup'
git clone https://git.sinitax.com/sinitax/cscg24-guacamole
Log | Files | Refs | sfeed.txt

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 */