Deleted Added
full compact
tables.c (122760) tables.c (189369)
1/*
2 * Copyright (c) 1985, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Copyright (c) 1995 John Hay. All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions

--- 18 unchanged lines hidden (view full) ---

27 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33 * SUCH DAMAGE.
34 *
1/*
2 * Copyright (c) 1985, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Copyright (c) 1995 John Hay. All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions

--- 18 unchanged lines hidden (view full) ---

27 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33 * SUCH DAMAGE.
34 *
35 * $FreeBSD: head/usr.sbin/IPXrouted/tables.c 122760 2003-11-15 17:10:56Z trhodes $
35 * $FreeBSD: head/usr.sbin/IPXrouted/tables.c 189369 2009-03-04 18:36:48Z ed $
36 */
37
38#ifndef lint
39static const char sccsid[] = "@(#)tables.c 8.1 (Berkeley) 6/5/93";
40#endif /* not lint */
41
42/*
43 * Routing Table Management Daemon

--- 15 unchanged lines hidden (view full) ---

59int delete = 1;
60
61struct rthash nethash[ROUTEHASHSIZ];
62
63/*
64 * Lookup dst in the tables for an exact match.
65 */
66struct rt_entry *
36 */
37
38#ifndef lint
39static const char sccsid[] = "@(#)tables.c 8.1 (Berkeley) 6/5/93";
40#endif /* not lint */
41
42/*
43 * Routing Table Management Daemon

--- 15 unchanged lines hidden (view full) ---

59int delete = 1;
60
61struct rthash nethash[ROUTEHASHSIZ];
62
63/*
64 * Lookup dst in the tables for an exact match.
65 */
66struct rt_entry *
67rtlookup(dst)
68 struct sockaddr *dst;
67rtlookup(struct sockaddr *dst)
69{
70 register struct rt_entry *rt;
71 register struct rthash *rh;
72 register u_int hash;
73 struct afhash h;
74
75 if (dst->sa_family >= AF_MAX)
76 return (0);

--- 8 unchanged lines hidden (view full) ---

85 }
86 return (0);
87}
88
89/*
90 * Find a route to dst as the kernel would.
91 */
92struct rt_entry *
68{
69 register struct rt_entry *rt;
70 register struct rthash *rh;
71 register u_int hash;
72 struct afhash h;
73
74 if (dst->sa_family >= AF_MAX)
75 return (0);

--- 8 unchanged lines hidden (view full) ---

84 }
85 return (0);
86}
87
88/*
89 * Find a route to dst as the kernel would.
90 */
91struct rt_entry *
93rtfind(dst)
94 struct sockaddr *dst;
92rtfind(struct sockaddr *dst)
95{
96 register struct rt_entry *rt;
97 register struct rthash *rh;
98 register u_int hash;
99 struct afhash h;
100 int af = dst->sa_family;
101 int (*match)() = 0;
102

--- 10 unchanged lines hidden (view full) ---

113 if (rt->rt_dst.sa_family == af &&
114 (*match)(&rt->rt_dst, dst))
115 return (rt);
116 }
117 return (0);
118}
119
120void
93{
94 register struct rt_entry *rt;
95 register struct rthash *rh;
96 register u_int hash;
97 struct afhash h;
98 int af = dst->sa_family;
99 int (*match)() = 0;
100

--- 10 unchanged lines hidden (view full) ---

111 if (rt->rt_dst.sa_family == af &&
112 (*match)(&rt->rt_dst, dst))
113 return (rt);
114 }
115 return (0);
116}
117
118void
121rtadd(dst, gate, metric, ticks, state)
122 struct sockaddr *dst, *gate;
123 short metric, ticks;
124 int state;
119rtadd(struct sockaddr *dst, struct sockaddr *gate, short metric,
120 short ticks, int state)
125{
126 struct afhash h;
127 register struct rt_entry *rt;
128 struct rthash *rh;
129 int af = dst->sa_family, flags;
130 u_int hash;
131
132 FIXLEN(dst);

--- 33 unchanged lines hidden (view full) ---

166 TRACE_ACTION("DELETE", rt);
167 remque(rt);
168 free((char *)rt);
169 }
170 }
171}
172
173void
121{
122 struct afhash h;
123 register struct rt_entry *rt;
124 struct rthash *rh;
125 int af = dst->sa_family, flags;
126 u_int hash;
127
128 FIXLEN(dst);

--- 33 unchanged lines hidden (view full) ---

162 TRACE_ACTION("DELETE", rt);
163 remque(rt);
164 free((char *)rt);
165 }
166 }
167}
168
169void
174rtadd_clone(ort, dst, gate, metric, ticks, state)
175 struct rt_entry *ort;
176 struct sockaddr *dst, *gate;
177 short metric, ticks;
178 int state;
170rtadd_clone(struct rt_entry *ort, struct sockaddr *dst,
171 struct sockaddr *gate, short metric, short ticks, int state)
179{
180 struct afhash h;
181 register struct rt_entry *rt;
182 struct rthash *rh;
183 int af = dst->sa_family, flags;
184 u_int hash;
185
186 FIXLEN(dst);

--- 24 unchanged lines hidden (view full) ---

211
212 while(ort->rt_clone != NULL)
213 ort = ort->rt_clone;
214 ort->rt_clone = rt;
215 TRACE_ACTION("ADD_CLONE", rt);
216}
217
218void
172{
173 struct afhash h;
174 register struct rt_entry *rt;
175 struct rthash *rh;
176 int af = dst->sa_family, flags;
177 u_int hash;
178
179 FIXLEN(dst);

--- 24 unchanged lines hidden (view full) ---

204
205 while(ort->rt_clone != NULL)
206 ort = ort->rt_clone;
207 ort->rt_clone = rt;
208 TRACE_ACTION("ADD_CLONE", rt);
209}
210
211void
219rtchange(rt, gate, metric, ticks)
220 struct rt_entry *rt;
221 struct sockaddr *gate;
222 short metric, ticks;
212rtchange(struct rt_entry *rt, struct sockaddr *gate, short metric,
213 short ticks)
223{
224 int doioctl = 0, metricchanged = 0;
225 struct rtuentry oldroute;
226
227 FIXLEN(gate);
228 /*
229 * Handling of clones.
230 * When the route changed and it had clones, handle it special.

--- 101 unchanged lines hidden (view full) ---

332 syslog(LOG_ERR, "rtioctl ADD dst %s, gw %s: %m",
333 ipxdp_ntoa(&((struct sockaddr_ipx *)&rt->rt_dst)->sipx_addr),
334 ipxdp_ntoa(&((struct sockaddr_ipx *)&rt->rt_router)->sipx_addr));
335#endif
336 }
337}
338
339void
214{
215 int doioctl = 0, metricchanged = 0;
216 struct rtuentry oldroute;
217
218 FIXLEN(gate);
219 /*
220 * Handling of clones.
221 * When the route changed and it had clones, handle it special.

--- 101 unchanged lines hidden (view full) ---

323 syslog(LOG_ERR, "rtioctl ADD dst %s, gw %s: %m",
324 ipxdp_ntoa(&((struct sockaddr_ipx *)&rt->rt_dst)->sipx_addr),
325 ipxdp_ntoa(&((struct sockaddr_ipx *)&rt->rt_router)->sipx_addr));
326#endif
327 }
328}
329
330void
340rtdelete(rt)
341 struct rt_entry *rt;
331rtdelete(struct rt_entry *rt)
342{
343
344 struct sockaddr *sa = &(rt->rt_router);
345 FIXLEN(sa);
346 sa = &(rt->rt_dst);
347 FIXLEN(sa);
348 if (rt->rt_clone) {
349 /*

--- 25 unchanged lines hidden (view full) ---

375 register struct rthash *rh;
376
377 for (rh = nethash; rh < &nethash[ROUTEHASHSIZ]; rh++)
378 rh->rt_forw = rh->rt_back = (struct rt_entry *)rh;
379}
380int seqno;
381
382int
332{
333
334 struct sockaddr *sa = &(rt->rt_router);
335 FIXLEN(sa);
336 sa = &(rt->rt_dst);
337 FIXLEN(sa);
338 if (rt->rt_clone) {
339 /*

--- 25 unchanged lines hidden (view full) ---

365 register struct rthash *rh;
366
367 for (rh = nethash; rh < &nethash[ROUTEHASHSIZ]; rh++)
368 rh->rt_forw = rh->rt_back = (struct rt_entry *)rh;
369}
370int seqno;
371
372int
383rtioctl(action, ort)
384 int action;
385 struct rtuentry *ort;
373rtioctl(int action, struct rtuentry *ort)
386{
387#ifndef RTM_ADD
388 if (install == 0)
389 return (errno = 0);
390
391 ort->rtu_rtflags = ort->rtu_flags;
392
393 switch (action) {

--- 42 unchanged lines hidden ---
374{
375#ifndef RTM_ADD
376 if (install == 0)
377 return (errno = 0);
378
379 ort->rtu_rtflags = ort->rtu_flags;
380
381 switch (action) {

--- 42 unchanged lines hidden ---