R/ Sir, Thankyou for your reply. Now I am able to run net-snmp in debug mode.
I have installed net-snmp ver 5.5. I have configured with the attached testmodule.c and testmodule .h mib. This mib is having two parameters. First Parameter is integer and second parameter is string. When I query for second parametr I am getting the error messag. The query responce is as follows Query1. snmpget -v2c -c public localhost .1.3.6.1.4.1.10496.1.1.10 Response 12254 Query2. snmpget -v2c -c public localhost .1.3.6.1.4.1.10496.1.1.2.0 Responce enterprices.10496.1.1.2.0 = No such instance currently exists at this OID. Can you please guide me where I am wrong. Regards, U.Purushotham Rao, .
/*
* Note: this file originally auto-generated by mib2c using
* : mib2c.old-api.conf 14476 2006-04-18 17:36:51Z hardaker $
*/
#include <net-snmp/net-snmp-config.h>
#include <net-snmp/net-snmp-includes.h>
#include <net-snmp/agent/net-snmp-agent-includes.h>
#include "testmodule.h"
/*
* testmodule_variables_oid:
* this is the top level oid that we want to register under. This
* is essentially a prefix, with the suffix appearing in the
* variable below.
*/
oid testmodule_variables_oid[] = { 1,3,6,1,4,1,10496,1 };
/*
* variable4 testmodule_variables:
* this variable defines function callbacks and type return information
* for the testmodule mib section
*/
char ch[]="AMRUTHASRI-DIVYASRI";
struct variable7 testmodule_variables[] = {
/* magic number , variable type , ro/rw , callback fn , L, oidsuffix */
#define INTLEAF 1
{INTLEAF, ASN_INTEGER, RWRITE, var_testmodule, 2, { 1,1 }},
#define STRLEAF 2
{STRLEAF, ASN_OCTET_STR, RWRITE, var_testmodule, 2, { 1,2 }},
};
/* (L = length of the oidsuffix) */
/** Initializes the testmodule module */
void
init_testmodule(void)
{
DEBUGMSGTL(("UPSR", "Initializing testmodule\n"));
/* register ourselves with the agent to handle our mib tree */
REGISTER_MIB("testmodule", testmodule_variables, variable4,
testmodule_variables_oid);
/* place any other initialization junk you need here */
}
/*
* var_testmodule():
* This function is called every time the agent gets a request for
* a scalar variable that might be found within your mib section
* registered above. It is up to you to do the right thing and
* return the correct value.
* You should also correct the value of "var_len" if necessary.
*
* Please see the documentation for more information about writing
* module extensions, and check out the examples in the examples
* and mibII directories.
*/
unsigned char *
var_testmodule(struct variable *vp,
oid *name,
size_t *length,
int exact,
size_t *var_len,
WriteMethod **write_method)
{
/* variables we may use later */
static long long_ret;
static u_long ulong_ret;
static unsigned char string[SPRINT_MAX_LEN];
static oid objid[MAX_OID_LEN];
static struct counter64 c64;
if (header_generic(vp,name,length,exact,var_len,write_method)
== MATCH_FAILED )
return NULL;
/*
* this is where we do the value assignments for the mib results.
*/
switch(vp->magic) {
case INTLEAF:
long_ret=12254;
*write_method = write_intleaf;
DEBUGMSGTL(("UPSR","Expected Value of integer is 12254\n"));
return (u_char*) &long_ret;
case STRLEAF:
strcpy(string,ch);
*var_len=strlen(ch);
*write_method = write_strleaf;
return (u_char*)ch;
default:
ERROR_MSG("\nUPSR: Error in Query\n");
}
return NULL;
}
int
write_intleaf(int action,
u_char *var_val,
u_char var_val_type,
size_t var_val_len,
u_char *statP,
oid *name,
size_t name_len)
{
long value;
int size;
switch ( action ) {
case RESERVE1:
if (var_val_type != ASN_INTEGER) {
fprintf(stderr, "write to testmodule not ASN_INTEGER\n");
return SNMP_ERR_WRONGTYPE;
}
if (var_val_len > sizeof(long)) {
fprintf(stderr,"write to testmodule: bad length\n");
return SNMP_ERR_WRONGLENGTH;
}
break;
case RESERVE2:
size = var_val_len;
value = * (long *) var_val;
break;
case FREE:
/* Release any resources that have been allocated */
break;
case ACTION:
/*
* The variable has been stored in 'value' for you to use,
* and you have just been asked to do something with it.
* Note that anything done here must be reversable in the UNDO case
*/
break;
case UNDO:
/* Back out any changes made in the ACTION case */
break;
case COMMIT:
/*
* Things are working well, so it's now safe to make the change
* permanently. Make sure that anything done here can't fail!
*/
break;
}
return SNMP_ERR_NOERROR;
}
int
write_strleaf(int action,
u_char *var_val,
u_char var_val_type,
size_t var_val_len,
u_char *statP,
oid *name,
size_t name_len)
{
char value;
int size;
switch ( action ) {
case RESERVE1:
if (var_val_type != ASN_OCTET_STR) {
fprintf(stderr, "write to testmodule not ASN_OCTET_STR\n");
return SNMP_ERR_WRONGTYPE;
}
if (var_val_len > sizeof(char)) {
fprintf(stderr,"write to testmodule: bad length\n");
return SNMP_ERR_WRONGLENGTH;
}
break;
case RESERVE2:
size = var_val_len;
value = * (char *) var_val;
break;
case FREE:
/* Release any resources that have been allocated */
break;
case ACTION:
/*
* The variable has been stored in 'value' for you to use,
* and you have just been asked to do something with it.
* Note that anything done here must be reversable in the UNDO case
*/
break;
case UNDO:
/* Back out any changes made in the ACTION case */
break;
case COMMIT:
/*
* Things are working well, so it's now safe to make the change
* permanently. Make sure that anything done here can't fail!
*/
break;
}
return SNMP_ERR_NOERROR;
}
testmodule.h
Description: Binary data
------------------------------------------------------------------------------ Download Intel® Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev
_______________________________________________ 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
