diff packages/net/snmp/lib/current/include/snmp_impl.h @ 103:95f3e12a6327 ecos-sw-2000-06-23

Merge from eCos master repository on 2000-06-23-16:41:10-BST
author jlarmour
date Fri, 23 Jun 2000 17:06:31 +0000
parents
children e0c0827131d1
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/packages/net/snmp/lib/current/include/snmp_impl.h
@@ -0,0 +1,223 @@
+//==========================================================================
+//
+//      ./lib/current/include/snmp_impl.h
+//
+//
+//==========================================================================
+//####COPYRIGHTBEGIN####
+//                                                                          
+// -------------------------------------------                              
+// The contents of this file are subject to the Red Hat eCos Public License 
+// Version 1.1 (the "License"); you may not use this file except in         
+// compliance with the License.  You may obtain a copy of the License at    
+// http://www.redhat.com/                                                   
+//                                                                          
+// Software distributed under the License is distributed on an "AS IS"      
+// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the 
+// License for the specific language governing rights and limitations under 
+// the License.                                                             
+//                                                                          
+// The Original Code is eCos - Embedded Configurable Operating System,      
+// released September 30, 1998.                                             
+//                                                                          
+// The Initial Developer of the Original Code is Red Hat.                   
+// Portions created by Red Hat are                                          
+// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.                             
+// All Rights Reserved.                                                     
+// -------------------------------------------                              
+//                                                                          
+//####COPYRIGHTEND####
+//####UCDSNMPCOPYRIGHTBEGIN####
+//
+// -------------------------------------------
+//
+// Portions of this software may have been derived from the UCD-SNMP
+// project,  <http://ucd-snmp.ucdavis.edu/>  from the University of
+// California at Davis, which was originally based on the Carnegie Mellon
+// University SNMP implementation.  Portions of this software are therefore
+// covered by the appropriate copyright disclaimers included herein.
+//
+// The release used was version 4.1.2 of May 2000.  "ucd-snmp-4.1.2"
+// -------------------------------------------
+//
+//####UCDSNMPCOPYRIGHTEND####
+//==========================================================================
+//#####DESCRIPTIONBEGIN####
+//
+// Author(s):    hmt
+// Contributors: hmt
+// Date:         2000-05-30
+// Purpose:      Port of UCD-SNMP distribution to eCos.
+// Description:  
+//              
+//
+//####DESCRIPTIONEND####
+//
+//==========================================================================
+/********************************************************************
+       Copyright 1989, 1991, 1992 by Carnegie Mellon University
+
+			  Derivative Work -
+Copyright 1996, 1998, 1999, 2000 The Regents of the University of California
+
+			 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 appears in all copies and
+that both that copyright notice and this permission notice appear in
+supporting documentation, and that the name of CMU and The Regents of
+the University of California not be used in advertising or publicity
+pertaining to distribution of the software without specific written
+permission.
+
+CMU AND THE REGENTS OF THE UNIVERSITY OF CALIFORNIA DISCLAIM ALL
+WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL CMU OR
+THE REGENTS OF THE UNIVERSITY OF CALIFORNIA BE LIABLE FOR ANY SPECIAL,
+INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+FROM THE LOSS OF USE, DATA OR PROFITS, 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.
+*********************************************************************/
+#ifndef SNMP_IMPL_H
+#define SNMP_IMPL_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+* file: snmp_impl.h
+*/
+
+/*
+ * Definitions for SNMP implementation.
+ *
+ *
+ */
+/***********************************************************
+	Copyright 1988, 1989 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
+both that copyright notice and this permission notice appear in 
+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
+ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+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.
+******************************************************************/
+
+#include<stdio.h>
+
+#define COMMUNITY_MAX_LEN	256
+
+/* Space for character representation of an object identifier */
+#define SPRINT_MAX_LEN		2560
+
+
+#ifndef NULL
+#define NULL 0
+#endif
+
+#ifndef TRUE
+#define TRUE	1
+#endif
+#ifndef FALSE
+#define FALSE	0
+#endif
+
+#define READ	    1
+#define WRITE	    0
+
+#define RESERVE1    0
+#define RESERVE2    1
+#define ACTION	    2
+#define COMMIT      3
+#define FREE        4
+#define UNDO        5
+#define FINISHED_SUCCESS        9
+#define FINISHED_FAILURE	10
+
+/* Access control statements for the agent */
+#define RONLY	0x1	/* read access only */
+#define RWRITE	0x2	/* read and write access (must have 0x2 bit set) */
+
+#define NOACCESS 0x0000	/* no access for anybody */
+
+/* defined types (from the SMI, RFC 1157) */
+#define ASN_IPADDRESS   (ASN_APPLICATION | 0)
+#define ASN_COUNTER	(ASN_APPLICATION | 1)
+#define ASN_GAUGE	(ASN_APPLICATION | 2)
+#define ASN_UNSIGNED    (ASN_APPLICATION | 2)  /* RFC 1902 - same as GAUGE */
+#define ASN_TIMETICKS   (ASN_APPLICATION | 3)
+#define ASN_OPAQUE	(ASN_APPLICATION | 4)  /* changed so no conflict with other includes */
+
+/* defined types (from the SMI, RFC 1442) */
+#define ASN_NSAP	(ASN_APPLICATION | 5)  /* historic - don't use */
+#define ASN_COUNTER64   (ASN_APPLICATION | 6)
+#define ASN_UINTEGER    (ASN_APPLICATION | 7)  /* historic - don't use */
+
+#ifdef OPAQUE_SPECIAL_TYPES
+/* defined types from draft-perkins-opaque-01.txt */
+#define ASN_FLOAT	    (ASN_APPLICATION | 8)
+#define ASN_DOUBLE	    (ASN_APPLICATION | 9)
+#define ASN_INTEGER64        (ASN_APPLICATION | 10)
+#define ASN_UNSIGNED64       (ASN_APPLICATION | 11)
+#endif /* OPAQUE_SPECIAL_TYPES */
+
+/* #define CMU_COMPATIBLE */
+#ifdef CMU_COMPATIBLE
+#define INTEGER	    ASN_INTEGER
+#define STRING	    ASN_OCTET_STR
+#define OBJID	    ASN_OBJECT_ID
+#define NULLOBJ	    ASN_NULL
+#define BITSTRING   ASN_BIT_STR  /* HISTORIC - don't use */
+#define IPADDRESS   ASN_IPADDRESS
+#define COUNTER	    ASN_COUNTER
+#define GAUGE	    ASN_GAUGE
+#define UNSIGNED    ASN_UNSIGNED
+#define TIMETICKS   ASN_TIMETICKS
+#define ASNT_OPAQUE ASN_OPAQUE
+#define NSAP	    ASN_NSAP
+#define COUNTER64   ASN_COUNTER64
+#define UINTEGER    ASN_UINTEGER
+#endif /* CMU_COMPATIBLE */
+
+/* changed to ERROR_MSG to eliminate conflict with other includes */
+#define ERROR_MSG(string)	snmp_set_detail(string)
+
+/* from snmp.c */
+extern u_char	sid[];	/* size SID_MAX_LEN */
+extern int snmp_errno;
+
+
+/*
+ * For calling secauth_build, FIRST_PASS is an indication that a new nonce
+ * and lastTimeStamp should be recorded.  LAST_PASS is an indication that
+ * the packet should be checksummed and encrypted if applicable, in
+ * preparation for transmission.
+ * 0 means do neither, FIRST_PASS | LAST_PASS means do both.
+ * For secauth_parse, FIRST_PASS means decrypt the packet, otherwise leave it
+ * alone.  LAST_PASS is ignored.
+ */
+#define FIRST_PASS	1
+#define	LAST_PASS	2
+u_char	*snmp_comstr_parse(u_char *, size_t *, u_char *, size_t *, long *);
+u_char	*snmp_comstr_build (u_char *, size_t *, u_char *, size_t *, long *, size_t);
+
+int has_access (u_char, int, int, int);
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* SNMP_IMPL_H */