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.2 2000/07/05 06:14:01 priikone
30 * Global costemic changes.
32 * Revision 1.1.1.1 2000/06/27 11:36:56 priikone
33 * Imported from internal CVS/Added Log headers.
38 #include "serverincludes.h"
39 #include "server_internal.h"
42 /* Long command line options */
43 static struct option long_opts[] =
45 { "config-file", 1, NULL, 'f' },
46 { "generate-config-file", 0, NULL, 'c' },
47 { "help", 0, NULL, 'h' },
48 { "version", 0, NULL,'V' },
52 /* Prints out the usage of silc client */
56 printf("Usage: silcd [options]\n");
58 printf(" -f --config-file=FILE Alternate configuration file\n");
59 printf(" -c --generate-config-file Generate example configuration "
61 printf(" -h --help Display this message\n");
62 printf(" -V --version Display version\n");
66 int main(int argc, char **argv)
69 int opt, option_index;
70 char *config_file = NULL;
73 /* Parse command line arguments */
75 while ((opt = getopt_long(argc, argv, "cf:hV",
76 long_opts, &option_index)) != EOF) {
83 printf("SILCd Secure Internet Live Conferencing daemon, "
84 "version %s\n", silc_version);
85 printf("(c) 1997 - 2000 Pekka Riikonen "
86 "<priikone@poseidon.pspt.fi>\n");
90 /* Print out example configuration file */
91 silc_config_server_print();
95 config_file = strdup(optarg);
104 /* Default configuration file */
106 config_file = strdup(SILC_SERVER_CONFIG_FILE);
108 /* Create SILC Server object */
109 ret = silc_server_alloc(&silcd);
113 /* Read configuration files */
114 silcd->config = silc_config_server_alloc(config_file);
115 if (silcd->config == NULL)
118 /* Initialize the server */
119 ret = silc_server_init(silcd);
123 /* Run the server. When this returns the server has been stopped
125 silc_server_run(silcd);
127 /* Stop the server. This probably has been done already but it
128 doesn't hurt to do it here again. */
129 silc_server_stop(silcd);
130 silc_server_free(silcd);