int main(int argc, char* argv[]) { freerdp_listener* instance; WTSRegisterWtsApiFunctionTable(FreeRDP_InitWtsApi()); instance = freerdp_listener_new(); instance->PeerAccepted = test_peer_accepted; if (argc > 1) test_pcap_file = argv[1]; if (argc > 2 && !strcmp(argv[2], "--fast")) test_dump_rfx_realtime = FALSE; /* Open the server socket and start listening. */ freerdp_wsa_startup(); if (instance->Open(instance, NULL, 3389) && instance->OpenLocal(instance, "/tmp/tfreerdp-server.0")) { /* Entering the server main loop. In a real server the listener can be run in its own thread. */ test_server_mainloop(instance); } freerdp_wsa_cleanup(); freerdp_listener_free(instance); return 0; }
RDPListener::RDPListener(std::string uuid, int vm_id, uint16_t port, RDPServerWorker *parent, std::string auth, Glib::RefPtr<Gio::DBus::Connection> conn) : shm_buffer(nullptr), dbus_conn(conn), parent(parent), port(port), uuid(uuid), samfile(), vm_id(vm_id), listener_running(false), targetFPS(30), credential_path() { WTSRegisterWtsApiFunctionTable(FreeRDP_InitWtsApi()); shadow_subsystem_set_entry(RDPMux_ShadowSubsystemEntry); server = shadow_server_new(); if (!auth.empty()) samfile = auth; this->Authenticating(!auth.empty()); if (!server) { LOG(FATAL) << "LISTENER " << this << ": Shadow server didn't alloc properly, exiting."; } }
wfServer* wfreerdp_server_new() { wfServer* server; server = (wfServer*) malloc(sizeof(wfServer)); ZeroMemory(server, sizeof(wfServer)); freerdp_wsa_startup(); if (server) { server->port = 3389; } WTSRegisterWtsApiFunctionTable(FreeRDP_InitWtsApi()); cbEvent = NULL; return server; }
wfServer* wfreerdp_server_new() { WSADATA wsaData; wfServer* server; if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) return NULL; server = (wfServer*) calloc(1, sizeof(wfServer)); if (server) { server->port = 3389; } WTSRegisterWtsApiFunctionTable(FreeRDP_InitWtsApi()); cbEvent = NULL; return server; }
int main(int argc, char* argv[]) { WSADATA wsaData; freerdp_listener* instance; char* file; char name[MAX_PATH]; long port = 3389, i; BOOL localOnly = FALSE; errno = 0; for (i = 1; i < argc; i++) { char* arg = argv[i]; if (strncmp(arg, "--fast", 7) == 0) test_dump_rfx_realtime = FALSE; else if (strncmp(arg, "--port=", 7) == 0) { StrSep(&arg, "="); if (!arg) return -1; port = strtol(arg, NULL, 10); if ((port < 1) || (port > 0xFFFF) || (errno != 0)) return -1; } else if (strcmp(arg, "--local-only")) localOnly = TRUE; else if (strncmp(arg, "--", 2)) test_pcap_file = arg; } WTSRegisterWtsApiFunctionTable(FreeRDP_InitWtsApi()); winpr_InitializeSSL(WINPR_SSL_INIT_DEFAULT); instance = freerdp_listener_new(); if (!instance) return -1; instance->PeerAccepted = test_peer_accepted; if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) { freerdp_listener_free(instance); return -1; } /* Open the server socket and start listening. */ sprintf_s(name, sizeof(name), "tfreerdp-server.%ld", port); file = GetKnownSubPath(KNOWN_PATH_TEMP, name); if (!file) { freerdp_listener_free(instance); WSACleanup(); return -1; } if ((localOnly || instance->Open(instance, NULL, port)) && instance->OpenLocal(instance, file)) { /* Entering the server main loop. In a real server the listener can be run in its own thread. */ test_server_mainloop(instance); } free(file); freerdp_listener_free(instance); WSACleanup(); return 0; }