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.1 by pcg, Sat Mar 1 15:53:03 2003 UTC vs.
Revision 1.6 by pcg, Sat Apr 5 02:32:40 2003 UTC

41#include "pidfile.h" 41#include "pidfile.h"
42 42
43#include "conf.h" 43#include "conf.h"
44#include "slog.h" 44#include "slog.h"
45#include "util.h" 45#include "util.h"
46#include "protocol.h" 46#include "vpn.h"
47#include "iom.h"
47 48
48vpn network; 49vpn network;
50
51static loglevel llevel = L_NONE;
49 52
50/* If nonzero, display usage information and exit. */ 53/* If nonzero, display usage information and exit. */
51static int show_help; 54static int show_help;
52 55
53/* If nonzero, print the version on standard output and exit. */ 56/* If nonzero, print the version on standard output and exit. */
126 break; 129 break;
127#endif 130#endif
128 131
129 case 'l': /* inc debug level */ 132 case 'l': /* inc debug level */
130 { 133 {
131 loglevel l = string_to_loglevel (optarg); 134 llevel = string_to_loglevel (optarg);
132 135
133 if (l != L_NONE) 136 if (llevel == L_NONE)
134 set_loglevel (l);
135 else
136 slog (L_WARN, "'%s': %s", optarg, UNKNOWN_LOGLEVEL); 137 slog (L_WARN, "'%s': %s", optarg, UNKNOWN_LOGLEVEL);
137 } 138 }
138 break; 139 break;
139 140
140 case '?': 141 case '?':
166*/ 167*/
167RETSIGTYPE 168RETSIGTYPE
168sigterm_handler (int a) 169sigterm_handler (int a)
169{ 170{
170 network.events |= vpn::EVENT_SHUTDOWN; 171 network.events |= vpn::EVENT_SHUTDOWN;
172 network.event.start (0);
171} 173}
172 174
173RETSIGTYPE 175RETSIGTYPE
174sighup_handler (int a) 176sighup_handler (int a)
175{ 177{
176 network.events |= vpn::EVENT_RECONNECT; 178 network.events |= vpn::EVENT_RECONNECT;
179 network.event.start (0);
177} 180}
178 181
179RETSIGTYPE 182RETSIGTYPE
180sigusr1_handler (int a) 183sigusr1_handler (int a)
181{ 184{
185 network.dump_status ();
182} 186}
183 187
184RETSIGTYPE 188RETSIGTYPE
185sigusr2_handler (int a) 189sigusr2_handler (int a)
186{ 190{
196 200
197 act.sa_handler = sighup_handler; sigaction (SIGHUP , &act, NULL); 201 act.sa_handler = sighup_handler; sigaction (SIGHUP , &act, NULL);
198 act.sa_handler = sigusr1_handler; sigaction (SIGUSR1, &act, NULL); 202 act.sa_handler = sigusr1_handler; sigaction (SIGUSR1, &act, NULL);
199 act.sa_handler = sigusr2_handler; sigaction (SIGUSR2, &act, NULL); 203 act.sa_handler = sigusr2_handler; sigaction (SIGUSR2, &act, NULL);
200 act.sa_handler = SIG_IGN; sigaction (SIGCHLD, &act, NULL); 204 act.sa_handler = SIG_IGN; sigaction (SIGCHLD, &act, NULL);
205 act.sa_handler = SIG_IGN; sigaction (SIGPIPE, &act, NULL);
201 act.sa_flags = SA_RESETHAND; 206 act.sa_flags = SA_RESETHAND;
202 act.sa_handler = sigterm_handler; sigaction (SIGINT , &act, NULL); 207 act.sa_handler = sigterm_handler; sigaction (SIGINT , &act, NULL);
203 act.sa_handler = sigterm_handler; sigaction (SIGTERM, &act, NULL); 208 act.sa_handler = sigterm_handler; sigaction (SIGTERM, &act, NULL);
204} 209}
205 210
244#endif 249#endif
245 250
246 make_names (); 251 make_names ();
247 conf.read_config (true); 252 conf.read_config (true);
248 253
254 set_loglevel (llevel != L_NONE ? llevel : conf.llevel);
255
249 RAND_load_file ("/dev/urandom", 1024); 256 RAND_load_file ("/dev/urandom", 1024);
250
251 //OpenSSL_add_all_algorithms ();
252 257
253 if (!THISNODE) 258 if (!THISNODE)
254 { 259 {
255 slog (L_ERR, _("current node not set, or node '%s' not found in configfile, use the -n switch when starting vped."), 260 slog (L_ERR, _("current node not set, or node '%s' not found in configfile, use the -n switch when starting vped."),
256 thisnode ? thisnode : "<unset>"); 261 thisnode ? thisnode : "<unset>");
262 267
263 setup_signals (); 268 setup_signals ();
264 269
265 if (!network.setup ()) 270 if (!network.setup ())
266 { 271 {
267 network.main_loop (); 272 iom.loop ();
268 cleanup_and_exit (1); 273 cleanup_and_exit (1);
269 } 274 }
270 275
271 slog (L_ERR, _("unable to setup network, unrecoverable error, exiting.")); 276 slog (L_ERR, _("unable to setup network, unrecoverable error, exiting."));
272 cleanup_and_exit (1); 277 cleanup_and_exit (1);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines