Initial commit (sort of)
[matches/swarm.git] / src / main.c
1 #include <stdlib.h>
2 #include <stdio.h>
3
4 #include "options.h"
5 #include "master.h"
6 #include "slave.h"
7 #include "daemon.h"
8 #include <signal.h>
9
10
11 Options options;
12
13 void Cleanup();
14
15 void Signal_handler(int signal);
16
17
18 int main(int argc, char ** argv)
19 {
20         atexit(Cleanup);
21         Initialise(argc, argv, &options);
22
23         if (signal(SIGTERM, Signal_handler) == SIG_ERR)
24                 error("main", "Setting signal handler");
25         if (signal(SIGINT, Signal_handler) == SIG_ERR)
26                 error("main", "Setting signal handler");
27         if (signal(SIGHUP, Signal_handler) == SIG_ERR)
28                 error("main", "Setting signal handler");
29         if (signal(SIGPIPE, Signal_handler) == SIG_ERR)
30                 error("main", "Setting signal handler");
31         //if (signal(SIGSEGV, Signal_handler) == SIG_ERR)
32         //      error("main", "Setting signal handler");
33
34         if (options.master_addr == NULL)
35         {
36                 if (options.daemon_wrapper)
37                         Daemon_wrapper(&options);
38                 else
39                         Master_main(&options);
40         }
41         else
42                 Slave_main(&options);
43
44         exit(EXIT_SUCCESS);
45         return 0;       
46 }
47
48 void Signal_handler(int sig)
49 {
50         
51         signal(sig, SIG_IGN);
52         signal(SIGCHLD, SIG_IGN);
53         log_print(2, "Signal_handler", "Got signal %d; exiting", sig);
54         exit(EXIT_SUCCESS);
55 }
56
57
58 void Cleanup()
59 {
60
61 }

UCC git Repository :: git.ucc.asn.au