snmp_vars.h
上传用户:liugui
上传日期:2007-01-04
资源大小:822k
文件大小:3k
源码类别:

代理服务器

开发平台:

Unix_Linux

  1. /* -*- c++ -*- */
  2. #ifndef _SNMP_VARS_H_
  3. #define _SNMP_VARS_H_
  4. /**********************************************************************
  5.  *
  6.  *           Copyright 1997 by Carnegie Mellon University
  7.  * 
  8.  *                       All Rights Reserved
  9.  * 
  10.  * Permission to use, copy, modify, and distribute this software and its
  11.  * documentation for any purpose and without fee is hereby granted,
  12.  * provided that the above copyright notice appear in all copies and that
  13.  * both that copyright notice and this permission notice appear in
  14.  * supporting documentation, and that the name of CMU not be
  15.  * used in advertising or publicity pertaining to distribution of the
  16.  * software without specific, written prior permission.
  17.  * 
  18.  * CMU DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
  19.  * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
  20.  * CMU BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
  21.  * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
  22.  * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
  23.  * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
  24.  * SOFTWARE.
  25.  * 
  26.  * Author: Ryan Troll <ryan+@andrew.cmu.edu>
  27.  * 
  28.  * $Id: snmp_vars.h,v 1.7 1998/04/04 01:43:51 kostas Exp $
  29.  * 
  30.  **********************************************************************/
  31. struct variable_list {
  32.     struct variable_list *next_variable; /* NULL for last variable */
  33.     oid *name; /* Object identifier of variable */
  34.     int name_length; /* number of subid's in name */
  35.     u_char type; /* ASN type of variable */
  36.     union { /* value of variable */
  37. int *integer;
  38. u_char *string;
  39. oid *objid;
  40.     } val;
  41.     int val_len;
  42. };
  43. #ifdef __cplusplus
  44. extern "C" {
  45. #endif
  46.     struct variable_list *snmp_var_new(oid *, int);
  47.     struct variable_list *snmp_var_clone(struct variable_list *);
  48.     void snmp_var_free(struct variable_list *);
  49.     u_char *snmp_var_EncodeVarBind(u_char *, int *, struct variable_list *, int);
  50.     u_char *snmp_var_DecodeVarBind(u_char *, int *, struct variable_list **, int);
  51. #ifdef __cplusplus
  52. }
  53. #endif
  54. #define MAX_NAME_LEN 64 /* number of subid's in a objid *//*      *RFC 1902:Structure of Management Information for SNMPv2
  55. *
  56.       *Defined Types
  57. *
  58.       */
  59. #define SMI_INTEGER     ASN_INTEGER
  60. #define SMI_STRING      ASN_OCTET_STR
  61. #define SMI_OBJID       ASN_OBJECT_ID
  62. #define SMI_NULLOBJ     ASN_NULL
  63. #define SMI_IPADDRESS  (ASN_APPLICATION | 0) /* OCTET STRING, net byte order */
  64. #define SMI_COUNTER32  (ASN_APPLICATION | 1) /* INTEGER */
  65. #define SMI_GAUGE32    (ASN_APPLICATION | 2) /* INTEGER */
  66. #define SMI_UNSIGNED32 SMI_GAUGE32
  67. #define SMI_TIMETICKS  (ASN_APPLICATION | 3) /* INTEGER */
  68. #define SMI_OPAQUE     (ASN_APPLICATION | 4) /* OCTET STRING */
  69. #define SMI_COUNTER64  (ASN_APPLICATION | 6) /* INTEGER */
  70. #define SMI_NOSUCHOBJECT   (ASN_CONTEXT | ASN_PRIMITIVE | 0x0)
  71. #define SMI_NOSUCHINSTANCE (ASN_CONTEXT | ASN_PRIMITIVE | 0x1)
  72. #define SMI_ENDOFMIBVIEW   (ASN_CONTEXT | ASN_PRIMITIVE | 0x2)
  73. typedef struct variable variable;
  74. typedef struct variable_list variable_list;
  75. #endif /* _SNMP_VARS_H_ */