mirror of https://github.com/FreeRDP/FreeRDP
server/shadow: split into library + executable
This commit is contained in:
parent
6afd621d4c
commit
e84e7928e3
|
@ -142,5 +142,25 @@ struct rdp_shadow_subsystem
|
||||||
RDP_SHADOW_SUBSYSTEM_COMMON();
|
RDP_SHADOW_SUBSYSTEM_COMMON();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
FREERDP_API int shadow_server_parse_command_line(rdpShadowServer* server, int argc, char** argv);
|
||||||
|
FREERDP_API int shadow_server_command_line_status_print(rdpShadowServer* server, int argc, char** argv, int status);
|
||||||
|
|
||||||
|
FREERDP_API int shadow_server_start(rdpShadowServer* server);
|
||||||
|
FREERDP_API int shadow_server_stop(rdpShadowServer* server);
|
||||||
|
|
||||||
|
FREERDP_API int shadow_server_init(rdpShadowServer* server);
|
||||||
|
FREERDP_API int shadow_server_uninit(rdpShadowServer* server);
|
||||||
|
|
||||||
|
FREERDP_API rdpShadowServer* shadow_server_new();
|
||||||
|
FREERDP_API void shadow_server_free(rdpShadowServer* server);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* FREERDP_SERVER_SHADOW_H */
|
#endif /* FREERDP_SERVER_SHADOW_H */
|
||||||
|
|
||||||
|
|
|
@ -186,9 +186,7 @@ elseif(WITH_SHADOW_MAC)
|
||||||
list(APPEND ${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_MAC_LIBS})
|
list(APPEND ${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_MAC_LIBS})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_executable(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
|
add_library(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
|
||||||
|
|
||||||
set_target_properties(${MODULE_NAME} PROPERTIES OUTPUT_NAME "freerdp-shadow")
|
|
||||||
|
|
||||||
list(APPEND ${MODULE_PREFIX}_LIBS freerdp)
|
list(APPEND ${MODULE_PREFIX}_LIBS freerdp)
|
||||||
list(APPEND ${MODULE_PREFIX}_LIBS freerdp-server)
|
list(APPEND ${MODULE_PREFIX}_LIBS freerdp-server)
|
||||||
|
@ -203,3 +201,21 @@ install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ser
|
||||||
|
|
||||||
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Server/shadow")
|
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Server/shadow")
|
||||||
|
|
||||||
|
# command-line executable
|
||||||
|
|
||||||
|
set(MODULE_NAME "freerdp-shadow-cli")
|
||||||
|
set(MODULE_PREFIX "FREERDP_SERVER_SHADOW_CLI")
|
||||||
|
|
||||||
|
set(${MODULE_PREFIX}_SRCS
|
||||||
|
shadow.c)
|
||||||
|
|
||||||
|
add_executable(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
|
||||||
|
set_target_properties(${MODULE_NAME} PROPERTIES OUTPUT_NAME "freerdp-shadow")
|
||||||
|
|
||||||
|
set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} freerdp-shadow)
|
||||||
|
|
||||||
|
target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
|
||||||
|
|
||||||
|
install(TARGETS ${MODULE_NAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT server)
|
||||||
|
|
||||||
|
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "Server/shadow")
|
||||||
|
|
|
@ -0,0 +1,86 @@
|
||||||
|
/**
|
||||||
|
* FreeRDP: A Remote Desktop Protocol Implementation
|
||||||
|
*
|
||||||
|
* Copyright 2014 Marc-Andre Moreau <marcandre.moreau@gmail.com>
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include "config.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <winpr/crt.h>
|
||||||
|
#include <winpr/ssl.h>
|
||||||
|
#include <winpr/wnd.h>
|
||||||
|
#include <winpr/path.h>
|
||||||
|
#include <winpr/cmdline.h>
|
||||||
|
#include <winpr/winsock.h>
|
||||||
|
|
||||||
|
#include <winpr/tools/makecert.h>
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
#include <openssl/applink.c>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
static BOOL g_MessagePump = TRUE;
|
||||||
|
#else
|
||||||
|
static BOOL g_MessagePump = FALSE;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <freerdp/server/shadow.h>
|
||||||
|
|
||||||
|
int main(int argc, char** argv)
|
||||||
|
{
|
||||||
|
MSG msg;
|
||||||
|
int status;
|
||||||
|
DWORD dwExitCode;
|
||||||
|
rdpShadowServer* server;
|
||||||
|
|
||||||
|
server = shadow_server_new();
|
||||||
|
|
||||||
|
if (!server)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
if (shadow_server_init(server) < 0)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
status = shadow_server_parse_command_line(server, argc, argv);
|
||||||
|
|
||||||
|
status = shadow_server_command_line_status_print(server, argc, argv, status);
|
||||||
|
|
||||||
|
if (status < 0)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
if (shadow_server_start(server) < 0)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
if (g_MessagePump)
|
||||||
|
{
|
||||||
|
while (GetMessage(&msg, 0, 0, 0))
|
||||||
|
{
|
||||||
|
TranslateMessage(&msg);
|
||||||
|
DispatchMessage(&msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
WaitForSingleObject(server->thread, INFINITE);
|
||||||
|
|
||||||
|
GetExitCodeThread(server->thread, &dwExitCode);
|
||||||
|
|
||||||
|
shadow_server_free(server);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
|
@ -27,15 +27,11 @@
|
||||||
#include <winpr/cmdline.h>
|
#include <winpr/cmdline.h>
|
||||||
#include <winpr/winsock.h>
|
#include <winpr/winsock.h>
|
||||||
|
|
||||||
#include <freerdp/version.h>
|
|
||||||
#include <freerdp/log.h>
|
#include <freerdp/log.h>
|
||||||
|
#include <freerdp/version.h>
|
||||||
|
|
||||||
#include <winpr/tools/makecert.h>
|
#include <winpr/tools/makecert.h>
|
||||||
|
|
||||||
#ifdef _WIN32
|
|
||||||
#include <openssl/applink.c>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef _WIN32
|
#ifndef _WIN32
|
||||||
#include <sys/select.h>
|
#include <sys/select.h>
|
||||||
#include <sys/signal.h>
|
#include <sys/signal.h>
|
||||||
|
@ -45,12 +41,6 @@
|
||||||
|
|
||||||
#define TAG SERVER_TAG("shadow")
|
#define TAG SERVER_TAG("shadow")
|
||||||
|
|
||||||
#ifdef _WIN32
|
|
||||||
static BOOL g_MessagePump = TRUE;
|
|
||||||
#else
|
|
||||||
static BOOL g_MessagePump = FALSE;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef WITH_SHADOW_X11
|
#ifdef WITH_SHADOW_X11
|
||||||
extern rdpShadowSubsystem* X11_ShadowCreateSubsystem(rdpShadowServer* server);
|
extern rdpShadowSubsystem* X11_ShadowCreateSubsystem(rdpShadowServer* server);
|
||||||
#endif
|
#endif
|
||||||
|
@ -648,45 +638,3 @@ void shadow_server_free(rdpShadowServer* server)
|
||||||
free(server);
|
free(server);
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char** argv)
|
|
||||||
{
|
|
||||||
MSG msg;
|
|
||||||
int status;
|
|
||||||
DWORD dwExitCode;
|
|
||||||
rdpShadowServer* server;
|
|
||||||
|
|
||||||
server = shadow_server_new();
|
|
||||||
|
|
||||||
if (!server)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
if (shadow_server_init(server) < 0)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
status = shadow_server_parse_command_line(server, argc, argv);
|
|
||||||
|
|
||||||
status = shadow_server_command_line_status_print(server, argc, argv, status);
|
|
||||||
|
|
||||||
if (status < 0)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
if (shadow_server_start(server) < 0)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
if (g_MessagePump)
|
|
||||||
{
|
|
||||||
while (GetMessage(&msg, 0, 0, 0))
|
|
||||||
{
|
|
||||||
TranslateMessage(&msg);
|
|
||||||
DispatchMessage(&msg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
WaitForSingleObject(server->thread, INFINITE);
|
|
||||||
|
|
||||||
GetExitCodeThread(server->thread, &dwExitCode);
|
|
||||||
|
|
||||||
shadow_server_free(server);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue