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

Comparing gvpe/src/conf.C (file contents):
Revision 1.50 by pcg, Mon Mar 23 15:22:00 2009 UTC vs.
Revision 1.53 by root, Tue Feb 8 23:13:48 2011 UTC

57char *thisnode; 57char *thisnode;
58char *identname; 58char *identname;
59 59
60struct configuration conf; 60struct configuration conf;
61 61
62u8
62u8 best_protocol (u8 protset) 63best_protocol (u8 protset)
63{ 64{
64 if (protset & PROT_IPv4 ) return PROT_IPv4; 65 if (protset & PROT_IPv4 ) return PROT_IPv4;
65 if (protset & PROT_ICMPv4) return PROT_ICMPv4; 66 if (protset & PROT_ICMPv4) return PROT_ICMPv4;
66 if (protset & PROT_UDPv4 ) return PROT_UDPv4; 67 if (protset & PROT_UDPv4 ) return PROT_UDPv4;
67 if (protset & PROT_TCPv4 ) return PROT_TCPv4; 68 if (protset & PROT_TCPv4 ) return PROT_TCPv4;
68 if (protset & PROT_DNSv4 ) return PROT_DNSv4; 69 if (protset & PROT_DNSv4 ) return PROT_DNSv4;
69 70
70 return 0; 71 return 0;
71} 72}
72 73
74const char *
73const char *strprotocol (u8 protocol) 75strprotocol (u8 protocol)
74{ 76{
75 if (protocol & PROT_IPv4 ) return "rawip"; 77 if (protocol & PROT_IPv4 ) return "rawip";
76 if (protocol & PROT_ICMPv4) return "icmp"; 78 if (protocol & PROT_ICMPv4) return "icmp";
77 if (protocol & PROT_UDPv4 ) return "udp"; 79 if (protocol & PROT_UDPv4 ) return "udp";
78 if (protocol & PROT_TCPv4 ) return "tcp"; 80 if (protocol & PROT_TCPv4 ) return "tcp";
140 free (dns_hostname); 142 free (dns_hostname);
141#endif 143#endif
142#endif 144#endif
143} 145}
144 146
147void
145void configuration::init () 148configuration::init ()
146{ 149{
147 memset (this, 0, sizeof (*this)); 150 memset (this, 0, sizeof (*this));
148 151
149 mtu = DEFAULT_MTU; 152 mtu = DEFAULT_MTU;
150 nfmark = 0; 153 nfmark = 0;
178#endif 181#endif
179 182
180 conf.pidfilename = strdup (LOCALSTATEDIR "/run/gvpe.pid"); 183 conf.pidfilename = strdup (LOCALSTATEDIR "/run/gvpe.pid");
181} 184}
182 185
186void
183void configuration::cleanup() 187configuration::cleanup ()
184{ 188{
185 if (rsa_key) 189 if (rsa_key)
186 RSA_free (rsa_key); 190 RSA_free (rsa_key);
187 191
188 rsa_key = 0; 192 rsa_key = 0;
189 193
190 free (pidfilename); pidfilename = 0; 194 free (pidfilename); pidfilename = 0;
191 free (ifname); ifname = 0; 195 free (ifname); ifname = 0;
192#if ENABLE_HTTP_PROXY 196#if ENABLE_HTTP_PROXY
193 free (proxy_host); proxy_host = 0; 197 free (proxy_host); proxy_host = 0;
194 free (proxy_auth); proxy_auth = 0; 198 free (proxy_auth); proxy_auth = 0;
195#endif 199#endif
196#if ENABLE_DNS 200#if ENABLE_DNS
197 free (dns_forw_host); dns_forw_host = 0; 201 free (dns_forw_host); dns_forw_host = 0;
198#endif 202#endif
203 free (script_if_up); script_if_up = 0;
204 free (script_node_up); script_node_up = 0;
205 free (script_node_change); script_node_change = 0;
206 free (script_node_down); script_node_down = 0;
199} 207}
200 208
201void 209void
202configuration::clear () 210configuration::clear ()
203{ 211{
337 conf.nfmark = atoi (val); 345 conf.nfmark = atoi (val);
338 else if (!strcmp (var, "if-up")) 346 else if (!strcmp (var, "if-up"))
339 free (conf.script_if_up), conf.script_if_up = strdup (val); 347 free (conf.script_if_up), conf.script_if_up = strdup (val);
340 else if (!strcmp (var, "node-up")) 348 else if (!strcmp (var, "node-up"))
341 free (conf.script_node_up), conf.script_node_up = strdup (val); 349 free (conf.script_node_up), conf.script_node_up = strdup (val);
350 else if (!strcmp (var, "node-change"))
351 free (conf.script_node_change), conf.script_node_change = strdup (val);
342 else if (!strcmp (var, "node-down")) 352 else if (!strcmp (var, "node-down"))
343 free (conf.script_node_down), conf.script_node_down = strdup (val); 353 free (conf.script_node_down), conf.script_node_down = strdup (val);
344 else if (!strcmp (var, "pid-file")) 354 else if (!strcmp (var, "pid-file"))
345 free (conf.pidfilename), conf.pidfilename = strdup (val); 355 free (conf.pidfilename), conf.pidfilename = strdup (val);
346 else if (!strcmp (var, "dns-forw-host")) 356 else if (!strcmp (var, "dns-forw-host"))
489 return _("unknown configuration directive. (ignored)"); 499 return _("unknown configuration directive. (ignored)");
490 500
491 return 0; 501 return 0;
492} 502}
493 503
504void
494void conf_node::finalise () 505conf_node::finalise ()
495{ 506{
496 if (max_queue < 1) 507 if (max_queue < 1)
497 { 508 {
498 slog (L_WARN, _("%s: max-queue value invalid, setting it to 1."), nodename); 509 slog (L_WARN, _("%s: max-queue value invalid, setting it to 1."), nodename);
499 max_queue = 1; 510 max_queue = 1;
504 //slog (L_WARN, _("%s: has non-zero router-priority but either 'never' or 'ondemand' as connectmode, setting it to 'always'."), nodename); 515 //slog (L_WARN, _("%s: has non-zero router-priority but either 'never' or 'ondemand' as connectmode, setting it to 'always'."), nodename);
505 connectmode = C_ALWAYS; 516 connectmode = C_ALWAYS;
506 } 517 }
507} 518}
508 519
520void
509void configuration_parser::parse_argv () 521configuration_parser::parse_argv ()
510{ 522{
511 for (int i = 0; i < argc; ++i) 523 for (int i = 0; i < argc; ++i)
512 { 524 {
513 char *v = argv [i]; 525 char *v = argv [i];
514 526
621 633
622 for (configuration::node_vector::iterator i = conf.nodes.begin(); i != conf.nodes.end(); ++i) 634 for (configuration::node_vector::iterator i = conf.nodes.begin(); i != conf.nodes.end(); ++i)
623 (*i)->finalise (); 635 (*i)->finalise ();
624} 636}
625 637
638char *
626char *configuration::config_filename (const char *name, const char *dflt) 639configuration::config_filename (const char *name, const char *dflt)
627{ 640{
628 char *fname; 641 char *fname;
629 642
630 asprintf (&fname, name ? name : dflt, ::thisnode); 643 asprintf (&fname, name ? name : dflt, ::thisnode);
631 644
672configuration::~configuration () 685configuration::~configuration ()
673{ 686{
674 cleanup (); 687 cleanup ();
675} 688}
676 689
677

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines