ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/gvpe/src/vped.C
(Generate patch)

Comparing gvpe/src/vped.C (file contents):
Revision 1.12 by pcg, Thu Oct 16 14:12:00 2003 UTC vs.
Revision 1.19 by pcg, Fri Jun 11 15:56:36 2004 UTC

1/* 1/*
2 vped.C -- the main file for vped 2 vped.C -- the main file for gvpe
3 Copyright (C) 1998-2002 Ivo Timmermans <ivo@o2w.nl> 3 Copyright (C) 1998-2002 Ivo Timmermans <ivo@o2w.nl>
4 2000-2002 Guus Sliepen <guus@sliepen.eu.org> 4 2000-2002 Guus Sliepen <guus@sliepen.eu.org>
5 2003 Marc Lehmann <pcg@goof.com> 5 2003-2004 Marc Lehmann <pcg@goof.com>
6 6
7 This program is free software; you can redistribute it and/or modify 7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by 8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2 of the License, or 9 the Free Software Foundation; either version 2 of the License, or
10 (at your option) any later version. 10 (at your option) any later version.
21 21
22#include "config.h" 22#include "config.h"
23 23
24#include <cstdio> 24#include <cstdio>
25#include <cstring> 25#include <cstring>
26#include <cstdlib>
27#include <clocale>
26 28
27#include <errno.h> 29#include <errno.h>
28#include <fcntl.h> 30#include <fcntl.h>
29#include <getopt.h> 31#include <getopt.h>
30#include <signal.h> 32#include <signal.h>
147*/ 149*/
148void cleanup_and_exit(int c) 150void cleanup_and_exit(int c)
149{ 151{
150 network.shutdown_all (); 152 network.shutdown_all ();
151 153
152 if (pidfilename) 154 if (conf.pidfilename)
153 remove_pid (pidfilename); 155 remove_pid (conf.pidfilename);
154 156
155 slog (L_INFO, _("terminating with exit code %d"), c); 157 slog (L_INFO, _("terminating with exit code %d"), c);
156 158
157 exit (c); 159 exit (c);
158} 160}
220 222
221 if (show_version) 223 if (show_version)
222 { 224 {
223 printf (_("%s version %s (built %s %s, protocol %d.%d)\n"), get_identity (), 225 printf (_("%s version %s (built %s %s, protocol %d.%d)\n"), get_identity (),
224 VERSION, __DATE__, __TIME__, PROTOCOL_MAJOR, PROTOCOL_MINOR); 226 VERSION, __DATE__, __TIME__, PROTOCOL_MAJOR, PROTOCOL_MINOR);
227 printf (_("Built with kernel interface %s/%s.\n"), IFTYPE, IFSUBTYPE);
225 printf (_ 228 printf (_
226 ("Copyright (C) 2003 Marc Lehmann <vpe@plan9.de> and others.\n" 229 ("Copyright (C) 2003 Marc Lehmann <vpe@plan9.de> and others.\n"
227 "See the AUTHORS file for a complete list.\n\n" 230 "See the AUTHORS file for a complete list.\n\n"
228 "tinc comes with ABSOLUTELY NO WARRANTY. This is free software,\n" 231 "tinc comes with ABSOLUTELY NO WARRANTY. This is free software,\n"
229 "and you are welcome to redistribute it under certain conditions;\n" 232 "and you are welcome to redistribute it under certain conditions;\n"
243 if (do_mlock) 246 if (do_mlock)
244 if (mlockall (MCL_CURRENT | MCL_FUTURE)) 247 if (mlockall (MCL_CURRENT | MCL_FUTURE))
245 slog (L_ERR, _("system call `%s' failed: %s"), "mlockall", strerror (errno)); 248 slog (L_ERR, _("system call `%s' failed: %s"), "mlockall", strerror (errno));
246#endif 249#endif
247 250
248 make_names ();
249 conf.read_config (true); 251 conf.read_config (true);
250 252
251 set_loglevel (llevel != L_NONE ? llevel : conf.llevel); 253 set_loglevel (llevel != L_NONE ? llevel : conf.llevel);
252 254
253 RAND_load_file ("/dev/urandom", 1024); 255 RAND_load_file ("/dev/urandom", 1024);
254 256
255 if (!THISNODE) 257 if (!THISNODE)
256 { 258 {
257 slog (L_ERR, _("current node not set, or node '%s' not found in configfile, use the -n switch when starting vped."), 259 slog (L_ERR, _("current node not set, or node '%s' not found in configfile, specify the nodename when starting vped."),
258 thisnode ? thisnode : "<unset>"); 260 thisnode ? thisnode : "<unset>");
259 exit (1); 261 exit (EXIT_FAILURE);
260 } 262 }
261 263
262 if (detach (do_detach)) 264 if (detach (do_detach))
263 exit (0); 265 exit (EXIT_SUCCESS);
264 266
265 setup_signals (); 267 setup_signals ();
266 268
267 if (!network.setup ()) 269 if (!network.setup ())
268 { 270 {
269 iom.loop (); 271 iom.loop ();
270 cleanup_and_exit (1); 272 cleanup_and_exit (EXIT_FAILURE);
271 } 273 }
272 274
273 slog (L_ERR, _("unable to setup network, unrecoverable error, exiting.")); 275 slog (L_ERR, _("unable to setup network, unrecoverable error, exiting."));
274 cleanup_and_exit (1); 276 cleanup_and_exit (EXIT_FAILURE);
275} 277}
276 278

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines