blob: cabb5f9d64ef9b7c88775258a3bbd136a0769250 [file] [log] [blame]
Harald Weltef5a0fa32019-03-03 15:44:18 +01001#include <unistd.h>
Harald Weltece638d82019-03-17 09:36:04 +01002#include <signal.h>
Harald Weltef5a0fa32019-03-03 15:44:18 +01003
4#include <sys/eventfd.h>
5
6#include <osmocom/core/utils.h>
7#include <osmocom/core/talloc.h>
8#include <osmocom/core/application.h>
9#include <osmocom/core/select.h>
10
11#include "debug.h"
12#include "slotmap.h"
13#include "rest_api.h"
14#include "rspro_server.h"
15
16struct rspro_server *g_rps;
17void *g_tall_ctx;
18struct osmo_fd g_event_ofd;
19
Harald Weltece638d82019-03-17 09:36:04 +010020static void handle_sig_usr1(int signal)
21{
22 OSMO_ASSERT(signal == SIGUSR1);
23 talloc_report(g_tall_ctx, stderr);
24}
25
Harald Weltef5a0fa32019-03-03 15:44:18 +010026int main(int argc, char **argv)
27{
28 int rc;
29
30 g_tall_ctx = talloc_named_const(NULL, 0, "global");
31
32 osmo_init_logging2(g_tall_ctx, &log_info);
33
34 g_rps = rspro_server_create(g_tall_ctx, "0.0.0.0", 9998);
35 if (!g_rps)
36 exit(1);
37 g_rps->slotmaps = slotmap_init(g_rps);
38 if (!g_rps->slotmaps)
39 goto out_rspro;
40
41 g_rps->comp_id.type = ComponentType_remsimServer;
42 OSMO_STRLCPY_ARRAY(g_rps->comp_id.name, "fixme-name");
43 OSMO_STRLCPY_ARRAY(g_rps->comp_id.software, "remsim-server");
44 OSMO_STRLCPY_ARRAY(g_rps->comp_id.sw_version, PACKAGE_VERSION);
45 /* FIXME: other members of app_comp_id */
46
47 rc = eventfd(0, 0);
48 if (rc < 0)
49 goto out_rps;
50 osmo_fd_setup(&g_event_ofd, rc, BSC_FD_READ, event_fd_cb, g_rps, 0);
51 osmo_fd_register(&g_event_ofd);
52
Harald Weltece638d82019-03-17 09:36:04 +010053 signal(SIGUSR1, handle_sig_usr1);
54
Harald Weltef5a0fa32019-03-03 15:44:18 +010055 rc = rest_api_init(9997);
56 if (rc < 0)
57 goto out_eventfd;
58
59 while (1) {
60 osmo_select_main(0);
61 }
62
63 rest_api_fini();
64
65 exit(0);
66
67out_eventfd:
68 close(g_event_ofd.fd);
69out_rps:
70 talloc_free(g_rps->slotmaps);
71 talloc_free(g_rps);
72out_rspro:
73 rspro_server_destroy(g_rps);
74
75 exit(1);
76}