\r
context->s = Stream_New(NULL, 0xFFFF);\r
\r
- //#ifdef WITH_SERVER_CHANNELS\r
context->vcm = WTSOpenServerA((LPSTR) client->context);\r
- //#endif\r
\r
mf_info_peer_register(context->info, context);\r
\r
return 0;\r
}\r
\r
-\r
/* Called after a peer disconnects */\r
void mf_peer_context_free(freerdp_peer* client, mfPeerContext* context)\r
{\r
rdpsnd_server_context_free(context->rdpsnd);\r
//#endif\r
\r
- //#ifdef WITH_SERVER_CHANNELS\r
WTSCloseServer(context->vcm);\r
- //#endif\r
}\r
}\r
\r
}\r
}\r
\r
-\r
BOOL mf_peer_post_connect(freerdp_peer* client)\r
{\r
mfPeerContext* context = (mfPeerContext*) client->context;\r
return TRUE;\r
}\r
\r
-\r
BOOL mf_peer_activate(freerdp_peer* client)\r
{\r
mfPeerContext* context = (mfPeerContext*) client->context;\r
return TRUE;\r
}\r
\r
-/*BOOL wf_peer_logon(freerdp_peer* client, SEC_WINNT_AUTH_IDENTITY* identity, BOOL automatic)\r
- {\r
- fprintf(stderr, "PeerLogon\n");\r
- \r
- if (automatic)\r
- {\r
- _tprintf(_T("Logon: User:%s Domain:%s Password:%s\n"),\r
- identity->User, identity->Domain, identity->Password);\r
- }\r
- \r
- \r
- wfreerdp_server_peer_callback_event(((rdpContext*) client->context)->peer->pId, WF_SRV_CALLBACK_EVENT_AUTH);\r
- return TRUE;\r
- }*/\r
-\r
void mf_peer_synchronize_event(rdpInput* input, UINT32 flags)\r
{\r
fprintf(stderr, "Client sent a synchronize event (flags:0x%08X)\n", flags);\r
pthread_detach(th);\r
}\r
\r
-/*DWORD WINAPI wf_peer_socket_listener(LPVOID lpParam)\r
- {\r
- int i, fds;\r
- int rcount;\r
- int max_fds;\r
- void* rfds[32];\r
- fd_set rfds_set;\r
- wfPeerContext* context;\r
- freerdp_peer* client = (freerdp_peer*) lpParam;\r
- \r
- ZeroMemory(rfds, sizeof(rfds));\r
- context = (wfPeerContext*) client->context;\r
- \r
- fprintf(stderr, "PeerSocketListener\n");\r
- \r
- while (1)\r
- {\r
- rcount = 0;\r
- \r
- if (client->GetFileDescriptor(client, rfds, &rcount) != TRUE)\r
- {\r
- fprintf(stderr, "Failed to get peer file descriptor\n");\r
- break;\r
- }\r
- \r
- max_fds = 0;\r
- FD_ZERO(&rfds_set);\r
- \r
- for (i = 0; i < rcount; i++)\r
- {\r
- fds = (int)(long)(rfds[i]);\r
- \r
- if (fds > max_fds)\r
- max_fds = fds;\r
- \r
- FD_SET(fds, &rfds_set);\r
- }\r
- \r
- if (max_fds == 0)\r
- break;\r
- \r
- select(max_fds + 1, &rfds_set, NULL, NULL, NULL);\r
- \r
- SetEvent(context->socketEvent);\r
- WaitForSingleObject(context->socketSemaphore, INFINITE);\r
- \r
- if (context->socketClose)\r
- break;\r
- }\r
- \r
- fprintf(stderr, "Exiting Peer Socket Listener Thread\n");\r
- \r
- return 0;\r
- }\r
- \r
- void wf_peer_read_settings(freerdp_peer* client)\r
- {\r
- if (!wf_settings_read_string_ascii(HKEY_LOCAL_MACHINE, _T("Software\\FreeRDP\\Server"), _T("CertificateFile"), &(client->settings->CertificateFile)))\r
- client->settings->CertificateFile = _strdup("server.crt");\r
- \r
- if (!wf_settings_read_string_ascii(HKEY_LOCAL_MACHINE, _T("Software\\FreeRDP\\Server"), _T("PrivateKeyFile"), &(client->settings->PrivateKeyFile)))\r
- client->settings->PrivateKeyFile = _strdup("server.key");\r
- }*/\r
-\r
void* mf_peer_main_loop(void* arg)\r
{\r
int i;\r
break;\r
}\r
\r
- //#ifdef WITH_SERVER_CHANNELS\r
WTSVirtualChannelManagerGetFileDescriptor(context->vcm, rfds, &rcount);\r
- //#endif\r
\r
max_fds = 0;\r
FD_ZERO(&rfds_set);\r
fprintf(stderr, "Failed to check freerdp file descriptor\n");\r
break;\r
}\r
+ \r
if ((mf_peer_check_fds(client)) != TRUE)\r
{\r
fprintf(stderr, "Failed to check mfreerdp file descriptor\n");\r
break;\r
}\r
\r
- \r
- //#ifdef WITH_SERVER_CHANNELS\r
if (WTSVirtualChannelManagerCheckFileDescriptor(context->vcm) != TRUE)\r
+ {\r
break;\r
- //#endif\r
- \r
+ }\r
}\r
\r
fprintf(stderr, "Client %s disconnected.\n", client->local ? "(local)" : client->hostname);\r