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.43 by pcg, Thu Aug 7 16:34:21 2008 UTC vs.
Revision 1.46 by pcg, Sun Aug 10 01:34:36 2008 UTC

1/* 1/*
2 conf.c -- configuration code 2 conf.c -- configuration code
3 Copyright (C) 2003-2005 Marc Lehmann <gvpe@schmorp.de> 3 Copyright (C) 2003-2008 Marc Lehmann <gvpe@schmorp.de>
4 4
5 This file is part of GVPE. 5 This file is part of GVPE.
6 6
7 GVPE is free software; you can redistribute it and/or modify 7 GVPE is free software; you can redistribute it and/or modify it
8 it under the terms of the GNU General Public License as published by 8 under the terms of the GNU General Public License as published by the
9 the Free Software Foundation; either version 2 of the License, or 9 Free Software Foundation; either version 3 of the License, or (at your
10 (at your option) any later version. 10 option) any later version.
11 11
12 This program is distributed in the hope that it will be useful, 12 This program is distributed in the hope that it will be useful, but
13 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
15 GNU General Public License for more details. 15 Public License for more details.
16 16
17 You should have received a copy of the GNU General Public License 17 You should have received a copy of the GNU General Public License along
18 along with gvpe; if not, write to the Free Software 18 with this program; if not, see <http://www.gnu.org/licenses/>.
19 Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19
20 Additional permission under GNU GPL version 3 section 7
21
22 If you modify this Program, or any covered work, by linking or
23 combining it with the OpenSSL project's OpenSSL library (or a modified
24 version of that library), containing parts covered by the terms of the
25 OpenSSL or SSLeay licenses, the licensors of this Program grant you
26 additional permission to convey the resulting work. Corresponding
27 Source for a non-source form of such a combination shall include the
28 source code for the parts of OpenSSL used as well as that of the
29 covered work.
20*/ 30*/
21 31
22#include "config.h" 32#include "config.h"
23 33
24#include <cstdio> 34#include <cstdio>
82 92
83 return false; 93 return false;
84} 94}
85 95
86bool 96bool
87conf_node::can_direct (struct conf_node *other) 97conf_node::may_direct (struct conf_node *other)
88{ 98{
89 if (match_list (allow_direct, other->nodename)) 99 if (match_list (allow_direct, other->nodename))
90 return true; 100 return true;
91 101
92 if (match_list (deny_direct, other->nodename)) 102 if (match_list (deny_direct, other->nodename))
100{ 110{
101 printf ("%4d fe:fd:80:00:0%1x:%02x %c %-8.8s %-10.10s %s%s%d\n", 111 printf ("%4d fe:fd:80:00:0%1x:%02x %c %-8.8s %-10.10s %s%s%d\n",
102 id, 112 id,
103 id >> 8, id & 0xff, 113 id >> 8, id & 0xff,
104 compress ? 'Y' : 'N', 114 compress ? 'Y' : 'N',
105 connectmode == C_ONDEMAND ? "ondemand" : 115 connectmode == C_ONDEMAND ? "ondemand"
106 connectmode == C_NEVER ? "never" : 116 : connectmode == C_NEVER ? "never"
107 connectmode == C_ALWAYS ? "always" : "", 117 : connectmode == C_ALWAYS ? "always"
118 : connectmode == C_DISABLED ? "disabled"
119 : "",
108 nodename, 120 nodename,
109 hostname ? hostname : "", 121 hostname ? hostname : "",
110 hostname ? ":" : "", 122 hostname ? ":" : "",
111 hostname ? udp_port : 0 123 hostname ? udp_port : 0
112 ); 124 );
474 return _("unknown configuration directive. (ignored)"); 486 return _("unknown configuration directive. (ignored)");
475 487
476 return 0; 488 return 0;
477} 489}
478 490
491void conf_node::finalise ()
492{
493 if (max_queue < 1)
494 {
495 slog (L_WARN, _("%s: max-queue value invalid, setting it to 1."), nodename);
496 max_queue = 1;
497 }
498
499 if (routerprio && (connectmode != C_ALWAYS && connectmode != C_DISABLED))
500 {
501 //slog (L_WARN, _("%s: has non-zero router-priority but either 'never' or 'ondemand' as connectmode, setting it to 'always'."), nodename);
502 connectmode = C_ALWAYS;
503 }
504}
505
479void configuration_parser::parse_argv () 506void configuration_parser::parse_argv ()
480{ 507{
481 for (int i = 0; i < argc; ++i) 508 for (int i = 0; i < argc; ++i)
482 { 509 {
483 char *v = argv [i]; 510 char *v = argv [i];
586 slog (L_NOTICE, _("private hostkey and public node key mismatch: is '%s' the correct node?"), ::thisnode); 613 slog (L_NOTICE, _("private hostkey and public node key mismatch: is '%s' the correct node?"), ::thisnode);
587 exit (EXIT_FAILURE); 614 exit (EXIT_FAILURE);
588 } 615 }
589 616
590 free (fname); 617 free (fname);
618
619 for (configuration::node_vector::iterator i = conf.nodes.begin(); i != conf.nodes.end(); ++i)
620 (*i)->finalise ();
591} 621}
592 622
593char *configuration::config_filename (const char *name, const char *dflt) 623char *configuration::config_filename (const char *name, const char *dflt)
594{ 624{
595 char *fname; 625 char *fname;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines