summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--proto/rip/config.Y4
-rw-r--r--proto/rip/rip.c2
-rw-r--r--proto/rip/rip.h3
3 files changed, 5 insertions, 4 deletions
diff --git a/proto/rip/config.Y b/proto/rip/config.Y
index f7839f26..a3e877da 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 16c63aec..8d814861 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 a413f719..efad4a6d 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