-/* -*- c++ -*- */
-#ifndef _SNMP_VARS_H_
-#define _SNMP_VARS_H_
+#ifndef SQUID_SNMP_VARS_H
+#define SQUID_SNMP_VARS_H
/**********************************************************************
*
* Copyright 1997 by Carnegie Mellon University
- *
+ *
* All Rights Reserved
- *
+ *
* Permission to use, copy, modify, and distribute this software and its
* documentation for any purpose and without fee is hereby granted,
* provided that the above copyright notice appear in all copies and that
* supporting documentation, and that the name of CMU not be
* used in advertising or publicity pertaining to distribution of the
* software without specific, written prior permission.
- *
+ *
* CMU DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
* ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
* CMU BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
* WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
* SOFTWARE.
- *
+ *
* Author: Ryan Troll <ryan+@andrew.cmu.edu>
- *
- * $Id: snmp_vars.h,v 1.9 2001/01/07 09:55:22 hno Exp $
- *
+ *
+ * $Id$
+ *
**********************************************************************/
-struct variable_list {
- struct variable_list *next_variable; /* NULL for last variable */
- oid *name; /* Object identifier of variable */
- int name_length; /* number of subid's in name */
- u_char type; /* ASN type of variable */
- union { /* value of variable */
- int *integer;
- u_char *string;
- oid *objid;
- } val;
- int val_len;
-};
+#include "asn1.h"
#ifdef __cplusplus
extern "C" {
#endif
+ struct variable_list {
+ struct variable_list *next_variable; /* NULL for last variable */
+ oid *name; /* Object identifier of variable */
+ int name_length; /* number of subid's in name */
+ u_char type; /* ASN type of variable */
+ union { /* value of variable */
+ int *integer;
+ u_char *string;
+ oid *objid;
+ } val;
+ int val_len;
+ };
+
struct variable_list *snmp_var_new(oid *, int);
struct variable_list *snmp_var_new_integer(oid *, int, int, unsigned char);
struct variable_list *snmp_var_clone(struct variable_list *);
u_char *snmp_var_EncodeVarBind(u_char *, int *, struct variable_list *, int);
u_char *snmp_var_DecodeVarBind(u_char *, int *, struct variable_list **, int);
-#ifdef __cplusplus
-}
+#define MAX_NAME_LEN 64 /* number of subid's in a objid */
-#endif
-#define MAX_NAME_LEN 64 /* number of subid's in a objid *//* *RFC 1902:Structure of Management Information for SNMPv2 * *Defined Types
-*
- */
+ /* RFC 1902: Structure of Management Information for SNMPv2
+ *
+ * Defined Types
+ */
#define SMI_INTEGER ASN_INTEGER
#define SMI_STRING ASN_OCTET_STR
#define SMI_OBJID ASN_OBJECT_ID
#define SMI_TIMETICKS (ASN_APPLICATION | 3) /* INTEGER */
#define SMI_OPAQUE (ASN_APPLICATION | 4) /* OCTET STRING */
#define SMI_COUNTER64 (ASN_APPLICATION | 6) /* INTEGER */
-#define SMI_NOSUCHOBJECT (ASN_CONTEXT | ASN_PRIMITIVE | 0x0)
-#define SMI_NOSUCHINSTANCE (ASN_CONTEXT | ASN_PRIMITIVE | 0x1)
-#define SMI_ENDOFMIBVIEW (ASN_CONTEXT | ASN_PRIMITIVE | 0x2)
-typedef struct variable variable;
-typedef struct variable_list variable_list;
-#endif /* _SNMP_VARS_H_ */
+
+ /* constants for enums for the MIB nodes
+ * cachePeerAddressType (InetAddressType / ASN_INTEGER)
+ * cacheClientAddressType (InetAddressType / ASN_INTEGER)
+ * Defined Types
+ */
+
+#ifndef INETADDRESSTYPE_ENUMS
+#define INETADDRESSTYPE_ENUMS
+
+#define INETADDRESSTYPE_UNKNOWN 0
+#define INETADDRESSTYPE_IPV4 1
+#define INETADDRESSTYPE_IPV6 2
+#define INETADDRESSTYPE_IPV4Z 3
+#define INETADDRESSTYPE_IPV6Z 4
+#define INETADDRESSTYPE_DNS 16
+
+#endif /* INETADDRESSTYPE_ENUMS */
+
+
+ /*
+ * RFC 1905: Protocol Operations for SNMPv2
+ *
+ * Variable binding.
+ *
+ * VarBind ::=
+ * SEQUENCE {
+ * name ObjectName
+ * CHOICE {
+ * value ObjectSyntax
+ * unSpecified NULL
+ * noSuchObject[0] NULL
+ * noSuchInstance[1] NULL
+ * endOfMibView[2] NULL
+ * }
+ * }
+ */
+#define SMI_NOSUCHOBJECT (ASN_CONTEXT | ASN_PRIMITIVE | 0x0) /* noSuchObject[0] */
+#define SMI_NOSUCHINSTANCE (ASN_CONTEXT | ASN_PRIMITIVE | 0x1) /* noSuchInstance[1] */
+#define SMI_ENDOFMIBVIEW (ASN_CONTEXT | ASN_PRIMITIVE | 0x2) /* endOfMibView[2] */
+ typedef struct variable variable;
+ typedef struct variable_list variable_list;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* SQUID_SNMP_VARS_H */