#include <stdio.h>
#include <uaapplication/application.h>
#include <uaserver/init.h>
#include <trace/trace.h>
#include <appconfig.h>
#include <uaprovider/server/uaprovider_server.h>
#include <uaprotocol/uaseconv/sechan.h>
#include <platform/hostname.h>
#include <platform/shutdown.h>
#include <crashhandler/crashhandler.h>
#include <memory/memory_layout.h>
#include "provider_minimal.h"
#include "args.h"
#ifdef HAVE_PKI
# include <crypto/crypto.h>
# include "cert_data.c"
#endif
#ifdef HAVE_PKI
#endif
unsigned int g_shutdown_time = 5;
{-1, uaprovider_server_init},
{-1, provider_minimal_init}
};
int server_main_clear(void)
{
unsigned int sec;
for (sec = g_shutdown_time; sec > 2; --sec) {
uaapplication_shutdown(&g_app, 1000);
}
for (; sec > 0; --sec) {
uaapplication_shutdown(&g_app, 1000);
}
#ifdef HAVE_PKI
#endif
return 0;
}
int server_main_init(int trace_level, int facility_mask)
{
int ret;
unsigned int i;
static char fqdn[64];
g_appconfig.dns = fqdn;
#if defined(HAVE_PKI) && !defined(SUPPORT_FILE_IO)
ua_bytestring_attach(&g_sechan_certs[0].own_cert, (
char*) g_cert1024_der, (
int)
sizeof(g_cert1024_der));
if (ret != 0) {
goto out_pki;
}
#endif
}
if (ret < 0) goto out_server_init;
if (ret < 0) goto out_server_start;
return 0;
out_server_start:
out_server_init:
#if defined(HAVE_PKI) && !defined(SUPPORT_FILE_IO)
out_pki:
#endif
return ret;
}
int main(int argc, char *argv[])
{
int ret;
unsigned int i;
struct commandline_args args;
#ifdef WITH_COMMANDLINE_ARGS
parse_commandline(argc, argv, &args);
g_appconfig.ipc.
ipc_size = args.memory * 1024;
#else
UA_UNUSED(argc);
UA_UNUSED(argv);
#endif
ret = server_main_init(args.trace_level, args.facility_mask);
if (ret != 0) {
printf("server_main_init() failed with error 0x%08x\n", ret);
exit(EXIT_FAILURE);
}
printf("Server is up and running.\n");
}
fflush(stdout);
}
server_main_clear();
return 0;
}