Skeleton for password handling, currently I only build structures and
do nothing more advanced for them
This commit is contained in:
parent
9d79fec8dc
commit
1a2ded450e
4 changed files with 58 additions and 1 deletions
|
@ -1,4 +1,4 @@
|
||||||
source=rt-table.c rt-fib.c rt-attr.c proto.c iface.c rt-dev.c
|
source=rt-table.c rt-fib.c rt-attr.c proto.c iface.c rt-dev.c password.c
|
||||||
root-rel=../
|
root-rel=../
|
||||||
dir-name=nest
|
dir-name=nest
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,7 @@ CF_HDR
|
||||||
static struct proto_config *this_proto;
|
static struct proto_config *this_proto;
|
||||||
|
|
||||||
#include "nest/rt-dev.h"
|
#include "nest/rt-dev.h"
|
||||||
|
#include "nest/password.h"
|
||||||
|
|
||||||
void rt_dev_add_iface(char *);
|
void rt_dev_add_iface(char *);
|
||||||
|
|
||||||
|
@ -18,10 +19,12 @@ CF_DECLS
|
||||||
|
|
||||||
CF_KEYWORDS(ROUTER, ID, PROTOCOL, PREFERENCE, DISABLED, DEBUG, ALL, OFF, DIRECT)
|
CF_KEYWORDS(ROUTER, ID, PROTOCOL, PREFERENCE, DISABLED, DEBUG, ALL, OFF, DIRECT)
|
||||||
CF_KEYWORDS(INTERFACE, IMPORT, EXPORT, FILTER, NONE, TABLE)
|
CF_KEYWORDS(INTERFACE, IMPORT, EXPORT, FILTER, NONE, TABLE)
|
||||||
|
CF_KEYWORDS(PASSWORD, FROM, TO, ID)
|
||||||
|
|
||||||
%type <i> idval
|
%type <i> idval
|
||||||
%type <f> imexport
|
%type <f> imexport
|
||||||
%type <r> rtable
|
%type <r> rtable
|
||||||
|
%type <p> password_list password_begin
|
||||||
|
|
||||||
CF_GRAMMAR
|
CF_GRAMMAR
|
||||||
|
|
||||||
|
@ -129,6 +132,32 @@ dev_iface_list:
|
||||||
| dev_iface_list ',' TEXT { rt_dev_add_iface($3); }
|
| dev_iface_list ',' TEXT { rt_dev_add_iface($3); }
|
||||||
;
|
;
|
||||||
|
|
||||||
|
password_begin:
|
||||||
|
PASSWORD TEXT {
|
||||||
|
last_password_item = cfg_alloc(sizeof (struct password_item));
|
||||||
|
last_password_item->password = $2;
|
||||||
|
last_password_item->from = 0;
|
||||||
|
last_password_item->to = ~0;
|
||||||
|
last_password_item->id = 0;
|
||||||
|
last_password_item->next = NULL;
|
||||||
|
$$=last_password_item;
|
||||||
|
}
|
||||||
|
;
|
||||||
|
|
||||||
|
password_items:
|
||||||
|
/* empty */ { }
|
||||||
|
| FROM datetime ';' password_items { last_password_item->from = $2; }
|
||||||
|
| TO datetime ';' password_items { last_password_item->to = $2; }
|
||||||
|
| ID NUM ';' password_items { last_password_item->id = $2; }
|
||||||
|
;
|
||||||
|
|
||||||
|
password_list:
|
||||||
|
/* empty */ { $$ = NULL; }
|
||||||
|
| '{' password_begin ';' password_items '}' password_list {
|
||||||
|
last_password_item->next = $6;
|
||||||
|
}
|
||||||
|
;
|
||||||
|
|
||||||
CF_CODE
|
CF_CODE
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
12
nest/password.c
Normal file
12
nest/password.c
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
/*
|
||||||
|
* BIRD -- Password handling
|
||||||
|
*
|
||||||
|
* Copyright 1999 Pavel Machek <pavel@ucw.cz>
|
||||||
|
*
|
||||||
|
* Can be freely distributed and used under the terms of the GNU GPL.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "nest/bird.h"
|
||||||
|
#include "nest/password.h"
|
||||||
|
|
||||||
|
struct password_item *last_password_item = NULL;
|
16
nest/password.h
Normal file
16
nest/password.h
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
/*
|
||||||
|
* BIRD -- Password handling
|
||||||
|
*
|
||||||
|
* Copyright 1999 Pavel Machek <pavel@ucw.cz>
|
||||||
|
*
|
||||||
|
* Can be freely distributed and used under the terms of the GNU GPL.
|
||||||
|
*/
|
||||||
|
|
||||||
|
struct password_item {
|
||||||
|
struct password_item *next;
|
||||||
|
char *password;
|
||||||
|
int id;
|
||||||
|
unsigned int from, to; /* We really don't care about time before 1970 */
|
||||||
|
};
|
||||||
|
|
||||||
|
extern struct password_item *last_password_item;
|
Loading…
Reference in a new issue