snmp.c (124861) | snmp.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/lib/snmp.c,v 1.38 2004/08/06 08:46:53 brandt Exp $ |
32 * | 30 * |
33 * $Begemot: bsnmp/lib/snmp.c,v 1.37 2003/12/08 17:11:58 hbb Exp $ 34 * | |
35 * SNMP 36 */ 37#include <sys/types.h> 38#include <sys/socket.h> 39#include <stdio.h> 40#include <stdlib.h> 41#include <stddef.h> 42#include <stdarg.h> | 31 * SNMP 32 */ 33#include <sys/types.h> 34#include <sys/socket.h> 35#include <stdio.h> 36#include <stdlib.h> 37#include <stddef.h> 38#include <stdarg.h> |
39#include <stdint.h> |
|
43#include <string.h> 44#include <ctype.h> 45#include <netdb.h> 46#include <errno.h> 47 48#include "asn1.h" 49#include "snmp.h" 50#include "snmppriv.h" 51 52static void snmp_error_func(const char *, ...); 53static void snmp_printf_func(const char *, ...); 54 55void (*snmp_error)(const char *, ...) = snmp_error_func; 56void (*snmp_printf)(const char *, ...) = snmp_printf_func; 57 | 40#include <string.h> 41#include <ctype.h> 42#include <netdb.h> 43#include <errno.h> 44 45#include "asn1.h" 46#include "snmp.h" 47#include "snmppriv.h" 48 49static void snmp_error_func(const char *, ...); 50static void snmp_printf_func(const char *, ...); 51 52void (*snmp_error)(const char *, ...) = snmp_error_func; 53void (*snmp_printf)(const char *, ...) = snmp_printf_func; 54 |
58 | |
59/* 60 * Get the next variable binding from the list. 61 * ASN errors on the sequence or the OID are always fatal. 62 */ 63static enum asn_err 64get_var_binding(struct asn_buf *b, struct snmp_value *binding) 65{ 66 u_char type; --- 972 unchanged lines hidden (view full) --- 1039 v->ipaddress[3] = he->h_addr[3]; 1040 return (0); 1041 } 1042 1043 case SNMP_SYNTAX_COUNTER: 1044 case SNMP_SYNTAX_GAUGE: 1045 case SNMP_SYNTAX_TIMETICKS: 1046 { | 55/* 56 * Get the next variable binding from the list. 57 * ASN errors on the sequence or the OID are always fatal. 58 */ 59static enum asn_err 60get_var_binding(struct asn_buf *b, struct snmp_value *binding) 61{ 62 u_char type; --- 972 unchanged lines hidden (view full) --- 1035 v->ipaddress[3] = he->h_addr[3]; 1036 return (0); 1037 } 1038 1039 case SNMP_SYNTAX_COUNTER: 1040 case SNMP_SYNTAX_GAUGE: 1041 case SNMP_SYNTAX_TIMETICKS: 1042 { |
1047 u_int64_t sub; | 1043 uint64_t sub; |
1048 1049 sub = strtoull(str, &end, 0); 1050 if (*end != '\0' || sub > 0xffffffff) 1051 return (-1); | 1044 1045 sub = strtoull(str, &end, 0); 1046 if (*end != '\0' || sub > 0xffffffff) 1047 return (-1); |
1052 v->uint32 = (u_int32_t)sub; | 1048 v->uint32 = (uint32_t)sub; |
1053 return (0); 1054 } 1055 1056 case SNMP_SYNTAX_COUNTER64: 1057 v->counter64 = strtoull(str, &end, 0); 1058 if (*end != '\0') 1059 return (-1); 1060 return (0); --- 25 unchanged lines hidden --- | 1049 return (0); 1050 } 1051 1052 case SNMP_SYNTAX_COUNTER64: 1053 v->counter64 = strtoull(str, &end, 0); 1054 if (*end != '\0') 1055 return (-1); 1056 return (0); --- 25 unchanged lines hidden --- |