⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 v3cmpnt.c

📁 wm PNE 3.3 source code, running at more than vxworks6.x version.
💻 C
📖 第 1 页 / 共 2 页
字号:
/* *  Copyright 1984-2005 Wind River Systems, Inc. *  All rights reserved.  Provided under license only. *  Distribution or other use of this software is only *  permitted pursuant to the terms of a license agreement *  from Wind River Systems (and is otherwise prohibited). *  Refer to that license agreement for terms of use. */#include "copyright_wrs.h"/* * $Log: v3cmpnt.c,v $ * Revision 1.12  2003/01/15 14:05:19  josh * directory structure shifting * * Revision 1.11  2002/03/27 19:22:49  josh * rfc2575 MIB trees needed to be broken up into three separate files * so that there wouldn't be conflicts with the view table that's already * in the same area of the tree. * * Revision 1.10  2001/12/17 21:48:53  meister * Add missimg 4 objects from rfc2571 * * Revision 1.9  2001/12/05 23:07:56  meister * Add rfc2575 mib * * Revision 1.8  2001/12/05 18:48:20  josh * add dynamic funcptr init for lookup_SNMP_community * * Revision 1.7  2001/11/30 19:34:25  meister * exclude snmpv3io if not SNMP_VERSION_3_LICENSED. fix prototype warning * in v3cmpnt.c * * Revision 1.6  2001/11/15 21:53:50  josh * populate the proxy table a little * * Revision 1.5  2001/11/12 22:54:08  meister * Changed some DYNCFG_FUNCPTR's to DYNCFG_EXTERN_FUNCPTR's * * Revision 1.4  2001/11/08 22:18:37  meister * rework pathnames * * Revision 1.3  2001/11/06 21:50:55  josh * second (and hopefully final) pass of new path hacking * * Revision 1.2  2001/11/06 21:20:42  josh * revised new path hacking * * Revision 1.1.1.1  2001/11/05 17:47:51  tneale * Tornado shuffle * * Revision 1.1.2.10  2001/11/02 21:15:11  meister * envoy/h/vxprotos.h -> snmp/vxagent/h/vxprotos.h * * Revision 1.1.2.9  2001/11/02 17:20:24  meister * split out user and core dynamic config * * Revision 1.1.2.8  2001/10/19 21:50:49  meister * snmpdInstalledComponentsValue should be unsigned in all references. * * Revision 1.1.2.7  2001/10/19 21:09:34  meister * get rid of the message-queue method of communicating which components * are installed, in favor of a directly accessible bit-mask variable. We never * never used the message queue for anything the simple bit mask couldnt do. * * Revision 1.1.2.6  2001/10/16 20:52:11  meister * fix that snmpdLog message (initSmpV3Component) typo * * Revision 1.1.2.5  2001/10/16 20:07:22  josh * ...so we shouldn't be referring to it. * * Revision 1.1.2.4  2001/10/16 19:53:04  meister * Tornado 2 doesnt have a VX_USER_MODE #define. * * Revision 1.1.2.3  2001/09/27 01:10:16  meister * Split out coexistence support into V3 component * * Revision 1.1.2.2  2001/09/18 16:36:16  meister * snmpd config msgQ and mutex should have consistent names. * * Revision 1.1.2.1  2001/08/29 15:43:24  meister * component initialization for the vxworks snmpd components * *//* [clearcase]modification history-------------------01c,15apr05,AJS  Diffie-Hellman work01b,13apr05,AJS  Diffie-Hellman work01a,24nov03,job  update copyright information*/#include <vxWorks.h>#include <stdio.h>#include <msgQLib.h>#include <semLib.h>#include <taskLib.h>#include <wrn/wm/snmp/vxagent/snmpdLib.h>#include <wrn/wm/snmp/engine/vxcmpnts.h>#include <wrn/wm/snmp/vxagent/vxprotos.h>#include <wrn/wm/common/dyncfg.h>#include <wrn/wm/snmp/engine/v3_user.h>#include <wrn/wm/snmp/engine/v3_acc.h>#include <wrn/wm/snmp/engine/v3_trgt.h>#include <wrn/wm/snmp/engine/v3_ntfy.h>#include <wrn/wm/snmp/engine/v3_proxy.h>#include <wrn/wm/snmp/engine/v3_comm.h>#include <wrn/wm/snmp/engine/v3_con.h>#include <wrn/wm/snmp/engine/entlogic.h>#if INSTALL_SNMP_V3_DIFFIE_HELLMAN#include <wrn/wm/snmp/engine/v3_dh.h>#include <openssl/rand.h>#include <tickLib.h>#endif /* INSTALL_SNMP_V3_DIFFIE_HELLMAN */DYNCFG_EXTERN_FUNCPTR1(_nvhard_read_v3myid,int,char *)DYNCFG_EXTERN_FUNCPTR0(_nvhard_read_v3users,int)DYNCFG_EXTERN_FUNCPTR0(_nvhard_read_usmDHparams,int)DYNCFG_EXTERN_FUNCPTR0(_nvhard_read_v3groups,int)DYNCFG_EXTERN_FUNCPTR0(_nvhard_read_v3access,int)DYNCFG_EXTERN_FUNCPTR0(_nvhard_read_v3contexts,int)DYNCFG_EXTERN_FUNCPTR0(_nvhard_read_v3taddr,int)DYNCFG_EXTERN_FUNCPTR0(_nvhard_read_v3tparam,int)DYNCFG_EXTERN_FUNCPTR0(_nvhard_read_v3notify,int)DYNCFG_EXTERN_FUNCPTR0(_nvhard_read_v3nprof,int)DYNCFG_EXTERN_FUNCPTR0(_nvhard_read_v3nfilt,int)DYNCFG_EXTERN_FUNCPTR0(_nvhard_read_v3proxy,int)DYNCFG_EXTERN_FUNCPTR0(_nvhard_read_community,int)#if (INSTALL_SNMP_VXWORKS_VIRTUAL_STACK)DYNCFG_EXTERN_FUNCPTR1(_nvhard_vs_add, int, int)DYNCFG_EXTERN_FUNCPTR1(_nvhard_vs_remove, int, int)DYNCFG_EXTERN_FUNCPTR1(_vs_v3engine_set, void, ENT_LOGICAL_T *)#endif /*(INSTALL_SNMP_VXWORKS_VIRTUAL_STACK)*/DYNCFG_EXTERN_FUNCPTR0(v3_add_v3_mibs,void)DYNCFG_EXTERN_FUNCPTR3(lookup_SNMP_community,int,SNMP_PKT_T *,SNMPADDR_T *,                       SNMPADDR_T *)DYNCFG_EXTERN_FUNCPTR0(snmpCleanUserTable,void)DYNCFG_EXTERN_FUNCPTR0(snmpCleanSecurityToGroupTable,void)DYNCFG_EXTERN_FUNCPTR0(snmpCleanAccessTable,void)DYNCFG_EXTERN_FUNCPTR0(snmpCleanContextTable,void)DYNCFG_EXTERN_FUNCPTR0(snmpCleanV3Tree,void)DYNCFG_EXTERN_FUNCPTR0(snmpCleanTargetTables,void)DYNCFG_EXTERN_FUNCPTR0(snmpCleanNotifyTables,void)DYNCFG_EXTERN_FUNCPTR0(snmpCleanCommunityTable,void)DYNCFG_EXTERN_FUNCPTR0(snmpCleanProxyTable,void)    void registerSnmpV3Component (void);void v3_user_dyncfg_init (void);extern unsigned int snmpdInstalledComponentsValue;extern SEM_ID   snmpdConfigMutex;void initSnmpV3Component (void){       int task_mode;#if INSTALL_ENVOY_VXWORKS_TAE    task_mode = VX_USER_MODE;#else    task_mode = 0x0000;#endif    snmpdLog (SNMP_INFO, "InitSnmpV3Component() called\n");    taskSpawn ("tRegSnmpV3Component", 95, task_mode, 8182,                (FUNCPTR) registerSnmpV3Component, 0,0,0,0,0,0,0,0,0,0);}void v3_user_dyncfg_init (void){/* these are all from nvhard.c */DYNCFG_FUNCPTR_SET_DEFAULT(_nvhard_read_v3myid);DYNCFG_FUNCPTR_SET_DEFAULT(_nvhard_read_v3users);#if INSTALL_SNMP_V3_DIFFIE_HELLMANDYNCFG_FUNCPTR_SET_DEFAULT(_nvhard_read_usmDHparams);#endif /* INSTALL_SNMP_V3_DIFFIE_HELLMAN */DYNCFG_FUNCPTR_SET_DEFAULT(_nvhard_read_v3groups);DYNCFG_FUNCPTR_SET_DEFAULT(_nvhard_read_v3access);DYNCFG_FUNCPTR_SET_DEFAULT(_nvhard_read_v3contexts);/* these are from vsUtilLib.c */#if (INSTALL_SNMP_VXWORKS_VIRTUAL_STACK)DYNCFG_FUNCPTR_SET_DEFAULT(_nvhard_vs_add);DYNCFG_FUNCPTR_SET_DEFAULT(_nvhard_vs_remove);DYNCFG_FUNCPTR_SET_DEFAULT(_vs_v3engine_set);#endif /*(INSTALL_SNMP_VXWORKS_VIRTUAL_STACK)*/DYNCFG_FUNCPTR_SET_DEFAULT(snmpCleanUserTable);DYNCFG_FUNCPTR_SET_DEFAULT(snmpCleanSecurityToGroupTable);DYNCFG_FUNCPTR_SET_DEFAULT(snmpCleanAccessTable);DYNCFG_FUNCPTR_SET_DEFAULT(snmpCleanContextTable);DYNCFG_FUNCPTR_SET_DEFAULT(snmpCleanV3Tree);DYNCFG_FUNCPTR_SET_DEFAULT(v3_add_v3_mibs);#if INSTALL_ENVOY_SNMP_V3_TARGETDYNCFG_FUNCPTR_SET_DEFAULT(_nvhard_read_v3taddr);DYNCFG_FUNCPTR_SET_DEFAULT(_nvhard_read_v3tparam);DYNCFG_FUNCPTR_SET_DEFAULT(snmpCleanTargetTables);#if INSTALL_ENVOY_SNMP_V3_NOTIFYDYNCFG_FUNCPTR_SET_DEFAULT(_nvhard_read_v3notify);DYNCFG_FUNCPTR_SET_DEFAULT(_nvhard_read_v3nprof);DYNCFG_FUNCPTR_SET_DEFAULT(_nvhard_read_v3nfilt);DYNCFG_FUNCPTR_SET_DEFAULT(snmpCleanNotifyTables);#endif /* #if INSTALL_ENVOY_SNMP_V3_NOTIFY */#if INSTALL_ENVOY_SNMP_V3_PROXYDYNCFG_FUNCPTR_SET_DEFAULT(_nvhard_read_v3proxy);DYNCFG_FUNCPTR_SET_DEFAULT(snmpCleanProxyTable);#endif /* #if INSTALL_ENVOY_SNMP_V3_PROXY */#if INSTALL_ENVOY_SNMP_COEXISTENCEDYNCFG_FUNCPTR_SET_DEFAULT(_nvhard_read_community);DYNCFG_FUNCPTR_SET_DEFAULT(lookup_SNMP_community);DYNCFG_FUNCPTR_SET_DEFAULT(snmpCleanCommunityTable);#endif /* #if INSTALL_ENVOY_SNMP_COEXISTENCE */#endif /* #if INSTALL_ENVOY_SNMP_V3_TARGET */}void registerSnmpV3Component (void){    semTake (snmpdConfigMutex, WAIT_FOREVER);    snmpdInstalledComponentsValue |= SNMPD_VERSION_3_COMPONENT;    v3_dyncfg_init ();    v3_user_dyncfg_init ();    semGive (snmpdConfigMutex);}/**  From RFC2571.MIB  **  Subtree Object Identifier for Add_Node_From_Root **    snmpEngine OBJECT IDENTIFIER ::= { snmpFrameworkMIBObjects 1 }STATIC OIDC_T oid_v3snmp_engine_node[] = { 1, 3, 6, 1, 6, 3, 10, 2, 1 };OBJ_ID_T objid_v3snmp_engine_node = {  sizeof(oid_v3snmp_engine_node)/sizeof(OIDC_T),  oid_v3snmp_engine_node};**/extern OBJ_ID_T objid_v3snmp_engine_node;extern MIBNODE_T v3snmp_engine_node;/** From RFC2572.MIB  **  Subtree Object Identifier for Add_Node_From_Root **    snmpMPDMIB OBJECT IDENTIFIER ::= { snmpModules 11 }STATIC OIDC_T oid_v3snmp_mpdmib_node[] = { 1, 3, 6, 1, 6, 3, 11 };OBJ_ID_T objid_v3snmp_mpdmib_node = {  sizeof(oid_v3snmp_mpdmib_node)/sizeof(OIDC_T),  oid_v3snmp_mpdmib_node};**/extern OBJ_ID_T  objid_v3snmp_mpdmib_node;extern MIBNODE_T v3snmp_mpdmib_node;/** From RFC2573.MIB **  Subtree Object Identifier for Add_Node_From_Root **    snmpTargetMIB OBJECT IDENTIFIER ::= { snmpModules 12 }STATIC OIDC_T oid_v3snmp_targetmib_node[] = { 1, 3, 6, 1, 6, 3, 12 };OBJ_ID_T objid_v3snmp_targetmib_node = {  sizeof(oid_v3snmp_targetmib_node)/sizeof(OIDC_T),  oid_v3snmp_targetmib_node};STATIC OIDC_T oid_v3snmp_notifymib_node[] = { 1, 3, 6, 1, 6, 3, 13 };OBJ_ID_T objid_v3snmp_notifymib_node = {  sizeof(oid_v3snmp_notifymib_node)/sizeof(OIDC_T),  oid_v3snmp_notifymib_node};STATIC OIDC_T oid_v3snmp_proxymib_node[] = { 1, 3, 6, 1, 6, 3, 14 };OBJ_ID_T objid_v3snmp_proxymib_node = {  sizeof(oid_v3snmp_proxymib_node)/sizeof(OIDC_T),  oid_v3snmp_proxymib_node};**/extern OBJ_ID_T  objid_v3snmp_targetmib_node;extern MIBNODE_T v3snmp_targetmib_node;extern OBJ_ID_T  objid_v3snmp_notifymib_node;extern MIBNODE_T v3snmp_notifymib_node;extern OBJ_ID_T  objid_v3snmp_proxymib_node;extern MIBNODE_T v3snmp_proxymib_node;/** From RFC2574.mibSTATIC OIDC_T oid_v3usm_root_node[] = { 1, 3, 6, 1, 6, 3, 15 };OBJ_ID_T objid_v3usm_root_node = {  sizeof(oid_v3usm_root_node)/sizeof(OIDC_T),  oid_v3usm_root_node};**/extern OBJ_ID_T objid_v3usm_root_node;extern MIBNODE_T v3usm_root_node;/** From RFC2586.mibSTATIC OIDC_T oid_v3usm_dh_node[] = { 1, 3, 6, 1, 3, 101 };OBJ_ID_T objid_v3usm_dh_node = {  sizeof(oid_v3usm_dh_node)/sizeof(OIDC_T),  oid_v3usm_dh_node};**/extern OBJ_ID_T objid_v3usm_dh_node;extern MIBNODE_T v3usm_dh_node;/** From RFC2575.MIB  **  Subtree Object Identifier for Add_Node_From_Root **    vacmAccessTable OBJECT IDENTIFIER ::= { vacmMIBObjects 4 }STATIC OIDC_T oid_v3vacm_access_root_node[] = { 1, 3, 6, 1, 6, 3, 16, 1, 4 };OBJ_ID_T objid_v3vacm_access_root_node = {  sizeof(oid_v3vacm_access_root_node)/sizeof(OIDC_T),  oid_v3vacm_access_root_node}; **  Subtree Object Identifier for Add_Node_From_Root **    vacmContextTable OBJECT IDENTIFIER ::= { vacmMIBObjects 1 }STATIC OIDC_T oid_v3vacm_context_root_node[] = { 1, 3, 6, 1, 6, 3, 16, 1, 1 };OBJ_ID_T objid_v3vacm_context_root_node = {  sizeof(oid_v3vacm_context_root_node)/sizeof(OIDC_T),  oid_v3vacm_context_root_node}; **  Subtree Object Identifier for Add_Node_From_Root **    vacmSecurityToGroupTable OBJECT IDENTIFIER ::= { vacmMIBObjects 2 }STATIC OIDC_T oid_v3vacm_group_root_node[] = { 1, 3, 6, 1, 6, 3, 16, 1, 2 };OBJ_ID_T objid_v3vacm_group_root_node = {  sizeof(oid_v3vacm_group_root_node)/sizeof(OIDC_T),  oid_v3vacm_group_root_node};**/extern OBJ_ID_T objid_v3vacm_access_root_node;extern MIBNODE_T v3vacm_access_root_node;extern OBJ_ID_T objid_v3vacm_context_root_node;extern MIBNODE_T v3vacm_context_root_node;extern OBJ_ID_T objid_v3vacm_group_root_node;extern MIBNODE_T v3vacm_group_root_node;/** From RFC2576.MIB **  Subtree Object Identifier for Add_Node_From_Root **    snmpCommunityMIB OBJECT IDENTIFIER ::= { snmpModules 18 }STATIC OIDC_T oid_v3snmp_communitymib_node[] = { 1, 3, 6, 1, 6, 3, 18 };OBJ_ID_T objid_v3snmp_communitymib_node = {  sizeof(oid_v3snmp_communitymib_node)/sizeof(OIDC_T),  oid_v3snmp_communitymib_node};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -