Re: trapsink with variable ip destination

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
>         u_char oidsnmpUDPDomain[] =  {'s', 'n', 'm', 'p', 'U', 'D',
> 'P','D','o','m','a','i','n',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 Mon, Feb 1, 2010 at 4:16 PM, majid namnabat <[email protected]> wrote:

> Dear,
> I try to use snmp_open & netsnmp_query_set functions, I write a function
> similar attached code. But it's not work.
> Please guide me more! How can I create  a row for a table with
> netsnmp_query_set function. In this table row indexes determined by strings
> such as 'internal0'. How can I specify  these oids?
> for example to read snmpTargetAddrTAddress I must type:
> snmpget -v2c -c public 192.168.20.5  1.3.6.1.6.3.12.1.2.1.3.'internal0'
> But how can I develop a code to work similar this?
> What's the problem of my code?
>
> Thanks, Namnabat
>
>
> void SetTrap()
> {
>     oid oidsnmpTargetAddrTDomain[] = {1, 3, 6, 1, 6, 3, 12, 1, 2, 1, 2, 0};
>     oid oidsnmpTargetAddrTAddress[] = {1, 3, 6, 1, 6, 3, 12, 1, 2, 1, 3,
> 0};
>     oid oidsnmpTargetAddrTimeout[] = {1, 3, 6, 1, 6, 3, 12, 1, 2, 1, 4, 0};
>     oid oidsnmpTargetAddrRetryCount[] = {1, 3, 6, 1, 6, 3, 12, 1, 2, 1, 5,
> 0};
>     oid oidsnmpTargetAddrTagList[] = {1, 3, 6, 1, 6, 3, 12, 1, 2, 1, 6, 0};
>     oid oidsnmpTargetAddrParams[] = {1, 3, 6, 1, 6, 3, 12, 1, 2, 1, 7, 0};
>     oid oidsnmpTargetAddrStorageType[] = {1, 3, 6, 1, 6, 3, 12, 1, 2, 1, 8,
> 0};
>     oid oidsnmpTargetAddrRowStatus[] = {1, 3, 6, 1, 6, 3, 12, 1, 2, 1, 9,
> 0};
>     oid oidsnmpUDPDomain[] = {1, 3, 6, 1, 6, 1, 1, 0};
>
>     char targetaddrname[5];
>     char strvalue[255];
>     int nvalue;
>     targetaddrname[0]=192; targetaddrname[1]=168; targetaddrname[2]=20;
> targetaddrname[3]=99; targetaddrname[4]=162;
>
>     struct snmp_session ss, *sp;
>     struct oid *op;
>     netsnmp_variable_list var;
>      netsnmp_variable_list *_returnVar;
>
>     netsnmp_variable_list *var_list = NULL;
>
>     snmp_sess_init(&ss);                        /* initialize session */
>     ss.version = SNMP_VERSION_2c;
>     ss.remote_port = SNMP_DEFAULT_REMPORT;
>     ss.community="public";
>     ss.community_len = strlen(ss.community);
>     snmp_synch_setup(&ss);
>
>
>     //if (session.remote_port == SNMP_DEFAULT_REMPORT)
>     //    session.remote_port = SNMP_TRAP_PORT;
>
>     if (!(sp = snmp_open(&ss))) {
>       snmp_perror("snmp_open");
>       snmp_log(LOG_ERR, "something horrible happened!!!\n");
>       return;
>     }
>
>     memset( &var_list, 0, sizeof(var_list));
>
>     _returnVar = snmp_varlist_add_variable( &var_list,
>         oidsnmpTargetAddrTDomain, OID_LENGTH(oidsnmpTargetAddrTDomain),
>         ASN_OBJECT_ID, oidsnmpUDPDomain, OID_LENGTH(oidsnmpUDPDomain));
>
>        snmp_log(LOG_ERR, "variable!\n");
>
>     _returnVar = snmp_varlist_add_variable( &var_list,
>         oidsnmpTargetAddrTAddress,  OID_LENGTH(oidsnmpTargetAddrTAddress),
>         ASN_OCTET_STR, targetaddrname, strlen(targetaddrname));
>     nvalue = 1000;
>
>         snmp_log(LOG_ERR, "variable!\n");
>
>     _returnVar = snmp_varlist_add_variable( &var_list,
>         oidsnmpTargetAddrTimeout, OID_LENGTH(oidsnmpTargetAddrTimeout),
>         ASN_INTEGER, (u_char *)&nvalue, sizeof(nvalue));
>
>     snmp_log(LOG_ERR, "variable!\n");
>
>     nvalue = 5;
>     if(_returnVar != NULL)
>     {
>     _returnVar = snmp_varlist_add_variable( &var_list,
>         oidsnmpTargetAddrRetryCount,
> OID_LENGTH(oidsnmpTargetAddrRetryCount),
>         ASN_INTEGER, (u_char *)&nvalue, sizeof(nvalue));
>     }
>          snmp_log(LOG_ERR, "variable!\n");
>
>     if(_returnVar != NULL)
>     {
>     strcpy(strvalue,"internal0");
>     _returnVar = snmp_varlist_add_variable( &var_list,
>         oidsnmpTargetAddrTagList,  OID_LENGTH(oidsnmpTargetAddrTagList),
>         ASN_OCTET_STR, strvalue, strlen(strvalue));
>     }
>         snmp_log(LOG_ERR, "variable!\n");
>
>     if(_returnVar != NULL)
>     {
>     strcpy(strvalue,"internal0");
>     _returnVar = snmp_varlist_add_variable( &var_list,
>         oidsnmpTargetAddrParams,  OID_LENGTH(oidsnmpTargetAddrParams),
>         ASN_OCTET_STR, strvalue, strlen(strvalue));
>     }
>         snmp_log(LOG_ERR, "variable!\n");
>
>
>     if(_returnVar != NULL)
>     {
>     nvalue = 5;
>     _returnVar = snmp_varlist_add_variable( &var_list,
>         oidsnmpTargetAddrStorageType,
> OID_LENGTH(oidsnmpTargetAddrStorageType),
>         ASN_INTEGER, (u_char *)&nvalue, sizeof(nvalue));
>     }
>     snmp_log(LOG_ERR, "last variable!\n");
>
>
>     if(_returnVar != NULL)
>     {
>     nvalue = 1;
>     _returnVar = snmp_varlist_add_variable( &var_list,
>         oidsnmpTargetAddrRowStatus,
> OID_LENGTH(oidsnmpTargetAddrRowStatus),
>         ASN_INTEGER, (u_char *)&nvalue, sizeof(nvalue));
>     }
>         snmp_log(LOG_ERR, "before first netsnmp_query_set!!!\n");
>
>     netsnmp_query_set( &var_list, sp );
>
>
>         snmp_log(LOG_ERR, "after first netsnmp_query_set!!!\n");
>
>     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,
> OID_LENGTH(oidsnmpUDPDomain));
>     netsnmp_query_set( &var, sp );
>
>     memset(&var, 0, sizeof(netsnmp_variable_list));
>
>         snmp_log(LOG_ERR, "after second netsnmp_query_set!!!\n");
>
>     snmp_set_var_objid( &var, oidsnmpTargetAddrTAddress,
> OID_LENGTH(oidsnmpTargetAddrTAddress));
>     snmp_set_var_typed_value(&var, ASN_OCTET_STR, targetaddrname,
> strlen(targetaddrname));
>     netsnmp_query_set( &var, sp );
>
>         snmp_log(LOG_ERR, "after third netsnmp_query_set!!!\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));
>     netsnmp_query_set( &var, sp );
>
>         snmp_log(LOG_ERR, "after forth netsnmp_query_set!!!\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));
>
>     netsnmp_query_set( &var, sp );
>
>         snmp_log(LOG_ERR, "after fifth netsnmp_query_set!!!\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));
>
>     netsnmp_query_set( &var, sp );
>
>         snmp_log(LOG_ERR, "after sixth netsnmp_query_set!!!\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));
>
>     netsnmp_query_set( &var, sp );
>
>         snmp_log(LOG_ERR, "after seventh netsnmp_query_set!!!\n");
>
>     memset(&var, 0, sizeof(netsnmp_variable_list));
>
>     nvalue = 5;
>     snmp_set_var_objid( &var, oidsnmpTargetAddrStorageType,
> OID_LENGTH(oidsnmpTargetAddrStorageType));
>     snmp_set_var_typed_value(&var,ASN_INTEGER, (u_char *)&nvalue,
> sizeof(nvalue));
>
>     netsnmp_query_set( &var, sp );
>
>         snmp_log(LOG_ERR, "after eighth netsnmp_query_set!!!\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));
>
>     netsnmp_query_set( &var, sp );
>
>     snmp_log(LOG_ERR, "after nineth netsnmp_query_set!!!\n");
>     snmp_free_varbind(var_list);
>
>
> }
> On Mon, Jan 18, 2010 at 11:43 AM, Dave Shield <[email protected]>wrote:
>
>> 2010/1/18 majid namnabat <[email protected]>:
>> > In there any way (standard & not standard) to manage trap destinations
>> > internally from AgentX? Can I change snmpTargetAddrTable internally?
>>
>> The most flexible way would be to send SNMP SET requests from the
>> subagent to the master agent, to manipulate the target tables.
>>    I.e. the subagent would also be acting as a management client
>> application.
>>
>> Use 'snmp_open' to create a connection back to the master agent,
>> and then use 'netsnmp_query_set' to send the SET request.
>>
>> Dave
>>
>
>

------------------------------------------------------------------------------
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.