This is a discussion on table get_next returning null even after there is a row created. within the SNMP Users forums, part of the Networking and Network Related category; This is a multi-part message in MIME format. --===============1253456466== Content-class: urn:content-classes:message Content-Type: multipart/alternative; ...
|
|||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
|
|||
|
This is a multi-part message in MIME format. --===============1253456466== Content-class: urn:content-classes:message Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C7F92F.2404F7FA" This is a multi-part message in MIME format. ------_=_NextPart_001_01C7F92F.2404F7FA Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi, The following is my MIB. =20 | | +--mVgSipDnsServerTable(6) | | | | | | | +--mVgSipDnsServerEntry(1) | | | | Index: mVgSipDnsServerIPAddressType, mVgSipDnsServerIpAddress | | | | | | | +-- ---- EnumVal mVgSipDnsServerIPAddressType(1) | | | | Textual Convention: InetAddressType | | | | Values: unknown(0), ipv4(1), ipv6(2), ipv4z(3), ipv6z(4), dns(16) | | | +-- ---- String mVgSipDnsServerIpAddress(2) | | | | Textual Convention: InetAddress | | | | Size: 0..255 | | | +-- CR-- INTEGER mVgSipDnsServerPriority(3) | | | | Range: 1..2 | | | +-- CR-- EnumVal mVgSipDnsServerRowStatus(4) | | | Textual Convention: RowStatus | | | Values: active(1), notInService(2), notReady(3), createAndGo(4), createAndWait(5), destroy(6) =20 =20 Whenever I am calling=20 snmpset -c public 127.0.0.1 mVgSipDnsServerRowStatus.1.\"1.1.1.1\" i 4. the row is getting created. =20 But when I am trying to modify the column of the created row using the following command snmpset -c public 127.0.0.1 mVgSipDnsServerPriority.1.\"1.1.1.1\" i 2 =20 The function mVgSipDnsServerTable_get_next_data_point() returning NULL,because of which the function=20 netsnmp_extract_iterator_context() is returning null and I am not able to modify the contents of the created row. Can any one please help me. =20 Please find below the mib2c generated code using mib2c.iterator.conf. =20 /* * Typical data structure for a row entry=20 */ struct mVgSipDnsServerTable_entry { /* * Index values=20 */ long mVgSipDnsServerIPAddressType; char mVgSipDnsServerIpAddress[LengthOfIp]; size_t mVgSipDnsServerIpAddress_len; // long mVgSipScacIndex; =20 /* * Column values=20 */ long mVgSipDnsServerPriority; long old_mVgSipDnsServerPriority; long mVgSipDnsServerRowStatus; =20 /* * Illustrate using a simple linked list=20 */ int valid; struct mVgSipDnsServerTable_entry *next; }; =20 struct mVgSipDnsServerTable_entry *mVgSipDnsServerTable_head =3D NULL; =20 =20 /** Initialize the mVgSipDnsServerTable table by defining its contents and how it's structured */ void initialize_table_mVgSipDnsServerTable(void) { static oid mVgSipDnsServerTable_oid[] =3D { 1, 3, 6, 1, 4, 1, 1012, 100, 1, 67, 1, 6 }; size_t mVgSipDnsServerTable_oid_len =3D OID_LENGTH(mVgSipDnsServerTable_oid); netsnmp_handler_registration *reg; netsnmp_iterator_info *iinfo; netsnmp_table_registration_info *table_info; static unsigned int my_columns[] =3D { COLUMN_MVGSIPDNSSERVERPRIORITY, COLUMN_MVGSIPDNSSERVERROWSTATUS, 0 /* This one is due to the comma above :-) */ }; static netsnmp_column_info valid_columns; /* * we only want to process certain columns, and ignore the "holes" */ printf("In %s\n",__FUNCTION__); valid_columns.isRange =3D 0; valid_columns.details.list =3D my_columns; valid_columns.list_count =3D (sizeof(my_columns) / sizeof(unsigned int)) - 1; /* Minus 1 is due to the comma above :-) */ =20 =20 reg =3D netsnmp_create_handler_registration("mVgSipDnsServ erTable", =20 mVgSipDnsServerTable_handler, mVgSipDnsServerTable_oid, =20 mVgSipDnsServerTable_oid_len, HANDLER_CAN_RWRITE); =20 table_info =3D SNMP_MALLOC_TYPEDEF(netsnmp_table_registration_inf o); netsnmp_table_helper_add_indexes(table_info, ASN_INTEGER, /* index: mVgSipDnsServerIPAddressType */ ASN_OCTET_STR, /* index: mVgSipDnsServerIpAddress */ 0); table_info->min_column =3D COLUMN_MVGSIPDNSSERVERPRIORITY; table_info->max_column =3D COLUMN_MVGSIPDNSSERVERROWSTATUS; table_info->valid_columns =3D &valid_columns; =20 iinfo =3D SNMP_MALLOC_TYPEDEF(netsnmp_iterator_info); iinfo->get_first_data_point =3D mVgSipDnsServerTable_get_first_data_point; iinfo->get_next_data_point =3D mVgSipDnsServerTable_get_next_data_point; iinfo->table_reginfo =3D table_info; =20 netsnmp_register_table_iterator(reg, iinfo); =20 /* * Initialise the contents of the table here=20 */ } =20 =20 /* * create a new row in the (unsorted) table=20 */ struct mVgSipDnsServerTable_entry * mVgSipDnsServerTable_createEntry(long mVgSipDnsServerIPAddressType, char *mVgSipDnsServerIpAddress, size_t mVgSipDnsServerIpAddress_len)//,int mVgSipCnt) { struct mVgSipDnsServerTable_entry *entry; =20 printf("In %s wit iptype =3D %d,ipaddr =3D %s\n",__FUNCTION__,mVgSipDnsServerIPAddressType,mV gSipDnsServerIpAddress ); entry =3D SNMP_MALLOC_TYPEDEF(struct mVgSipDnsServerTable_entry); if (!entry) return NULL; /*Wipro: This is for scacIndexing*/ entry->mVgSipDnsServerIPAddressType =3D = mVgSipDnsServerIPAddressType; memcpy(entry->mVgSipDnsServerIpAddress, mVgSipDnsServerIpAddress, mVgSipDnsServerIpAddress_len); entry->mVgSipDnsServerIpAddress_len =3D = mVgSipDnsServerIpAddress_len; entry->next =3D mVgSipDnsServerTable_head; entry->valid =3D 1; /*Wipro: This is for scacIndexing*/ // entry->mVgSipScacIndex =3D mVgSipCnt; mVgSipDnsServerTable_head =3D entry; printf("In %s\n",__FUNCTION__); return entry; } =20 /* * remove a row from the table=20 */ void mVgSipDnsServerTable_removeEntry(struct mVgSipDnsServerTable_entry *entry) { struct mVgSipDnsServerTable_entry *ptr, *prev; =20 printf("In %s\n",__FUNCTION__); if (!entry) return; /* Nothing to remove */ =20 for (ptr =3D mVgSipDnsServerTable_head, prev =3D NULL; ptr !=3D NULL; prev =3D ptr, ptr =3D ptr->next) { if (ptr =3D=3D entry) break; } if (!ptr) return; /* Can't find it */ =20 if (prev =3D=3D NULL) mVgSipDnsServerTable_head =3D ptr->next; else prev->next =3D ptr->next; =20 SNMP_FREE(entry); /* XXX - release any other internal resources */ } =20 =20 /* * Example iterator hook routines - using 'get_next' to do most of the work=20 */ netsnmp_variable_list * mVgSipDnsServerTable_get_first_data_point(void **my_loop_context, void **my_data_context, netsnmp_variable_list * put_index_data, netsnmp_iterator_info *mydata) { printf("In %s\n",__FUNCTION__); *my_loop_context =3D mVgSipDnsServerTable_head; return mVgSipDnsServerTable_get_next_data_point(my_loop_c ontext, my_data_context, put_index_data, mydata); } =20 netsnmp_variable_list * mVgSipDnsServerTable_get_next_data_point(void **my_loop_context, void **my_data_context, netsnmp_variable_list * put_index_data, netsnmp_iterator_info *mydata) { struct mVgSipDnsServerTable_entry *entry =3D (struct mVgSipDnsServerTable_entry *) *my_loop_context; printf("In %s\n",__FUNCTION__); netsnmp_variable_list *idx =3D put_index_data; =20 if (entry) { snmp_set_var_typed_integer(idx, ASN_INTEGER, entry->mVgSipDnsServerIPAddressType); idx =3D idx->next_variable; snmp_set_var_value(idx, (const u_char *) entry->mVgSipDnsServerIpAddress, sizeof(entry->mVgSipDnsServerIpAddress)); idx =3D idx->next_variable; *my_data_context =3D (void *) entry; *my_loop_context =3D (void *) entry->next; return put_index_data; } else { printf("Null returned\n"); return NULL; } } =20 =20 /** handles requests for the mVgSipDnsServerTable table */ int mVgSipDnsServerTable_handler(netsnmp_mib_handler *handler, netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo, netsnmp_request_info *requests) { =20 netsnmp_request_info *request; netsnmp_table_request_info *table_info; struct mVgSipDnsServerTable_entry *table_entry; opcode scacOpCode; tableName scacTableName; int scacIndex=3D0,scacMask=3D0,ret; short scacTempVar =3D 0; retCode scacRet =3D A_SUCCESS; static int mVgSipCnt =3D 0; char scacTempIp[LengthOfIp] =3D {0}; =20 printf("In %s wid %d\n",__FUNCTION__,reqinfo->mode); switch (reqinfo->mode) { /* * Read-support (also covers GetNext requests) */ case MODE_GET: for (request =3D requests; request; request =3D request->next) { table_entry =3D (struct mVgSipDnsServerTable_entry *) netsnmp_extract_iterator_context(request); table_info =3D netsnmp_extract_table_info(request); switch (table_info->colnum) { case COLUMN_MVGSIPDNSSERVERPRIORITY: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } /*Wipro: No need to call scacOperation().We have the data*/=20 snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> mVgSipDnsServerPriority); break; case COLUMN_MVGSIPDNSSERVERROWSTATUS: if (!table_entry) { netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE); continue; } snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER, table_entry-> mVgSipDnsServerRowStatus); break; default: netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHOBJECT); break; } } break; /* * Write-support */ case MODE_SET_RESERVE1: for (request =3D requests; request; request =3D request->next) { table_entry =3D (struct mVgSipDnsServerTable_entry *) netsnmp_extract_iterator_context(request); table_info =3D netsnmp_extract_table_info(request); =20 if(!table_entry) printf("Null\n"); else =20 printf("Not Null\n"); =20 =20 switch (table_info->colnum) { case COLUMN_MVGSIPDNSSERVERPRIORITY: /* * or possibly 'netsnmp_check_vb_int_range'=20 */ ret =3D netsnmp_check_vb_int(request->requestvb); if (ret !=3D SNMP_ERR_NOERROR) { netsnmp_set_request_error(reqinfo, request, ret); return SNMP_ERR_NOERROR; } break; case COLUMN_MVGSIPDNSSERVERROWSTATUS: ret =3D netsnmp_check_vb_rowstatus(request->requestvb, (table_entry ? RS_ACTIVE : RS_NONEXISTENT)); if (ret !=3D SNMP_ERR_NOERROR) { netsnmp_set_request_error(reqinfo, request, ret); return SNMP_ERR_NOERROR; } break; default: netsnmp_set_request_error(reqinfo, request, SNMP_ERR_NOTWRITABLE); return SNMP_ERR_NOERROR; } } break; =20 case MODE_SET_RESERVE2: for (request =3D requests; request; request =3D request->next) { table_entry =3D (struct mVgSipDnsServerTable_entry *) netsnmp_extract_iterator_context(request); table_info =3D netsnmp_extract_table_info(request); =20 switch (table_info->colnum) { case COLUMN_MVGSIPDNSSERVERROWSTATUS: switch (*request->requestvb->val.integer) { case RS_CREATEANDGO: case RS_CREATEANDWAIT: table_entry =3D mVgSipDnsServerTable_createEntry(*table_info-> indexes->val. integer, (char *)table_info-> =20 indexes->next_variable->val. string, table_info-> =20 indexes->next_variable->val_len); if (table_entry) { netsnmp_insert_iterator_context(request, table_entry); } else { netsnmp_set_request_error(reqinfo, request, =20 SNMP_ERR_RESOURCEUNAVAILABLE); return SNMP_ERR_NOERROR; } } } } break; =20 case MODE_SET_FREE: for (request =3D requests; request; request =3D request->next) { table_entry =3D (struct mVgSipDnsServerTable_entry *) netsnmp_extract_iterator_context(request); table_info =3D netsnmp_extract_table_info(request); =20 switch (table_info->colnum) { case COLUMN_MVGSIPDNSSERVERROWSTATUS: switch (*request->requestvb->val.integer) { case RS_CREATEANDGO: case RS_CREATEANDWAIT: if (table_entry && !table_entry->valid) { mVgSipDnsServerTable_removeEntry(table_entry); } } } } break; =20 case MODE_SET_ACTION: for (request =3D requests; request; request =3D request->next) { table_entry =3D (struct mVgSipDnsServerTable_entry *) netsnmp_extract_iterator_context(request); table_info =3D netsnmp_extract_table_info(request); if(!table_entry) printf("Null\n"); else =20 printf("Not Null\n"); =20 =20 switch (table_info->colnum) { case COLUMN_MVGSIPDNSSERVERPRIORITY: table_entry->old_mVgSipDnsServerPriority =3D table_entry->mVgSipDnsServerPriority; table_entry->mVgSipDnsServerPriority =3D *request->requestvb->val.integer; break; } } /* * Check the internal consistency of an active row=20 */ for (request =3D requests; request; request =3D request->next) { table_entry =3D (struct mVgSipDnsServerTable_entry *) netsnmp_extract_iterator_context(request); table_info =3D netsnmp_extract_table_info(request); =20 switch (table_info->colnum) { case COLUMN_MVGSIPDNSSERVERROWSTATUS: switch (*request->requestvb->val.integer) { case RS_ACTIVE: case RS_CREATEANDGO: // if ( /* XXX */ ) { // netsnmp_set_request_error(reqinfo, request, // SNMP_ERR_INCONSISTENTVALUE); return SNMP_ERR_NOERROR; // } } } } break; =20 case MODE_SET_UNDO: for (request =3D requests; request; request =3D request->next) { table_entry =3D (struct mVgSipDnsServerTable_entry *) netsnmp_extract_iterator_context(request); table_info =3D netsnmp_extract_table_info(request); =20 switch (table_info->colnum) { case COLUMN_MVGSIPDNSSERVERPRIORITY: table_entry->mVgSipDnsServerPriority =3D table_entry->old_mVgSipDnsServerPriority; table_entry->old_mVgSipDnsServerPriority =3D 0; break; case COLUMN_MVGSIPDNSSERVERROWSTATUS: switch (*request->requestvb->val.integer) { case RS_CREATEANDGO: case RS_CREATEANDWAIT: if (table_entry && !table_entry->valid) { mVgSipDnsServerTable_removeEntry(table_entry); } } break; } } break; =20 case MODE_SET_COMMIT: for (request =3D requests; request; request =3D request->next) { table_entry =3D (struct mVgSipDnsServerTable_entry *) netsnmp_extract_iterator_context(request); table_info =3D netsnmp_extract_table_info(request); =20 switch (table_info->colnum) { case COLUMN_MVGSIPDNSSERVERROWSTATUS: switch (*request->requestvb->val.integer) { case RS_CREATEANDGO: table_entry->valid =3D 1; /* * Fall-through=20 */ case RS_ACTIVE: table_entry->mVgSipDnsServerRowStatus =3D RS_ACTIVE; break; =20 case RS_CREATEANDWAIT: table_entry->valid =3D 1; /* * Fall-through=20 */ case RS_NOTINSERVICE: table_entry->mVgSipDnsServerRowStatus =3D RS_NOTINSERVICE; break; =20 case RS_DESTROY: mVgSipDnsServerTable_removeEntry(table_entry); } } } break; } return SNMP_ERR_NOERROR; =20 =20 ------_=_NextPart_001_01C7F92F.2404F7FA Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable <html xmlns:v=3D"urn:schemas-microsoft-com:vml" = xmlns:o=3D"urn:schemas-microsoft-com:office:office" = xmlns:w=3D"urn:schemas-microsoft-com:office:word" = xmlns=3D"http://www.w3.org/TR/REC-html40"> <head> <META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; = charset=3Dus-ascii"> <meta name=3DGenerator content=3D"Microsoft Word 11 (filtered medium)"> <style> <!-- /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {margin:0in; margin-bottom:.0001pt; font-size:12.0pt; font-family:"Times New Roman";} a:link, span.MsoHyperlink {color:blue; text-decoration:underline;} a:visited, span.MsoHyperlinkFollowed {color:purple; text-decoration:underline;} span.EmailStyle17 {mso-style-type:personal-compose; font-family:Arial; color:windowtext;} @page Section1 {size:8.5in 11.0in; margin:1.0in 1.25in 1.0in 1.25in;} div.Section1 {page:Section1;} --> </style> </head> <body lang=3DEN-US link=3Dblue vlink=3Dpurple> <div class=3DSection1> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'>Hi,<o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'> The following is my = MIB.<o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'><o:p> </o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'> = | & nbsp; | = +--mVgSipDnsServerTable(6)<o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'> = | & nbsp; | = | |<o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'> = | & nbsp; | = | +--mVgSipDnsServerEntry(1)<o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'> = | & nbsp; | = | | Index: mVgSipDnsServerIPAddressType, = mVgSipDnsServerIpAddress<o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'> = | & nbsp; | = | |<o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'> = | & nbsp; | = | +-- ---- EnumVal mVgSipDnsServerIPAddressType(1)<o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'> = | & nbsp; | = | | = Textual Convention: InetAddressType<o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'> = | & nbsp; | = | | = Values: unknown(0), ipv4(1), ipv6(2), ipv4z(3), ipv6z(4), = dns(16)<o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'> = | & nbsp; | = | +-- ---- String mVgSipDnsServerIpAddress(2)<o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'> = | & nbsp; | = | | = Textual Convention: InetAddress<o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'> = | & nbsp; | = | | = Size: 0..255<o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'> = | & nbsp; | = | +-- CR-- INTEGER mVgSipDnsServerPriority(3)<o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'> = | & nbsp; | = | | = Range: 1..2<o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'> = | & nbsp; | = | +-- CR-- EnumVal mVgSipDnsServerRowStatus(4)<o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'> = | & nbsp; | = | & nbsp; = Textual Convention: RowStatus<o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'> = | & nbsp; | = | & nbsp; = Values: active(1), notInService(2), notReady(3), createAndGo(4), createAndWait(5), = destroy(6)<o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'><o:p> </o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'><o:p> </o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'>Whenever I am calling <o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span = style=3D'font-size: 10.0pt;font-family:Arial;color:navy'>snmpset -c public 127.0.0.1 mVgSipDnsServerRowStatus.1.\"1.1.1.1\" i 4. the row is getting created.<o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span = style=3D'font-size: 10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span = style=3D'font-size: 10.0pt;font-family:Arial;color:navy'>But when I am trying to modify the = column of the created row using the following = command<o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span = style=3D'font-size:10.0pt; font-family:"Courier New"'>snmpset -c public 127.0.0.1 mVgSipDnsServerPriority.1.\"1.1.1.1\" i 2</span></font><font = size=3D2 face=3DArial><span = style=3D'font-size:10.0pt;font-family:Arial'><o:p></o:p></span></font></p= > <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'><o:p> </o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'>The function </span></font><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'>mVgSipDnsServerTable_get_next_data_point() returning NULL,because of which the function = <o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span = style=3D'font-size:10.0pt; font-family:"Courier New"'>netsnmp_extract_iterator_context() is = returning null and I am not able to modify the contents of the created = row.<o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3D"Courier New"><span = style=3D'font-size:10.0pt; font-family:"Courier New"'>Can any one please help = me.<o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'><o:p> </o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'>Please find below the mib2c generated code using mib2c.iterator.conf.<o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'><o:p> </o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = /*<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> * Typical data structure for a row entry <o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> */<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'>struct mVgSipDnsServerTable_entry {<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = /*<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> * Index values = <o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> */<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = long &nbs p; mVgSipDnsServerIPAddressType;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = char &nbs p; mVgSipDnsServerIpAddress[LengthOfIp];<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = size_t &n bsp; mVgSipDnsServerIpAddress_len;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'>// long = mVgSipScacIndex;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'><o:p> </o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = /*<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> * Column values = <o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> */<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = long &nbs p; mVgSipDnsServerPriority;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = long &nbs p; old_mVgSipDnsServerPriority;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = long &nbs p; mVgSipDnsServerRowStatus;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'><o:p> </o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = /*<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> * Illustrate using a simple linked list <o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> */<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = int   ; &nbs= p; valid;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = struct mVgSipDnsServerTable_entry *next;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'>};<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'><o:p> </o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'>struct = mVgSipDnsServerTable_entry *mVgSipDnsServerTable_head =3D NULL;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'><o:p> </o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'><o:p> </o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'>/** Initialize the mVgSipDnsServerTable table by defining its contents and how it's = structured */<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'>void<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'>initialize_table_mVgSipDnsServerTable(void)< o:p></o:p></span></font= ></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'>{<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = static oid mVgSipDnsServerTable_oid[] =3D<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> { 1, 3, 6, 1, 4, 1, 1012, 100, 1, 67, 1, 6 };<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = size_t &n bsp; mVgSipDnsServerTable_oid_len =3D<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> OID_LENGTH(mVgSipDnsServerTable_oid);<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> netsnmp_handler_registration *reg;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = netsnmp_iterator_info *iinfo;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> netsnmp_table_registration_info = *table_info;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> static = unsigned int my_columns[] =3D {<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> = COLUMN_MVGSIPDNSSERVERPRIORITY,<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> COLUMN_MVGSIPDNSSERVERROWSTATUS,<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> 0 /* This one is due to the comma above :-) */<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = };<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> static = netsnmp_column_info valid_columns;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = /*<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> * we = only want to process certain columns, and ignore the = "holes"<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = */<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> &n bsp; = printf("In %s\n",__FUNCTION__);<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = valid_columns.isRange   ; =3D 0;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = valid_columns.details.list =3D my_columns;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = valid_columns.list_count =3D (sizeof(my_columns) / sizeof(unsigned int)) - 1; /* Minus 1 is due = to the comma above :-) */<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'><o:p> </o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'><o:p> </o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = reg =3D<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> netsnmp_create_handler_registration("mVgSipDn sServerTable",<o:p= ></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> &n bsp; &= nbsp; &nb sp; &n= bsp; &nbs p; &nb= sp; mVgSipDnsServerTable_handler,<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> &n bsp; &= nbsp; &nb sp; &n= bsp; &nbs p; &nb= sp; mVgSipDnsServerTable_oid,<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> &n bsp; &= nbsp; &nb sp; &n= bsp; &nbs p; &nb= sp; mVgSipDnsServerTable_oid_len,<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> &n bsp; &= nbsp; &nb sp; &n= bsp; &nbs p; &nb= sp; HANDLER_CAN_RWRITE);<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'><o:p> </o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = table_info =3D SNMP_MALLOC_TYPEDEF(netsnmp_table_registration_inf o);<o:p></o:p></span></= font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = netsnmp_table_helper_add_indexes(table_info, ASN_INTEGER, /* index: mVgSipDnsServerIPAddressType = */<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> &n bsp; &= nbsp; &nb sp; &n= bsp; &nbs p; &nb= sp; ASN_OCTET_STR, /* index: = mVgSipDnsServerIpAddress */<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> &n bsp; &= nbsp; &nb sp; &n= bsp; &nbs p; &nb= sp; 0);<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> table_info->min_column =3D = COLUMN_MVGSIPDNSSERVERPRIORITY;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> table_info->max_column =3D = COLUMN_MVGSIPDNSSERVERROWSTATUS;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> table_info->valid_columns =3D = &valid_columns;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'><o:p> </o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = iinfo =3D SNMP_MALLOC_TYPEDEF(netsnmp_iterator_info);<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> iinfo->get_first_data_point =3D<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> mVgSipDnsServerTable_get_first_data_point;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> iinfo->get_next_data_point =3D = mVgSipDnsServerTable_get_next_data_point;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = iinfo->table_reginfo =3D table_info;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'><o:p> </o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> netsnmp_register_table_iterator(reg, = iinfo);<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'><o:p> </o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = /*<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> * Initialise the contents of the table here <o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> */<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'>}<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'><o:p> </o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'><o:p> </o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'>/*<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> * create a = new row in the (unsorted) table <o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> */<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'>struct mVgSipDnsServerTable_entry *<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'>mVgSipDnsServerTable_createEntry(long mVgSipDnsServerIPAddressType,<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> &n bsp; &= nbsp; &nb sp; &n= bsp; &nbs p; char *mVgSipDnsServerIpAddress,<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> = &n bsp; &= nbsp; &nb sp; &n= bsp; size_t mVgSipDnsServerIpAddress_len)//,int = mVgSipCnt)<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'>{<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = struct mVgSipDnsServerTable_entry *entry;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'><o:p> </o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> &n bsp; = printf("In %s wit iptype =3D %d,ipaddr =3D %s\n",__FUNCTION__,mVgSipDnsServerIPAddressTy pe,mVgSipDnsServerIpAdd= ress);<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = entry =3D SNMP_MALLOC_TYPEDEF(struct = mVgSipDnsServerTable_entry);<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = if (!entry)<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> return = NULL;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = /*Wipro: This is for scacIndexing*/<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> entry->mVgSipDnsServerIPAddressType =3D = mVgSipDnsServerIPAddressType;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> memcpy(entry->mVgSipDnsServerIpAddress, = mVgSipDnsServerIpAddress,<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> &n bsp; mVgSipDnsServerIpAddress_len);<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> entry->mVgSipDnsServerIpAddress_len =3D = mVgSipDnsServerIpAddress_len;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = entry->next =3D mVgSipDnsServerTable_head;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = entry->valid =3D 1;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = /*Wipro: This is for scacIndexing*/<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'>// entry->mVgSipScacIndex =3D mVgSipCnt;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> mVgSipDnsServerTable_head =3D entry;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> &n bsp; = printf("In %s\n",__FUNCTION__);<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = return entry;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'>}<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'><o:p> </o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'>/*<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> * remove a = row from the table <o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> */<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'>void<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'>mVgSipDnsServerTable_removeEntry(struct mVgSipDnsServerTable_entry *entry)<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'>{<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = struct mVgSipDnsServerTable_entry *ptr, *prev;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'><o:p> </o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> &n bsp; = printf("In %s\n",__FUNCTION__);<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = if (!entry)<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> return; & nbsp; = /* Nothing to remove = */<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'><o:p> </o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = for (ptr =3D mVgSipDnsServerTable_head, prev =3D NULL;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> ptr !=3D NULL; = prev =3D ptr, ptr =3D ptr->next) {<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> if (ptr =3D=3D = entry)<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> &n bsp; = break;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = }<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = if (!ptr)<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> return; & nbsp; = /* Can't find it = */<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'><o:p> </o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = if (prev =3D=3D NULL)<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> mVgSipDnsServerTable_head =3D ptr->next;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = else<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> prev->next =3D ptr->next;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'><o:p> </o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> SNMP_FREE(entry); &nb sp; &n= bsp; /* XXX - release any other internal resources = */<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'>}<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'><o:p> </o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'><o:p> </o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'>/*<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> * Example = iterator hook routines - using 'get_next' to do most of the work = <o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> */<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'>netsnmp_variable_list *<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'>mVgSipDnsServerTable_get_first_data_point(vo id **my_loop_context,<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> &n bsp; &= nbsp; &nb sp; &n= bsp; &nbs p; &nb= sp; void **my_data_context,<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> &n bsp; &= nbsp; &nb sp; &n= bsp; &nbs p; &nb= sp; netsnmp_variable_list *<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> &n bsp; &= nbsp; &nb sp; &n= bsp; &nbs p; &nb= sp; put_index_data,<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> &n bsp; &= nbsp; &nb sp; &n= bsp; &n bsp; n= etsnmp_iterator_info *mydata)<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'>{<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> &n bsp; = printf("In %s\n",__FUNCTION__);<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = *my_loop_context =3D mVgSipDnsServerTable_head;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = return mVgSipDnsServerTable_get_next_data_point(my_loop_c ontext,<o:p></o:p></spa= n></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> &n bsp; &= nbsp; &nb sp; &n= bsp; &nbs p; &nb= sp;   ; &nbs= p; my_data_context,<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> &n bsp; &= nbsp; &nb sp; &n= bsp; &nbs p; &nb= sp;   ; &nbs= p; put_index_data,<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> &n bsp; &= nbsp; &nb sp; &n= bsp; &nbs p; &nb= sp;   ; &nbs= p; mydata);<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'>}<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'><o:p> </o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'>netsnmp_variable_list *<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'>mVgSipDnsServerTable_get_next_data_point(voi d **my_loop_context,<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> &n bsp; &= nbsp; &nb sp; &n= bsp; &nbs p; &nb= sp; void **my_data_context,<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> &n bsp; &= nbsp; &nb sp; &n= bsp; &nbs p; &nb= sp; netsnmp_variable_list *<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> &n bsp; &= nbsp; &nb sp; &n= bsp; &nbs p; &nb= sp; put_index_data,<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> &n bsp; &= nbsp; &nb sp; &n= bsp; &nbs p; &nb= sp; netsnmp_iterator_info *mydata)<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'>{<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = struct mVgSipDnsServerTable_entry *entry =3D<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> (struct mVgSipDnsServerTable_entry *) = *my_loop_context;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> &n bsp; = printf("In %s\n",__FUNCTION__);<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = netsnmp_variable_list *idx =3D put_index_data;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'><o:p> </o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier New"'> = if (entry) {<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> snmp_set_var_typed_integer(idx, = ASN_INTEGER,<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> &n bsp; &= nbsp; &nb sp; &n= bsp; &nbs p; entry->mVgSipDnsServerIPAddressType);<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> idx =3D idx->next_variable;<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> snmp_set_var_value(idx, (const u_char *) = entry->mVgSipDnsServerIpAddress,<o:p></o:p></span></font></p> <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D'font-size:10.0pt;font-family:"Courier = New"'> &n bsp; &= nbsp; &nb sp; &n= bsp; sizeof(entry->mVgSipDnsServerIpAddress));<o:p></o:p></span></font></p>= <p class=3DMsoNormal style=3D'text-autospace:none'><font size=3D2 = face=3D"Courier New"><span style=3D |