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