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 --- |