Deleted Added
full compact
mibII_nettomedia.c (124861) mibII_nettomedia.c (133211)
1/*
2 * Copyright (c) 2001-2003
3 * Fraunhofer Institute for Open Communication Systems (FhG Fokus).
4 * All rights reserved.
5 *
6 * Author: Harti Brandt <harti@freebsd.org>
1/*
2 * Copyright (c) 2001-2003
3 * Fraunhofer Institute for Open Communication Systems (FhG Fokus).
4 * All rights reserved.
5 *
6 * Author: Harti Brandt <harti@freebsd.org>
7 *
8 * Redistribution of this software and documentation and use in source and
9 * binary forms, with or without modification, are permitted provided that
10 * the following conditions are met:
11 *
12 * 1. Redistributions of source code or documentation must retain the above
13 * copyright notice, this list of conditions and the following disclaimer.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 * 1. Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
14 * 2. Redistributions in binary form must reproduce the above copyright
15 * notice, this list of conditions and the following disclaimer in the
16 * documentation and/or other materials provided with the distribution.
13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the distribution.
17 * 3. Neither the name of the Institute nor the names of its contributors
18 * may be used to endorse or promote products derived from this software
19 * without specific prior written permission.
16 *
17 * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
18 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
21 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27 * SUCH DAMAGE.
20 *
28 *
21 * THIS SOFTWARE AND DOCUMENTATION IS PROVIDED BY FRAUNHOFER FOKUS
22 * AND ITS CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
23 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
24 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
25 * FRAUNHOFER FOKUS OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
28 * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
29 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
30 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
31 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 * $Begemot: bsnmp/snmp_mibII/mibII_nettomedia.c,v 1.8 2004/08/06 08:47:03 brandt Exp $
32 *
30 *
33 * $Begemot: bsnmp/snmp_mibII/mibII_nettomedia.c,v 1.7 2003/12/03 10:01:19 hbb Exp $
34 *
35 * Read-only implementation of the Arp table (ipNetToMediaTable)
36 *
37 * The problem with the table is, that we don't receive routing message
38 * when a) an arp table entry is resolved and b) when an arp table entry is
39 * deleted automatically. Therefor we need to poll the table from time to
40 * time.
41 */
42#include "mibII.h"
43#include "mibII_oid.h"
44
45#define ARPREFRESH 30
46
47struct mibarp *
48mib_find_arp(const struct mibif *ifp, struct in_addr in)
49{
50 struct mibarp *at;
31 * Read-only implementation of the Arp table (ipNetToMediaTable)
32 *
33 * The problem with the table is, that we don't receive routing message
34 * when a) an arp table entry is resolved and b) when an arp table entry is
35 * deleted automatically. Therefor we need to poll the table from time to
36 * time.
37 */
38#include "mibII.h"
39#include "mibII_oid.h"
40
41#define ARPREFRESH 30
42
43struct mibarp *
44mib_find_arp(const struct mibif *ifp, struct in_addr in)
45{
46 struct mibarp *at;
51 u_int32_t a = ntohl(in.s_addr);
47 uint32_t a = ntohl(in.s_addr);
52
53 if (get_ticks() >= mibarpticks + ARPREFRESH)
54 mib_arp_update();
55
56 TAILQ_FOREACH(at, &mibarp_list, link)
57 if (at->index.subs[0] == ifp->index &&
58 (at->index.subs[1] == ((a >> 24) & 0xff)) &&
59 (at->index.subs[2] == ((a >> 16) & 0xff)) &&
60 (at->index.subs[3] == ((a >> 8) & 0xff)) &&
61 (at->index.subs[4] == ((a >> 0) & 0xff)))
62 return (at);
63 return (NULL);
64}
65
66struct mibarp *
67mib_arp_create(const struct mibif *ifp, struct in_addr in, const u_char *phys,
68 size_t physlen)
69{
70 struct mibarp *at;
48
49 if (get_ticks() >= mibarpticks + ARPREFRESH)
50 mib_arp_update();
51
52 TAILQ_FOREACH(at, &mibarp_list, link)
53 if (at->index.subs[0] == ifp->index &&
54 (at->index.subs[1] == ((a >> 24) & 0xff)) &&
55 (at->index.subs[2] == ((a >> 16) & 0xff)) &&
56 (at->index.subs[3] == ((a >> 8) & 0xff)) &&
57 (at->index.subs[4] == ((a >> 0) & 0xff)))
58 return (at);
59 return (NULL);
60}
61
62struct mibarp *
63mib_arp_create(const struct mibif *ifp, struct in_addr in, const u_char *phys,
64 size_t physlen)
65{
66 struct mibarp *at;
71 u_int32_t a = ntohl(in.s_addr);
67 uint32_t a = ntohl(in.s_addr);
72
73 if ((at = malloc(sizeof(*at))) == NULL)
74 return (NULL);
75 at->flags = 0;
76
77 at->index.len = 5;
78 at->index.subs[0] = ifp->index;
79 at->index.subs[1] = (a >> 24) & 0xff;

--- 75 unchanged lines hidden ---
68
69 if ((at = malloc(sizeof(*at))) == NULL)
70 return (NULL);
71 at->flags = 0;
72
73 at->index.len = 5;
74 at->index.subs[0] = ifp->index;
75 at->index.subs[1] = (a >> 24) & 0xff;

--- 75 unchanged lines hidden ---