Problem setting the value of a table element

This is a discussion on Problem setting the value of a table element within the SNMP Coders forums, part of the Networking and Network Related category; I am having a problem implementing a table with a settable column. I have the table handler and creation in ...


Go Back   Usenet Forums > Networking and Network Related > SNMP Coders

FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 03-26-2007
Russell Markus
 
Posts: n/a
Default Problem setting the value of a table element

I am having a problem implementing a table with a settable column. I have
the table handler and creation in the following code snippet:

int BaseTableHandler(
netsnmp_mib_handler *handler,
netsnmp_handler_registration *reginfo,
netsnmp_agent_request_info *reqinfo,
netsnmp_request_info *requests)
{
int err_code = SNMP_ERR_NOERROR;
netsnmp_request_info *request;
netsnmp_variable_list *requestvb;
int row, col;

for (request = requests; request; request = request->next)
{
requestvb = request->requestvb;

row = RowFromOid(requestvb->name, requestvb->name_length);
col = ColFromOid(requestvb->name, requestvb->name_length);

if (!request->processed)
{
char buf[256];
int thresh;

GetBaseColumnData(&ipmn_data->base[row], col, buf);
switch (reqinfo->mode)
{
case MODE_GET:
case MODE_GETNEXT:
if (col > E_BS_INDEX && col <= E_BS_TIME)
{
snmp_set_var_typed_value(requestvb, ASN_OCTET_STR,
(u_char *)buf, strlen(buf));
}
else
{
int i = atoi(buf);
snmp_set_var_typed_value(requestvb, ASN_INTEGER,
(u_char *)&i, sizeof(i));
}
break;

case MODE_SET_RESERVE1:
thresh = *requestvb->val.integer;
SetBaseNoiseThreshhold(row, thresh, reqinfo->mode);
break;

case MODE_SET_RESERVE2:
thresh = *requestvb->val.integer;
SetBaseNoiseThreshhold(row, thresh, reqinfo->mode);
break;

case MODE_SET_ACTION:
thresh = *requestvb->val.integer;
SetBaseNoiseThreshhold(row, thresh, reqinfo->mode);
break;

case MODE_SET_UNDO:
thresh = *requestvb->val.integer;
SetBaseNoiseThreshhold(row, thresh, reqinfo->mode);
break;

case MODE_SET_COMMIT:
break;

case MODE_SET_FREE:
break;

default:
printf("MODE %d\n", reqinfo->mode);
netsnmp_set_request_error(reqinfo, requests,
SNMP_ERR_READONLY);
err_code = SNMP_ERR_READONLY;
break;
}
}
}
return err_code;
}


void init_base_mib()
{
static oid BaseTableOid[] = {1, 3, 6, 1, 4, 1, 14055, 1, 1, 1, 3, 4};
netsnmp_handler_registration *hReg;
pthread_t tid;

// create the table struct itself
bsTableSet = netsnmp_create_table_data_set("basestationTable");

// comment out or remove this line if no support for creation of rows
bsTableSet->allow_creation = 1;

// add the index
netsnmp_table_set_add_indexes(bsTableSet, ASN_INTEGER, 0);

// create the columns
netsnmp_table_set_multi_add_default_row(
bsTableSet,

// column data....
E_BS_INDEX, ASN_INTEGER, 0, NULL, 0,
E_BS_RFADDR, ASN_OCTET_STR, 0, NULL, 0,
E_BS_TUNADDR, ASN_OCTET_STR, 0, NULL, 0,
E_BS_IPADDR, ASN_OCTET_STR, 0, NULL, 0,
E_BS_IFNAME, ASN_OCTET_STR, 0, NULL, 0,
E_BS_DNFREQ, ASN_OCTET_STR, 0, NULL, 0,
E_BS_UPFREQ, ASN_OCTET_STR, 0, NULL, 0,
E_BS_TIME, ASN_OCTET_STR, 0, NULL, 0,
E_BS_UTIL, ASN_INTEGER, 0, NULL, 0,
E_BS_NOISE, ASN_INTEGER, 0, NULL, 0,
E_BS_NOISE_THRESHHOLD, ASN_INTEGER, 1, NULL, 0,

// done!
0
);

netsnmp_register_auto_data_table(bsTableSet, NULL);

hReg = netsnmp_create_handler_registration("basestationha ndler",
BaseTableHandler,
BaseTableOid, OID_LENGTH(BaseTableOid), HANDLER_CAN_RWRITE);
netsnmp_register_table_data_set(hReg, bsTableSet, NULL);
}

My SNMP management console is sending a set command for the OID
1.3.6.1.4.1.14055.1.1.1.3.4.11.1, to set the value to 99. NetSNMP is
returning an error: "no such name". If I understand correctly, this should
be the 11th column of the first row of my table. The function
BaseTableHandler isn't even being called. It does get called correctly for
the GET and GETNEXT requests.

Any help would be greatly appreciated

Russell Markus
Sr. Software Engineer
IPMobileNet, Inc.
(949)417-4590


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?p...rge&CID=DEVDEV
_______________________________________________
Net-snmp-coders mailing list
Net-snmp-coders@lists.sourceforge.net
https://lists.sourceforge.net/lists/...et-snmp-coders
Reply With Quote
Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are Off
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT +1. The time now is 01:18 PM.


Powered by vBulletin® Version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.0.0