|
|
| version 1.2, 2003/06/17 04:29:52 | version 1.3, 2004/03/11 09:38:59 |
|---|---|
| Line 33 | Line 33 |
| * SUCH DAMAGE. | * SUCH DAMAGE. |
| * | * |
| * $FreeBSD: src/usr.sbin/IPXrouted/tables.c,v 1.7 1999/08/28 01:15:05 peter Exp $ | * $FreeBSD: src/usr.sbin/IPXrouted/tables.c,v 1.7 1999/08/28 01:15:05 peter Exp $ |
| * $DragonFly: src/usr.sbin/IPXrouted/tables.c,v 1.1 2003/06/16 07:16:25 dillon Exp $ | * $DragonFly$ |
| * | * |
| * @(#)tables.c 8.1 (Berkeley) 6/5/93 | * @(#)tables.c 8.1 (Berkeley) 6/5/93 |
| */ | */ |
| Line 62 struct rthash nethash[ROUTEHASHSIZ]; | Line 62 struct rthash nethash[ROUTEHASHSIZ]; |
| * Lookup dst in the tables for an exact match. | * Lookup dst in the tables for an exact match. |
| */ | */ |
| struct rt_entry * | struct rt_entry * |
| rtlookup(dst) | rtlookup(struct sockaddr *dst) |
| struct sockaddr *dst; | |
| { | { |
| register struct rt_entry *rt; | struct rt_entry *rt; |
| register struct rthash *rh; | struct rthash *rh; |
| register u_int hash; | u_int hash; |
| struct afhash h; | struct afhash h; |
| if (dst->sa_family >= AF_MAX) | if (dst->sa_family >= AF_MAX) |
| Line 88 rtlookup(dst) | Line 87 rtlookup(dst) |
| * Find a route to dst as the kernel would. | * Find a route to dst as the kernel would. |
| */ | */ |
| struct rt_entry * | struct rt_entry * |
| rtfind(dst) | rtfind(struct sockaddr *dst) |
| struct sockaddr *dst; | |
| { | { |
| register struct rt_entry *rt; | struct rt_entry *rt; |
| register struct rthash *rh; | struct rthash *rh; |
| register u_int hash; | u_int hash; |
| struct afhash h; | struct afhash h; |
| int af = dst->sa_family; | int af = dst->sa_family; |
| int (*match)() = 0; | int (*match)() = 0; |
| Line 116 rtfind(dst) | Line 114 rtfind(dst) |
| } | } |
| void | void |
| rtadd(dst, gate, metric, ticks, state) | rtadd(struct sockaddr *dst, struct sockaddr *gate, short metric, short ticks, |
| struct sockaddr *dst, *gate; | int state) |
| short metric, ticks; | |
| int state; | |
| { | { |
| struct afhash h; | struct afhash h; |
| register struct rt_entry *rt; | struct rt_entry *rt; |
| struct rthash *rh; | struct rthash *rh; |
| int af = dst->sa_family, flags; | int af = dst->sa_family, flags; |
| u_int hash; | u_int hash; |
| Line 169 rtadd(dst, gate, metric, ticks, state) | Line 165 rtadd(dst, gate, metric, ticks, state) |
| } | } |
| void | void |
| rtadd_clone(ort, dst, gate, metric, ticks, state) | rtadd_clone(struct rt_entry *ort, struct sockaddr *dst, struct sockaddr *gate, |
| struct rt_entry *ort; | short metric, short ticks, int state) |
| struct sockaddr *dst, *gate; | |
| short metric, ticks; | |
| int state; | |
| { | { |
| struct afhash h; | struct afhash h; |
| register struct rt_entry *rt; | struct rt_entry *rt; |
| struct rthash *rh; | struct rthash *rh; |
| int af = dst->sa_family, flags; | int af = dst->sa_family, flags; |
| u_int hash; | u_int hash; |
| Line 214 rtadd_clone(ort, dst, gate, metric, tick | Line 207 rtadd_clone(ort, dst, gate, metric, tick |
| } | } |
| void | void |
| rtchange(rt, gate, metric, ticks) | rtchange(struct rt_entry *rt, struct sockaddr *gate, short metric, short ticks) |
| struct rt_entry *rt; | |
| struct sockaddr *gate; | |
| short metric, ticks; | |
| { | { |
| int doioctl = 0, metricchanged = 0; | int doioctl = 0, metricchanged = 0; |
| struct rtuentry oldroute; | struct rtuentry oldroute; |
| Line 335 rtchange(rt, gate, metric, ticks) | Line 325 rtchange(rt, gate, metric, ticks) |
| } | } |
| void | void |
| rtdelete(rt) | rtdelete(struct rt_entry *rt) |
| struct rt_entry *rt; | |
| { | { |
| struct sockaddr *sa = &(rt->rt_router); | struct sockaddr *sa = &(rt->rt_router); |
| FIXLEN(sa); | FIXLEN(sa); |
| sa = &(rt->rt_dst); | sa = &(rt->rt_dst); |
| FIXLEN(sa); | FIXLEN(sa); |
| Line 370 rtdelete(rt) | Line 359 rtdelete(rt) |
| void | void |
| rtinit(void) | rtinit(void) |
| { | { |
| register struct rthash *rh; | struct rthash *rh; |
| for (rh = nethash; rh < &nethash[ROUTEHASHSIZ]; rh++) | for (rh = nethash; rh < &nethash[ROUTEHASHSIZ]; rh++) |
| rh->rt_forw = rh->rt_back = (struct rt_entry *)rh; | rh->rt_forw = rh->rt_back = (struct rt_entry *)rh; |
| Line 378 rtinit(void) | Line 367 rtinit(void) |
| int seqno; | int seqno; |
| int | int |
| rtioctl(action, ort) | rtioctl(int action, struct rtuentry *ort) |
| int action; | |
| struct rtuentry *ort; | |
| { | { |
| #ifndef RTM_ADD | #ifndef RTM_ADD |
| if (install == 0) | if (install == 0) |