5 Author: Pekka Riikonen <priikone@poseidon.pspt.fi>
7 Copyright (C) 1997 - 2000 Pekka Riikonen
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2 of the License, or
12 (at your option) any later version.
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
21 * Created: Wed Mar 19 00:17:12 1997
23 * This is the main program for the SILC daemon. This parses command
24 * line arguments and creates the server object.
29 * Revision 1.1.1.1 2000/06/27 11:36:56 priikone
30 * Importet from internal CVS/Added Log headers.
35 #include "serverincludes.h"
36 #include "server_internal.h"
39 /* Long command line options */
40 static struct option long_opts[] =
42 { "config-file", 1, NULL, 'f' },
43 { "generate-config-file", 0, NULL, 'c' },
44 { "help", 0, NULL, 'h' },
45 { "version", 0, NULL,'V' },
49 /* Prints out the usage of silc client */
53 printf("Usage: silcd [options]\n");
55 printf(" -f --config-file=FILE Alternate configuration file\n");
56 printf(" -c --generate-config-file Generate example configuration "
58 printf(" -h --help Display this message\n");
59 printf(" -V --version Display version\n");
63 int main(int argc, char **argv)
66 int opt, option_index;
67 char *config_file = NULL;
70 /* Parse command line arguments */
72 while ((opt = getopt_long(argc, argv, "cf:hV",
73 long_opts, &option_index)) != EOF) {
80 printf("SILCd Secure Internet Live Conferencing daemon, "
81 "version %s\n", silc_version);
82 printf("(c) 1997 - 2000 Pekka Riikonen "
83 "<priikone@poseidon.pspt.fi>\n");
87 /* Print out example configuration file */
88 silc_config_server_print();
92 config_file = strdup(optarg);
101 /* Default configuration file */
103 config_file = strdup(SILC_SERVER_CONFIG_FILE);
105 /* Create SILC Server object */
106 ret = silc_server_alloc(&silcd);
110 /* Read configuration files */
111 silcd->config = silc_config_server_alloc(config_file);
112 if (silcd->config == NULL)
115 /* Initialize the server */
116 ret = silc_server_init(silcd);
120 /* Run the server. When this returns the server has been stopped
122 silc_server_run(silcd);
124 /* Stop the server. This probably has been done already but it
125 doesn't hurt to do it here again. */
126 silc_server_stop(silcd);
127 silc_server_free(silcd);