source: ogServer-Git/src/main.c @ ff71a2a

Last change on this file since ff71a2a was ca545d3, checked in by OpenGnSys Support Team <soporte-og@…>, 4 years ago

#998 disable incremental image API

This API is not supported by ogClient yet and it uses the obsolete socket hydra API.

  • Property mode set to 100644
File size: 1.9 KB
RevLine 
[48de515]1/*
2 * Copyright (C) 2020 Soleta Networks <info@soleta.eu>
3 *
4 * This program is free software: you can redistribute it and/or modify it under
5 * the terms of the GNU Affero General Public License as published by the
6 * Free Software Foundation, version 3.
7 */
8
9#include "ogAdmServer.h"
10#include "dbi.h"
11#include "utils.h"
12#include "list.h"
13#include "rest.h"
14#include "client.h"
15#include "json.h"
16#include "schedule.h"
17#include "core.h"
[866b6c5]18#include "cfg.h"
[48de515]19#include <syslog.h>
20
[96090fd]21#define OG_SERVER_CFG_JSON      "/opt/opengnsys/cfg/ogserver.json"
[866b6c5]22
[48de515]23int main(int argc, char *argv[])
24{
25        struct ev_io ev_io_server_rest, ev_io_agent_rest;
[866b6c5]26        struct og_server_cfg cfg = {};
[48de515]27
28        og_loop = ev_default_loop(0);
29
30        if (signal(SIGPIPE, SIG_IGN) == SIG_ERR)
31                exit(EXIT_FAILURE);
32
[1a406b2]33        openlog("ogserver", LOG_PID, LOG_DAEMON);
[48de515]34
35        if (!validacionParametros(argc, argv, 1)) // Valida parámetros de ejecución
36                exit(EXIT_FAILURE);
37
[96090fd]38        if (parse_json_config(OG_SERVER_CFG_JSON, &cfg) < 0) {
39                syslog(LOG_INFO, "Falling back to legacy configuration file at %s\n",
40                       szPathFileCfg);
41                if (!tomaConfiguracion(szPathFileCfg))
[866b6c5]42                        exit(EXIT_FAILURE);
[96090fd]43        } else {
[866b6c5]44                from_json_to_legacy(&cfg);
[48de515]45        }
46
47        socket_rest = og_socket_server_init("8888");
[f6f1f18]48        if (socket_rest < 0) {
49                syslog(LOG_ERR, "Cannot open REST API server socket\n");
[48de515]50                exit(EXIT_FAILURE);
[f6f1f18]51        }
[48de515]52
53        ev_io_init(&ev_io_server_rest, og_server_accept_cb, socket_rest, EV_READ);
54        ev_io_start(og_loop, &ev_io_server_rest);
55
56        socket_agent_rest = og_socket_server_init("8889");
[f6f1f18]57        if (socket_agent_rest < 0) {
58                syslog(LOG_ERR, "Cannot open ogClient server socket\n");
[48de515]59                exit(EXIT_FAILURE);
[f6f1f18]60        }
[48de515]61
62        ev_io_init(&ev_io_agent_rest, og_server_accept_cb, socket_agent_rest, EV_READ);
63        ev_io_start(og_loop, &ev_io_agent_rest);
64
[f6f1f18]65        if (og_dbi_schedule_get() < 0) {
66                syslog(LOG_ERR, "Cannot connect to database\n");
[48de515]67                exit(EXIT_FAILURE);
[f6f1f18]68        }
[48de515]69
70        og_schedule_next(og_loop);
71
72        syslog(LOG_INFO, "Waiting for connections\n");
73
74        while (1)
75                ev_loop(og_loop, 0);
76
77        exit(EXIT_SUCCESS);
78}
Note: See TracBrowser for help on using the repository browser.