summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nest/config.Y15
1 files changed, 12 insertions, 3 deletions
diff --git a/nest/config.Y b/nest/config.Y
index 45d18679..94f9b5dc 100644
--- a/nest/config.Y
+++ b/nest/config.Y
@@ -38,13 +38,18 @@ iface_patt_check(void)
}
static inline void
-init_password(const void *key, uint length, uint id)
+init_password_list(void)
{
if (!this_p_list) {
this_p_list = cfg_allocz(sizeof(list));
init_list(this_p_list);
password_id = 1;
}
+}
+
+static inline void
+init_password(const void *key, uint length, uint id)
+{
this_p_item = cfg_allocz(sizeof (struct password_item));
this_p_item->password = key;
this_p_item->length = length;
@@ -494,6 +499,10 @@ mrtdump_flag:
/* Password lists */
password_list:
+ password_list_body
+;
+
+password_list_body:
PASSWORDS '{' password_items '}'
| password_item
;
@@ -509,8 +518,8 @@ password_item:
;
password_item_begin:
- PASSWORD text { init_password($2, strlen($2), password_id++); }
- | PASSWORD BYTESTRING { init_password($2->data, $2->length, password_id++); }
+ PASSWORD text { init_password_list(); init_password($2, strlen($2), password_id++); }
+ | PASSWORD BYTESTRING { init_password_list(); init_password($2->data, $2->length, password_id++); }
;
password_item_params: