diff options
Diffstat (limited to 'nest/password.c')
-rw-r--r-- | nest/password.c | 63 |
1 files changed, 12 insertions, 51 deletions
diff --git a/nest/password.c b/nest/password.c index 594569cc..63096023 100644 --- a/nest/password.c +++ b/nest/password.c @@ -1,7 +1,8 @@ /* * BIRD -- Password handling * - * Copyright 1999 Pavel Machek <pavel@ucw.cz> + * (c) 1999 Pavel Machek <pavel@ucw.cz> + * (c) 2004 Ondrej Filip <feela@network.cz> * * Can be freely distributed and used under the terms of the GNU GPL. */ @@ -12,62 +13,22 @@ struct password_item *last_password_item = NULL; -static int -password_goodness(struct password_item *i) -{ - if (i->from > now) - return 0; - if (i->to < now) - return 0; - if (i->passive < now) - return 1; - return 2; -} - struct password_item * -get_best_password(struct password_item *head, int flags UNUSED) +password_find(list *l) { - int good = -1; - struct password_item *best = NULL; + struct password_item *pi; - while (head) { - int cur = password_goodness(head); - if (cur > good) { - good = cur; - best = head; - } - head=head->next; + WALK_LIST(pi, *l) + { + if ((pi->genfrom > now) && (pi->gento < now)) + return pi; } - return best; + return NULL; } -void -password_strncpy(char *to, char *from, int len) +void password_cpy(char *dst, char *src, int size) { - int i; - for (i=0; i<len; i++) { - *to++ = *from; - if (*from) - from++; - } + bzero(dst, size); + memcpy(dst, src, strlen(src) < size ? strlen(src) : size); } -int -password_same(struct password_item *old, struct password_item *new) -{ - for(;;) - { - if (old == new) - return 1; - if (!old || !new) - return 0; - if (old->from != new->from || - old->to != new->to || - old->passive != new->passive || - old->id != new->id || - strcmp(old->password, new->password)) - return 0; - old = old->next; - new = new->next; - } -} |