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