diff options
Diffstat (limited to 'proto/rip')
-rw-r--r-- | proto/rip/config.Y | 4 | ||||
-rw-r--r-- | proto/rip/rip.c | 2 | ||||
-rw-r--r-- | proto/rip/rip.h | 3 |
3 files changed, 5 insertions, 4 deletions
diff --git a/proto/rip/config.Y b/proto/rip/config.Y index f7839f2..a3e877d 100644 --- a/proto/rip/config.Y +++ b/proto/rip/config.Y @@ -24,7 +24,7 @@ struct rip_patt *rip_get_iface(void); CF_DECLS -CF_KEYWORDS(RIP, INFINITY, METRIC, PORT, PERIOD, GARBAGETIME, PASSWORD, +CF_KEYWORDS(RIP, INFINITY, METRIC, PORT, PERIOD, GARBAGETIME, PASSWORDS, MODE, BROADCAST, QUIET, NOLISTEN, VERSION1, AUTHENTICATION, NONE, PLAINTEXT, MD5) @@ -47,8 +47,8 @@ RIP_CFG: | RIP_CFG PORT expr ';' { RIP_CFG->port = $3; } | RIP_CFG PERIOD expr ';' { RIP_CFG->period = $3; } | RIP_CFG GARBAGETIME expr ';' { RIP_CFG->garbage_time = $3; } - | RIP_CFG PASSWORD TEXT ';' { RIP_CFG->password = $3; } | RIP_CFG AUTHENTICATION rip_auth ';' {RIP_CFG->authtype = $3; } + | RIP_CFG PASSWORDS '{' password_list '}' {RIP_CFG->passwords = $4; } | RIP_CFG rip_iface_list ';' ; diff --git a/proto/rip/rip.c b/proto/rip/rip.c index 16c63ae..8d81486 100644 --- a/proto/rip/rip.c +++ b/proto/rip/rip.c @@ -603,7 +603,7 @@ rip_init_config(struct rip_proto_config *c) c->port = 520; c->period = 30; c->garbage_time = 120+180; - c->password = "PASSWORD"; + c->passwords = NULL; c->authtype = AT_NONE; } diff --git a/proto/rip/rip.h b/proto/rip/rip.h index a413f71..efad4a6 100644 --- a/proto/rip/rip.h +++ b/proto/rip/rip.h @@ -3,6 +3,7 @@ */ #include "nest/route.h" +#include "nest/password.h" struct rip_connection { node n; @@ -92,7 +93,7 @@ struct rip_proto_config { int period; int garbage_time; - char *password; + struct password_item *passwords; int authtype; #define AT_NONE 0 #define AT_PLAINTEXT 2 |