Re: help - SNMP Trap manager registration and deregistrationdynamically...
majid namnabat <[email protected]>
| Newsgroups | gmane.network.net-snmp.user |
|---|---|
| Message-ID | <[email protected]> |
Dear,
I want to be able to register & unregister notification recievers. My
program has many errors & I correct must of them. Also, I found a perl
program. But my main problem is setting oidsnmpTargetAddrTDomain. the value
of this field must be set snmpUDPDomain.
but I can not set it. My code to set oidsnmpTargetAddrTDomain is similar to
this:
oid oidsnmpTargetAddrTDomain[] = {1, 3, 6, 1, 6, 3, 12, 1, 2, 1,
2,'i','n','t','e','r','n','a','l','0',0};//not accept
oid oidsnmpTargetAddrTDomain[] = {1, 3, 6, 1, 6, 3, 12, 1, 2, 1, 2, 0};
memset(&var, 0, sizeof(netsnmp_variable_list));
snmp_set_var_objid( &var, oidsnmpTargetAddrTDomain,
OID_LENGTH(oidsnmpTargetAddrTDomain));
snmp_set_var_typed_value(&var, ASN_OBJECT_ID, oidsnmpUDPDomain,
strlen(oidsnmpUDPDomain));
err = netsnmp_query_set( &var, sp );
snmp_log(LOG_ERR, "err : %d %d\n",err,nlen);
The above code is correct to set snmpTargetAddrTDomain? I think my main
problem was in this section.
I attached the perl program and also my program and output of my program.
My Program:
//////////////////////////////////////////////////////////////////////////////////////////////////////
snmp_log(LOG_ERR, "create oidsnmpTargetParamsRowStatus!!!\n");
memset(&var, 0, sizeof(netsnmp_variable_list));
nvalue = 5;
snmp_set_var_objid( &var, oidsnmpTargetParamsRowStatus,
OID_LENGTH(oidsnmpTargetParamsRowStatus));
snmp_set_var_typed_value(&var,ASN_INTEGER, (u_char *)&nvalue,
sizeof(nvalue));
err = netsnmp_query_set( &var, sp );
snmp_log(LOG_ERR, "err : %d\n",err);
//////////////////////////////////////////////////////////////////////////////////////////////////////
snmp_log(LOG_ERR, "set oidsnmpTargetParamsMPModel!!!\n");
memset(&var, 0, sizeof(netsnmp_variable_list));
//nvalue = 3;
nvalue = 0;
snmp_set_var_objid( &var,oidsnmpTargetParamsMPModel,
OID_LENGTH(oidsnmpTargetParamsMPModel));
snmp_set_var_typed_value(&var,ASN_INTEGER, (u_char *)&nvalue,
sizeof(nvalue));
err = netsnmp_query_set( &var, sp );
snmp_log(LOG_ERR, "err : %d\n",err);
////////////////////////////////////////////////////////////////////////
snmp_log(LOG_ERR, "set oidsnmpTargetParamsSecurityModel!!!\n");
memset(&var, 0, sizeof(netsnmp_variable_list));
//nvalue = 3;
nvalue = 1;
snmp_set_var_objid( &var,oidsnmpTargetParamsSecurityModel,
OID_LENGTH(oidsnmpTargetParamsSecurityModel));
snmp_set_var_typed_value(&var,ASN_INTEGER, (u_char *)&nvalue,
sizeof(nvalue));
err = netsnmp_query_set( &var, sp );
snmp_log(LOG_ERR, "err : %d\n",err);
////////////////////////////////////////////////////////////////////////
snmp_log(LOG_ERR, "set oidsnmpTargetParamsSecurityName!!!\n");
memset(&var, 0, sizeof(netsnmp_variable_list));
//strcpy(strvalue,"MD5User");
strcpy(strvalue,"public");
snmp_set_var_objid( &var,oidsnmpTargetParamsSecurityName,
OID_LENGTH(oidsnmpTargetParamsSecurityName));
snmp_set_var_typed_value(&var,ASN_OCTET_STR, (char *)&strvalue,
strlen(strvalue));
err = netsnmp_query_set( &var, sp );
snmp_log(LOG_ERR, "err : %d\n",err);
////////////////////////////////////////////////////////////////////////
snmp_log(LOG_ERR, "set oidsnmpTargetParamsSecurityLevel!!!\n");
memset(&var, 0, sizeof(netsnmp_variable_list));
//nvalue = 2;
nvalue = 1;
snmp_set_var_objid( &var,oidsnmpTargetParamsSecurityLevel,
OID_LENGTH(oidsnmpTargetParamsSecurityLevel));
snmp_set_var_typed_value(&var,ASN_INTEGER, (u_char *)&nvalue,
sizeof(nvalue));
err = netsnmp_query_set( &var, sp );
snmp_log(LOG_ERR, "err : %d\n",err);
////////////////////////////////////////////////////////////////////////
snmp_log(LOG_ERR, "set oidsnmpTargetParamsStorageType!!!\n");
memset(&var, 0, sizeof(netsnmp_variable_list));
nvalue = 3;
snmp_set_var_objid( &var,oidsnmpTargetParamsStorageType,
OID_LENGTH(oidsnmpTargetParamsStorageType));
snmp_set_var_typed_value(&var,ASN_INTEGER, (u_char *)&nvalue,
sizeof(nvalue));
err = netsnmp_query_set( &var, sp );
snmp_log(LOG_ERR, "err : %d\n",err);
//////////////////////////////////////////////////////////////////////////////////////////////////////
snmp_log(LOG_ERR, "active oidsnmpTargetParamsRowStatus!!!\n");
memset(&var, 0, sizeof(netsnmp_variable_list));
nvalue = 1;
snmp_set_var_objid( &var, oidsnmpTargetParamsRowStatus,
OID_LENGTH(oidsnmpTargetParamsRowStatus));
snmp_set_var_typed_value(&var,ASN_INTEGER, (u_char *)&nvalue,
sizeof(nvalue));
err = netsnmp_query_set( &var, sp );
snmp_log(LOG_ERR, "err : %d\n",err);
//////////////////////////////////////////////////////////////////////////////////////////////////////
snmp_log(LOG_ERR, "create oidsnmpTargetAddrRowStatus!!!\n");
memset(&var, 0, sizeof(netsnmp_variable_list));
nvalue = 5;
snmp_set_var_objid( &var,oidsnmpTargetAddrRowStatus,
OID_LENGTH(oidsnmpTargetAddrRowStatus));
snmp_set_var_typed_value(&var,ASN_INTEGER, (u_char *)&nvalue,
sizeof(nvalue));
err = netsnmp_query_set( &var, sp );
snmp_log(LOG_ERR, "err : %d\n",err);
//////////////////////////////////////////////////////////////////////////////////////////////////////
snmp_log(LOG_ERR, "set oidsnmpTargetAddrTDomain!!!\n");
memset(&var, 0, sizeof(netsnmp_variable_list));
memset(strvalue, 0 , 255);
strcpy(strvalue,"SNMPv2-TM::snmpUDPDomain");
int nlen = OID_LENGTH(oidsnmpUDPDomain);
snmp_set_var_objid( &var, oidsnmpTargetAddrTDomain,
OID_LENGTH(oidsnmpTargetAddrTDomain));
snmp_set_var_typed_value(&var, ASN_OBJECT_ID, oidsnmpUDPDomain,
strlen(oidsnmpUDPDomain));
//snmp_set_var_typed_value(&var, ASN_OCTET_STR, strvalue,
strlen(strvalue));
//snmp_set_var_typed_value(&var, ASN_OBJECT_ID, strvalue,
strlen(strvalue));
err = netsnmp_query_set( &var, sp );
snmp_log(LOG_ERR, "err : %d %d %d\n",err,nlen,strlen(oidsnmpUDPDomain));
//////////////////////////////////////////////////////////////////////////////////////////////////////
snmp_log(LOG_ERR, "set oidsnmpTargetAddrTAddress!!!\n");
memset(&var, 0, sizeof(netsnmp_variable_list));
snmp_set_var_objid( &var, oidsnmpTargetAddrTAddress,
OID_LENGTH(oidsnmpTargetAddrTAddress));
snmp_set_var_typed_value(&var, ASN_OCTET_STR, targetaddrname,
strlen(targetaddrname));
err = netsnmp_query_set( &var, sp );
snmp_log(LOG_ERR, "err : %d\n",err);
//////////////////////////////////////////////////////////////////////////////////////////////////////
snmp_log(LOG_ERR, "set oidsnmpTargetAddrTimeout!!!\n");
memset(&var, 0, sizeof(netsnmp_variable_list));
nvalue = 1000;
snmp_set_var_objid( &var, oidsnmpTargetAddrTimeout,
OID_LENGTH(oidsnmpTargetAddrTimeout));
snmp_set_var_typed_value(&var, ASN_INTEGER, (u_char *)&nvalue,
sizeof(nvalue));
err = netsnmp_query_set( &var, sp );
snmp_log(LOG_ERR, "err : %d\n",err);
//////////////////////////////////////////////////////////////////////////////////////////////////////
snmp_log(LOG_ERR, "set oidsnmpTargetAddrRetryCount!!!\n");
memset(&var, 0, sizeof(netsnmp_variable_list));
nvalue = 5;
snmp_set_var_objid( &var,oidsnmpTargetAddrRetryCount,
OID_LENGTH(oidsnmpTargetAddrRetryCount));
snmp_set_var_typed_value(&var,ASN_INTEGER, (u_char *)&nvalue,
sizeof(nvalue));
err = netsnmp_query_set( &var, sp );
snmp_log(LOG_ERR, "err : %d\n",err);
//////////////////////////////////////////////////////////////////////////////////////////////////////
snmp_log(LOG_ERR, "set oidsnmpTargetAddrTagList!!!\n");
memset(&var, 0, sizeof(netsnmp_variable_list));
strcpy(strvalue,"internal0");
snmp_set_var_objid( &var, oidsnmpTargetAddrTagList,
OID_LENGTH(oidsnmpTargetAddrTagList));
snmp_set_var_typed_value(&var,ASN_OCTET_STR, strvalue,
strlen(strvalue));
err = netsnmp_query_set( &var, sp );
snmp_log(LOG_ERR, "err : %d\n",err);
//////////////////////////////////////////////////////////////////////////////////////////////////////
snmp_log(LOG_ERR, "set oidsnmpTargetAddrParams!!!\n");
memset(&var, 0, sizeof(netsnmp_variable_list));
strcpy(strvalue,"internal0");
snmp_set_var_objid( &var, oidsnmpTargetAddrParams,
OID_LENGTH(oidsnmpTargetAddrParams));
snmp_set_var_typed_value(&var, ASN_OCTET_STR, strvalue,
strlen(strvalue));
err = netsnmp_query_set( &var, sp );
snmp_log(LOG_ERR, "err : %d\n",err);
//////////////////////////////////////////////////////////////////////////////////////////////////////
snmp_log(LOG_ERR, "set oidsnmpTargetAddrStorageType!!!\n");
memset(&var, 0, sizeof(netsnmp_variable_list));
nvalue = 3;
snmp_set_var_objid( &var, oidsnmpTargetAddrStorageType,
OID_LENGTH(oidsnmpTargetAddrStorageType));
snmp_set_var_typed_value(&var,ASN_INTEGER, (u_char *)&nvalue,
sizeof(nvalue));
err = netsnmp_query_set( &var, sp );
snmp_log(LOG_ERR, "err : %d\n",err);
//////////////////////////////////////////////////////////////////////////////////////////////////////
snmp_log(LOG_ERR, "active oidsnmpTargetAddrRowStatus!!!\n");
memset(&var, 0, sizeof(netsnmp_variable_list));
nvalue = 1;
snmp_set_var_objid( &var,oidsnmpTargetAddrRowStatus,
OID_LENGTH(oidsnmpTargetAddrRowStatus));
snmp_set_var_typed_value(&var,ASN_INTEGER, (u_char *)&nvalue,
sizeof(nvalue));
err = netsnmp_query_set( &var, sp );
snmp_log(LOG_ERR, "err : %d\n",err);
////////////////////////////////////////////////////////////////////////
snmp_log(LOG_ERR, "create oidsnmpNotifyRowstatus!!!\n");
memset(&var, 0, sizeof(netsnmp_variable_list));
nvalue = 5;
snmp_set_var_objid( &var,oidsnmpNotifyRowstatus,
OID_LENGTH(oidsnmpNotifyRowstatus));
snmp_set_var_typed_value(&var,ASN_INTEGER, (u_char *)&nvalue,
sizeof(nvalue));
err = netsnmp_query_set( &var, sp );
snmp_log(LOG_ERR, "err : %d\n",err);
////////////////////////////////////////////////////////////////////////
snmp_log(LOG_ERR, "set oidsnmpNotifyTag!!!\n");
memset(&var, 0, sizeof(netsnmp_variable_list));
strcpy(strvalue,"internal0");
snmp_set_var_objid( &var,oidsnmpNotifyTag,
OID_LENGTH(oidsnmpNotifyTag));
snmp_set_var_typed_value(&var,ASN_OCTET_STR, (char *)&strvalue,
strlen(strvalue));
err = netsnmp_query_set( &var, sp );
snmp_log(LOG_ERR, "err : %d\n",err);
////////////////////////////////////////////////////////////////////////
snmp_log(LOG_ERR, "set oidsnmpNotifyType!!!\n");
memset(&var, 0, sizeof(netsnmp_variable_list));
nvalue = 1;
snmp_set_var_objid( &var,oidsnmpNotifyType,
OID_LENGTH(oidsnmpNotifyType));
snmp_set_var_typed_value(&var,ASN_INTEGER, (u_char *)&nvalue,
sizeof(nvalue));
err = netsnmp_query_set( &var, sp );
snmp_log(LOG_ERR, "err : %d\n",err);
////////////////////////////////////////////////////////////////////////
snmp_log(LOG_ERR, "set oidsnmpNotifyStorageType!!!\n");
memset(&var, 0, sizeof(netsnmp_variable_list));
nvalue = 3;
snmp_set_var_objid( &var,oidsnmpNotifyStorageType,
OID_LENGTH(oidsnmpNotifyStorageType));
snmp_set_var_typed_value(&var,ASN_INTEGER, (u_char *)&nvalue,
sizeof(nvalue));
err = netsnmp_query_set( &var, sp );
snmp_log(LOG_ERR, "err : %d\n",err);
////////////////////////////////////////////////////////////////////////
snmp_log(LOG_ERR, "active oidsnmpNotifyRowstatus!!!\n");
memset(&var, 0, sizeof(netsnmp_variable_list));
nvalue = 1;
snmp_set_var_objid( &var,oidsnmpNotifyRowstatus,
OID_LENGTH(oidsnmpNotifyRowstatus));
snmp_set_var_typed_value(&var,ASN_INTEGER, (u_char *)&nvalue,
sizeof(nvalue));
err = netsnmp_query_set( &var, sp );
snmp_log(LOG_ERR, "err : %d\n",err);
snmp_log(LOG_ERR, "set finished!!!\n");
// snmp_free_varbind(&var);
snmp_close(sp);
Output of my program:
create oidsnmpTargetParamsRowStatus!!!
err : 0
set oidsnmpTargetParamsMPModel!!!
snmpTargetParamsEntry: write to snmpTargetParamsMPModel: BAD OID
err : 18
set oidsnmpTargetParamsSecurityModel!!!
snmpTargetParamsEntry: write to snmpTargetParamsSecModel: BAD OID
err : 18
set oidsnmpTargetParamsSecurityName!!!
snmpTargetParamsEntry: write to snmpTargetParamsSecName: BAD OID
err : 18
set oidsnmpTargetParamsSecurityLevel!!!
snmpTargetParamsEntry: write to snmpTargetParamsSecLevel: BAD OID
err : 18
set oidsnmpTargetParamsStorageType!!!
snmpTargetParamsEntry: write to snmpTargetParamsStorageType: BAD OID
err : 18
active oidsnmpTargetParamsRowStatus!!!
err : 12
create oidsnmpTargetAddrRowStatus!!!
err : 0
set oidsnmpTargetAddrTDomain!!!
snmp_build: unknown failureerr : -1 3 13
set oidsnmpTargetAddrTAddress!!!
snmpTargetAddrEntry: write to snmpTargetAddrTAddress: BAD OID!
err : 18
set oidsnmpTargetAddrTimeout!!!
snmpTargetAddrEntry: write to snmpTargetAddrTimeout : BAD OID
err : 2
set oidsnmpTargetAddrRetryCount!!!
snmpTargetAddrEntry: write to snmpTargetAddrTimeout: BAD OID
err : 18
set oidsnmpTargetAddrTagList!!!
snmpTargetAddrEntry: write to snmpTargetAddrTagList: BAD OID!
err : 18
set oidsnmpTargetAddrParams!!!
snmpTargetAddrEntry: write to snmpTargetAddrParams: BAD OID!
err : 18
set oidsnmpTargetAddrStorageType!!!
snmpTargetAddrEntry: write to snmpTargetAddrStorageType: BAD OID
err : 18
active oidsnmpTargetAddrRowStatus!!!
err : 12
create oidsnmpNotifyRowstatus!!!
snmpNotifyTable: var_snmpNotifyTable: Entering...
snmpNotifyTable: write_snmpNotifyRowStatus entering action=0...
snmpNotifyTable: write_snmpNotifyRowStatus entering action=4...
err : 12
set oidsnmpNotifyTag!!!
snmpNotifyTable: var_snmpNotifyTable: Entering...
snmpNotifyTable: write_snmpNotifyTag entering action=0...
snmpNotifyTable: write_snmpNotifyTag entering action=1...
snmpNotifyTable: write_snmpNotifyTag entering action=2...
snmpNotifyTable: write_snmpNotifyTag entering action=3...
err : 0
set oidsnmpNotifyType!!!
snmpNotifyTable: var_snmpNotifyTable: Entering...
snmpNotifyTable: write_snmpNotifyType entering action=0...
snmpNotifyTable: write_snmpNotifyType entering action=1...
snmpNotifyTable: write_snmpNotifyType entering action=2...
snmpNotifyTable: write_snmpNotifyType entering action=3...
err : 0
set oidsnmpNotifyStorageType!!!
snmpNotifyTable: var_snmpNotifyTable: Entering...
snmpNotifyTable: write_snmpNotifyStorageType entering action=0...
snmpNotifyTable: write_snmpNotifyStorageType entering action=1...
snmpNotifyTable: write_snmpNotifyStorageType entering action=2...
snmpNotifyTable: write_snmpNotifyStorageType entering action=3...
err : 0
active oidsnmpNotifyRowstatus!!!
snmpNotifyTable: var_snmpNotifyTable: Entering...
snmpNotifyTable: write_snmpNotifyRowStatus entering action=0...
snmpNotifyTable: write_snmpNotifyRowStatus entering action=1...
snmpNotifyTable: write_snmpNotifyRowStatus entering action=2...
snmpNotifyTable: write_snmpNotifyRowStatus entering action=3...
err : 0
Perl Code:
if [ "-r" == "$1" ] ; then
HOST=$2
NAME=$3
COMMUNITY=$4
snmpset -c public -v 2c 127.0.0.1 snmpNotifyRowStatus.'internal0' i
destroy
snmpset -c public -v 2c 127.0.0.1 snmpTargetAddrRowStatus.'internal0' i
destroy
snmpset -c public -v 2c 127.0.0.1 snmpTargetParamsRowStatus.'internal0'
i destroy
exit 0
fi
HOST=$1
NAME=$2
SINK=$3
COMMUNITY=$4
snmpset -v2c -c public 127.0.0.1 snmpTargetParamsRowStatus.'internal0' i
createAndWait
snmpset -v2c -c public 127.0.0.1 snmpTargetParamsMPModel.'internal0' i 0
snmpTargetParamsSecurityModel.'internal0' i 1
snmpTargetParamsSecurityName.'internal0' s "public"
snmpTargetParamsSecurityLevel.'internal0' i 1
snmpTargetParamsRowStatus.'internal0' i active
snmpset -v2c -c public 127.0.0.1 \
snmpTargetAddrRowStatus.'internal0' i createAndWait
snmpset -v2c -c public 127.0.0.1 \
snmpTargetAddrTDomain.'internal0' o snmpUDPDomain \
snmpTargetAddrTAddress.'internal0' d $SINK.0.162 \
snmpTargetAddrTimeout.'internal0' i 0 \
snmpTargetAddrRetryCount.'internal0' i 0 \
snmpTargetAddrTagList.'internal0' s $NAME \
snmpTargetAddrParams.'internal0' s $NAME \
snmpTargetAddrRowStatus.'internal0' i active
snmpset -v2c -c public 127.0.0.1 \
snmpNotifyRowStatus.'internal0' i createAndWait
snmpset -v2c -c public 127.0.0.1 \
snmpNotifyTag.'internal0' s $NAME \
snmpNotifyType.'internal0' i trap \
snmpNotifyRowStatus.'internal0' i active
On Fri, Jan 22, 2010 at 2:48 PM, Dave Shield <[email protected]>wrote:
> 2010/1/22 Borra, Kishore Babu <[email protected]>:
> > Right now Iam using the below api as mentioned, which works fine for
> UnRegistering all the Notfication receivers.:-
> >
> > snmp_call_callbacks(SNMP_CALLBACK_APPLICATION,
> > SNMPD_CALLBACK_PRE_UPDATE_CONFIG, NULL);
>
> Fair enough.
> But bear in mind that this may well affect other MIB modules
> as well. It's designed to be called immediately before
> re-reading the config files, so will typically drop *all*
> snmpd.conf-based settings, for a wide variety of MIB modules.
>
> Invoking the pre-update callback *without* then re-loading the
> config files may result in the loss of other settings.
>
> Dave
>
>
> ------------------------------------------------------------------------------
> Throughout its 18-year history, RSA Conference consistently attracts the
> world's best and brightest in the field, creating opportunities for
> Conference
> attendees to learn about information security's most important issues
> through
> interactions with peers, luminaries and emerging and established companies.
> http://p.sf.net/sfu/rsaconf-dev2dev
> _______________________________________________
> Net-snmp-users mailing list
> [email protected]
> Please see the following page to unsubscribe or change other options:
> https://lists.sourceforge.net/lists/listinfo/net-snmp-users
>
------------------------------------------------------------------------------
SOLARIS 10 is the OS for Data Centers - provides features such as DTrace,
Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW
http://p.sf.net/sfu/solaris-dev2dev
_______________________________________________
Net-snmp-users mailing list
[email protected]
Please see the following page to unsubscribe or change other options:
https://lists.sourceforge.net/lists/listinfo/net-snmp-users