Re: Regarding Table data Create and Fill

This is a discussion on Re: Regarding Table data Create and Fill within the SNMP Users forums, part of the Networking and Network Related category; --===============1432260483== Content-Type: multipart/alternative; boundary="----=_Part_4309_9819939.1205523147875" ------=_Part_4309_9819939.1205523147875 Content-Type: text/plain; charset=ISO-8859-1 ...


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

FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 03-14-2008
kumar undurthi
 
Posts: n/a
Default Re: Regarding Table data Create and Fill

--===============1432260483==
Content-Type: multipart/alternative;
boundary="----=_Part_4309_9819939.1205523147875"

------=_Part_4309_9819939.1205523147875
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Hi All,

I have requirement in which i have to fill the table data when ever a
request will come, For example check the below example.... it was generated
by using mib2c.table_data.conf.
: in which "ocStbHostAVInterfaceTable_handler" is taking care of
the requests, So my requirement is
when the a request come at " i.e "(check in code ) case MODE_GET:" then
i want to update the table instated of initialize the table first (filling
the table) at (check in code "
initialize_table_ocStbHostAVInterfaceTable(void) " )

Please give the Solution as early as possible..... (adv Thank's)


/*
* Note: this file originally auto-generated by mib2c using
* : mib2c.table_data.conf 15999 2007-03-25 22:32:02Z dts12 $
*/

/** handles requests for the ocStbHostAVInterfaceTable table */ int

#include <net-snmp/net-snmp-config.h>
#include <net-snmp/net-snmp-includes.h>
#include <net-snmp/agent/net-snmp-agent-includes.h>
#define CHRMAX1 256
#define MAX_IOD_LENGTH1 128
/** Initializes the ocStbHostAVInterfaceTable module */
void
init_ocStbHostAVInterfaceTable(void)
{
/*
* here we initialize all the tables we're planning on supporting
*/
initialize_table_ocStbHostAVInterfaceTable();
}

//# Determine the first/last column names

/** Initialize the ocStbHostAVInterfaceTable table by defining its contents
and how it's structured */
netsnmp_tdata *table_data;
void
initialize_table_ocStbHostAVInterfaceTable(void)
{
static oid ocStbHostAVInterfaceTable_oid[] =
{ 1, 3, 6, 1, 4, 1, 4491, 2, 3, 1, 1, 1, 2, 2 };
size_t ocStbHostAVInterfaceTable_oid_len =
OID_LENGTH(ocStbHostAVInterfaceTable_oid);
netsnmp_handler_registration *reg;
/*static*/ // netsnmp_tdata *table_data;
netsnmp_table_registration_info *table_info;

reg =
netsnmp_create_handler_registration("ocStbHostAVIn terfaceTable",

ocStbHostAVInterfaceTable_handler,
ocStbHostAVInterfaceTable_oid,

ocStbHostAVInterfaceTable_oid_len,
HANDLER_CAN_RONLY);

table_data =
netsnmp_tdata_create_table("ocStbHostAVInterfaceTa ble", 0);
table_info = SNMP_MALLOC_TYPEDEF(netsnmp_table_registration_inf o);
netsnmp_table_helper_add_indexes(table_info, ASN_UNSIGNED, /* index:
ocStbHostAVInterfaceIndex */
0);

table_info->min_column = COLUMN_OCSTBHOSTAVINTERFACETYPE;
table_info->max_column = COLUMN_OCSTBHOSTAVINTERFACESTATUS;

netsnmp_tdata_register(reg, table_data, table_info);

/*
* Initialise the contents of the table here
*/
}

/*
* Typical data structure for a row entry
*/
struct ocStbHostAVInterfaceTable_entry {
/*
* Index values
*/
u_long ocStbHostAVInterfaceIndex;

/*
* Column values
*/
oid ocStbHostAVInterfaceType[MAX_IOD_LENGTH1];
size_t ocStbHostAVInterfaceType_len;
char ocStbHostAVInterfaceDesc[CHRMAX1];
size_t ocStbHostAVInterfaceDesc_len;
long ocStbHostAVInterfaceStatus;

int valid;
};

/*
* create a new row in the table
*/
netsnmp_tdata_row *
ocStbHostAVInterfaceTable_createEntry(netsnmp_tdat a * table_data,
u_long ocStbHostAVInterfaceIndex)
{
struct ocStbHostAVInterfaceTable_entry *entry;
netsnmp_tdata_row *row;

entry = SNMP_MALLOC_TYPEDEF(struct ocStbHostAVInterfaceTable_entry);
if (!entry)
return NULL;

row = netsnmp_tdata_create_row();
if (!row) {
SNMP_FREE(entry);
return NULL;
}
row->data = entry;
entry->ocStbHostAVInterfaceIndex = ocStbHostAVInterfaceIndex;
netsnmp_tdata_row_add_index(row, ASN_UNSIGNED,
&(entry->ocStbHostAVInterfaceIndex),
sizeof(entry->ocStbHostAVInterfaceIndex));
netsnmp_tdata_add_row(table_data, row);
return row;
}

/*
* remove a row from the table
*/
void
ocStbHostAVInterfaceTable_removeEntry(netsnmp_tdat a * table_data,
netsnmp_tdata_row * row)
{
struct ocStbHostAVInterfaceTable_entry *entry;

if (!row)
return; /* Nothing to remove */
entry = (struct ocStbHostAVInterfaceTable_entry *)
netsnmp_tdata_remove_and_delete_row(table_data, row);
if (entry)
SNMP_FREE(entry); /* XXX - release any other internal
resources */
}
int
ocStbHostAVInterfaceTable_handler(netsnmp_mib_hand ler *handler,
netsnmp_handler_registration *reginfo,
netsnmp_agent_request_info *reqinfo,
netsnmp_request_info *requests)
{

netsnmp_request_info *request;
netsnmp_table_request_info *table_info;
netsnmp_tdata *table_data;
netsnmp_tdata_row *table_row;
struct ocStbHostAVInterfaceTable_entry *table_entry;
int ret;

switch (reqinfo->mode) {
/*
* Read-support (also covers GetNext requests)
*/
case MODE_GET:

table_entry = (struct ocStbHostAVInterfaceTable_entry *)
netsnmp_tdata_extract_entry(request);
table_info = netsnmp_extract_table_info(request);

switch (table_info->colnum) {
case COLUMN_OCSTBHOSTAVINTERFACETYPE:
if (!table_entry) {
netsnmp_set_request_error(reqinfo, request,
SNMP_NOSUCHINSTANCE);
continue;
}
snmp_set_var_typed_value(request->requestvb, ASN_OBJECT_ID,
(u_char *) table_entry->
ocStbHostAVInterfaceType,
table_entry->
ocStbHostAVInterfaceType_len);
break;
case COLUMN_OCSTBHOSTAVINTERFACEDESC:
if (!table_entry) {
netsnmp_set_request_error(reqinfo, request,
SNMP_NOSUCHINSTANCE);
continue;
}
snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR,
(u_char *) table_entry->
ocStbHostAVInterfaceDesc,
table_entry->
ocStbHostAVInterfaceDesc_len);
break;
case COLUMN_OCSTBHOSTAVINTERFACESTATUS:
if (!table_entry) {
netsnmp_set_request_error(reqinfo, request,
SNMP_NOSUCHINSTANCE);
continue;
}
snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER,
table_entry->
ocStbHostAVInterfaceStatus);
break;
default:
netsnmp_set_request_error(reqinfo, request,
SNMP_NOSUCHOBJECT);
break;
}
}
break;

}
return SNMP_ERR_NOERROR;
}




On Wed, Mar 12, 2008 at 6:39 AM, Dave Shield <D.T.Shield@liverpool.ac.uk>
wrote:

> On 11/03/2008, kumar undurthi <manu1394@gmail.com> wrote:
> > I have a problem in creating a table and Fill the table. i.e
> > Normally table can create in initialization() part and can be fill with

> the
> > static data.
> > But in My case.... I want to Create and Fill the table with the dynamic
> > data(values) when ever a request comes to the Agent.

>
> Probably the best approach would be to use the cache helper.
>
> You haven't said how you are generating the code,
> or which table helper you are using. But if you run
> something like
> mib2c -c mib2c.table_data.conf -S cache=1 myTable
>
> this should generate a suitable framework for your MIB module,
> including the code to load the table data when a request
> comes in. This cached data will then be used for the next
> few requests, until it's judged "too old". Whereupon the
> next request will trigger a fresh reload.
>
> The same approach can be used with the iterator helper
> (same command, but specifying 'mib2c.iterator.conf'),
> and probably also with the MfD framework.
> (though I don't know much about that one).
>
> Dave
>


------=_Part_4309_9819939.1205523147875
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Hi All,<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; I have requirement in which i=
have to fill the table data when ever a request will come, For example che=
ck the below&nbsp; example.... it was generated by using mib2c.table_data.c=
onf.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; : in which &=
quot;ocStbHostAVInterfaceTable_handler&quot;&nbsp; is taking care of the re=
quests, So my requirement is <br>
when the a request come&nbsp; at &quot; i.e&nbsp;&nbsp; &quot;(check in cod=
e )&nbsp; case MODE_GET:&quot;&nbsp; then i want to update the table instat=
ed of initialize the&nbsp; table first (filling the table)&nbsp; at (check =
in code &quot; initialize_table_ocStbHostAVInterfaceTable(void) &quot; )<br=
>

<br>Please give the Solution as early as possible..... (adv Thank's)<br=
><br><br>/*<br>&nbsp;* Note: this file originally auto-generated by mib2c u=

sing<br>&nbsp;*&nbsp; : mib2c.table_data.conf 15999 2007-03-25 22:32:02Z dt=
s12 $<br>&nbsp;*/<br>
<br>/** handles requests for the ocStbHostAVInterfaceTable table */ int<br>=
&nbsp;<br>&nbsp;&nbsp;&nbsp; #include &lt;net-snmp/net-snmp-config.h&gt;<br=
>#include &lt;net-snmp/net-snmp-includes.h&gt;<br>#include &lt;net-snmp/age=

nt/net-snmp-agent-includes.h&gt;<br>
#define CHRMAX1 256<br>#define MAX_IOD_LENGTH1 128<br>/** Initializes the o=
cStbHostAVInterfaceTable module */<br>void<br>init_ocStbHostAVInterfaceTabl=
e(void)<br>{<br>&nbsp;&nbsp;&nbsp; /*<br>&nbsp;&nbsp;&nbsp;&nbsp; * here we=
initialize all the tables we're planning on supporting <br>
&nbsp;&nbsp;&nbsp;&nbsp; */<br>&nbsp;&nbsp;&nbsp; initialize_table_ocStbHos=
tAVInterfaceTable();<br>}<br><br>//# Determine the first/last column names<=
br><br>/** Initialize the ocStbHostAVInterfaceTable table by defining its c=
ontents and how it's structured */<br>
netsnmp_tdata&nbsp; *table_data;<br>void<br>initialize_table_ocStbHost AVInt=
erfaceTable(void)<br>{<br>&nbsp;&nbsp;&nbsp; static oid&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp; ocStbHostAVInterfaceTable_oid[] =3D<br>&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp; { 1, 3, 6, 1, 4, 1, 4491, 2, 3, 1, 1, 1, 2, 2 };<br>&nbsp=
;&nbsp;&nbsp; size_t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp; =
ocStbHostAVInterfaceTable_oid_len =3D<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OID_LENGTH(ocStbHostAVInterfaceT=
able_oid);<br>&nbsp;&nbsp;&nbsp; netsnmp_handler_registration *reg;<br>&nbs=
p;&nbsp;&nbsp; /*static*/ // netsnmp_tdata&nbsp; *table_data;<br>&nbsp;&nbs=
p;&nbsp; netsnmp_table_registration_info *table_info;<br><br>&nbsp;&nbsp;&n=
bsp; reg =3D<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; netsnmp_create_h=
andler_registration(&quot;ocStbHostAVInterfaceTabl e&quot;,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ocStbHostAVInterfaceTable_handler,<br>&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ocStbHostAVInterfaceTable_oid,<br>&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb sp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp; ocStbHostAVInterfaceTable_oid_len,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HANDLER_CAN_RONLY);<br><br>&nbsp;&nbsp;&n=
bsp; table_data =3D<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; netsnmp_t=
data_create_table(&quot;ocStbHostAVInterfaceTable& quot;, 0);<br>&nbsp;&nbsp=
;&nbsp; table_info =3D SNMP_MALLOC_TYPEDEF(netsnmp_table_registration_inf o)=
;<br>
&nbsp;&nbsp;&nbsp; netsnmp_table_helper_add_indexes(table_info, ASN_UNSIGNE=
D,&nbsp; /* index: ocStbHostAVInterfaceIndex */<br>&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0);<br><br>&nbsp;&nbsp;&nbsp; ta=
ble_info-&gt;min_column =3D COLUMN_OCSTBHOSTAVINTERFACETYPE;<br>
&nbsp;&nbsp;&nbsp; table_info-&gt;max_column =3D COLUMN_OCSTBHOSTAVINTERFAC=
ESTATUS;<br><br>&nbsp;&nbsp;&nbsp; netsnmp_tdata_register(reg, table_data, =
table_info);<br><br>&nbsp;&nbsp;&nbsp; /*<br>&nbsp;&nbsp;&nbsp;&nbsp; * Ini=
tialise the contents of the table here <br>&nbsp;&nbsp;&nbsp;&nbsp; */<br>}=
<br><br>
&nbsp;&nbsp;&nbsp; /*<br>&nbsp;&nbsp;&nbsp;&nbsp; * Typical data structure =
for a row entry <br>&nbsp;&nbsp;&nbsp;&nbsp; */<br>struct ocStbHostAVInterf=
aceTable_entry {<br>&nbsp;&nbsp;&nbsp; /*<br>&nbsp;&nbsp;&nbsp;&nbsp; * Ind=
ex values <br>&nbsp;&nbsp;&nbsp;&nbsp; */<br>&nbsp;&nbsp;&nbsp; u_long&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ; ocStbHostAVInterfaceIndex=
;<br><br>&nbsp;&nbsp;&nbsp; /*<br>
&nbsp;&nbsp;&nbsp;&nbsp; * Column values <br>&nbsp;&nbsp;&nbsp;&nbsp; */<br=
>&nbsp;&nbsp;&nbsp; oid&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbs=

p;&nbsp;&nbsp;&nbsp; ocStbHostAVInterfaceType[MAX_IOD_LENGTH1];<br>&nbsp;&n=
bsp;&nbsp; size_t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp; ocS=
tbHostAVInterfaceType_len;<br>&nbsp;&nbsp;&nbsp; char&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ocStbHostAVInterfaceDesc[CHRMA=
X1];<br>&nbsp;&nbsp;&nbsp; size_t&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp; ocStbHostAVInterfaceDesc_len;<br>
&nbsp;&nbsp;&nbsp; long&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbs=
p;&nbsp;&nbsp; ocStbHostAVInterfaceStatus;<br><br>&nbsp;&nbsp;&nb sp; int&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbsp;&nbsp;&nbsp; valid=
;<br>};<br><br>/*<br>&nbsp;* create a new row in the table <br>&nbsp;*/<br>=
netsnmp_tdata_row *<br>ocStbHostAVInterfaceTable_createEntry(netsnmp _tdata =
* table_data,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp; u_=
long ocStbHostAVInterfaceIndex)<br>{<br>&nbsp;&nbsp;&nb sp; struct ocStbHost=
AVInterfaceTable_entry *entry;<br>&nbsp;&nbsp;&nbsp; netsnmp_tdata_row *row=
;<br><br>&nbsp;&nbsp;&nbsp; entry =3D SNMP_MALLOC_TYPEDEF(struct ocStbHostA=
VInterfaceTable_entry);<br>
&nbsp;&nbsp;&nbsp; if (!entry)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp=
; return NULL;<br><br>&nbsp;&nbsp;&nbsp; row =3D netsnmp_tdata_create_row()=
;<br>&nbsp;&nbsp;&nbsp; if (!row) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp; SNMP_FREE(entry);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbsp;&nbsp; retu=
rn NULL;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; row-&gt;data =3D ent=
ry;<br>&nbsp;&nbsp;&nbsp; entry-&gt;ocStbHostAVInterfaceIndex =3D ocStbHost=
AVInterfaceIndex;<br>
&nbsp;&nbsp;&nbsp; netsnmp_tdata_row_add_index(row, ASN_UNSIGNED,<br>&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &amp;(entry-&gt;ocStbHostAVInterfaceIndex),<=
br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sizeof(entry-&gt;ocStbHostAVInterfa=
ceIndex));<br>&nbsp;&nbsp;&nbsp; netsnmp_tdata_add_row(table_data, row);<br=
>

&nbsp;&nbsp;&nbsp; return row;<br>}<br><br>/*<br>&nbsp;* remove a row from =
the table <br>&nbsp;*/<br>void<br>ocStbHostAVInterfaceTable_removeEntry( net=
snmp_tdata * table_data,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp; netsnmp_tdata_row * row)<br>{<br>
&nbsp;&nbsp;&nbsp; struct ocStbHostAVInterfaceTable_entry *entry;<br><br>&n=
bsp;&nbsp;&nbsp; if (!row)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p; re=
turn;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb sp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp; /* Nothing to remove */<br>&nbsp;&nbsp;&nbsp; en=
try =3D (struct ocStbHostAVInterfaceTable_entry *)<br>&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; netsnmp_tdata_remove_and_delete_row(table_data, row);=
<br>
&nbsp;&nbsp;&nbsp; if (entry)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb sp;=
SNMP_FREE(entry);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb sp; /* XXX - release any=
other internal resources */<br>}<br>int<br>ocStbHostAVInterfaceTable_handl=
er(netsnmp_mib_handler *handler,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp; netsnmp_handler_registration *reginfo,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ; netsnmp_agent_request_info=
*reqinfo,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb sp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; netsnmp_requ=
est_info *requests)<br>{<br><br>&nbsp;&nbsp;&nbsp; netsnmp_request_info *re=
quest;<br>&nbsp;&nbsp;&nbsp; netsnmp_table_request_info *table_info;<br>
&nbsp;&nbsp;&nbsp; netsnmp_tdata&nbsp; *table_data;<br>&nbsp;&nbsp;&nbsp; n=
etsnmp_tdata_row *table_row;<br>&nbsp;&nbsp;&nbsp; struct ocStbHostAVInterf=
aceTable_entry *table_entry;<br>&nbsp;&nbsp;&nbsp; int&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ; ret;<br><br>&nbsp;&nbsp=
;&nbsp; switch (reqinfo-&gt;mode) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp; /*<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb sp; * Read-suppor=
t (also covers GetNext requests)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ; */<br>&nbsp;&nbsp;&nbsp; &=
nbsp;&nbsp;&nbsp; case MODE_GET:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& nb=
sp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;=
&nbsp;&nbsp; table_entry =3D (struct ocStbHostAVInterfaceTable_entry *)<br>=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp; netsnmp_tdata_extract_entry(request);<br>&nbsp;&nb sp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ; table_info =3D netsnmp_ext=
ract_table_info(request);<br>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp; swit=
ch (table_info-&gt;colnum) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp; case COLUMN_OCSTBHOSTAVINTERFACETYPE:<br>&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp; if (!table_entry) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb s=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; netsnm=
p_set_request_error(reqinfo, request,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb sp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp; SNMP_NOSUCHINSTANCE);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; continue;<br>&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb sp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp; snmp_set_var_typed_value(request-&gt;requestvb, ASN_OBJECT_I=
D,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; (u_char *) table_entry-&gt;<br>&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb sp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ocStbH=
ostAVInterfaceType,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp; table_entry-&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb =
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ; ocStbHostAVInterfaceTyp=
e_len);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb sp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp; break;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp; case COLUMN_OCSTBHOSTAVINTERFACEDESC:<br>&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp; if (!table_entry) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; netsnmp_set_request_error(reqinfo, =
request,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbsp; SNMP_NOSUCHINSTAN=
CE);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; continue;<br>&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;&nbsp=
; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb sp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp; snmp_set_var_typed_value(request-&gt;requestvb, ASN_=
OCTET_STR,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp; (u_char *) table_entry-&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb sp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; ocStbHostAVI=
nterfaceDesc,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb sp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb sp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table_entry-&gt;<br>&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb sp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ocStbH=
ostAVInterfaceDesc_len);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp; break;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&=
nbsp;&nbsp;&nbsp; case COLUMN_OCSTBHOSTAVINTERFACESTATUS:<br>&nbsp;&nbsp; &n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;&nbsp=
; if (!table_entry) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb sp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp; netsnmp_se=
t_request_error(reqinfo, request,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n =
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp; SNMP_NOSUCHINSTANCE);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; continue;<br>&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb sp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp; snmp_set_var_typed_integer(request-&gt;requestvb, ASN_INTEGE=
R,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table_entry-&gt;<br>&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp; ocStbHostAVInterfaceStatus);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp; break;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&=
nbsp;&nbsp;&nbsp; default:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; netsnmp_set_request_error(req=
info, request,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SNMP_NOSUCHOBJECT);<br>&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nb=
sp; break;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;&=
nbsp; }<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp; break;<br><br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; re=
turn SNMP_ERR_NOERROR;<br>}<br><br>&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbs=
p;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br><br><div class=3D"gmail_quo=
te">On Wed, Mar 12, 2008 at 6:39 AM, Dave Shield &lt;<a href=3D"mailto:D.T.=
Shield@liverpool.ac.uk">D.T.Shield@liverpool.ac.uk</a>&gt; wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"border-left: 1px solid rgb(204, =
204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class=3D"Ih2=
E3d">On 11/03/2008, kumar undurthi &lt;<a href=3D"mailto:manu1394@gmail.com=
">manu1394@gmail.com</a>&gt; wrote:<br>

&gt; &nbsp; &nbsp; &nbsp; &nbsp;I have a problem in creating a table and Fi=
ll the table. i.e<br>
&gt; Normally table can create in initialization() part and can be fill wit=
h the<br>
&gt; static data.<br>
&gt; But in My case.... I want to Create and Fill the table with the dynami=
c<br>
&gt; data(values) when ever a request comes to the Agent.<br>
<br>
</div>Probably the best approach would be to use the cache helper.<br>
<br>
You haven't said how you are generating the code,<br>
or which table helper you are using. &nbsp; But if you run<br>
something like<br>
&nbsp; &nbsp;mib2c -c mib2c.table_data.conf &nbsp;-S cache=3D1 &nbsp; myTa=
ble<br>
<br>
this should generate a suitable framework for your MIB module,<br>
including the code to load the table data when a request<br>
comes in. &nbsp; This cached data will then be used for the next<br>
few requests, until it's judged &quot;too old&quot;. &nbsp;Whereupon th=
e<br>
next request will trigger a fresh reload.<br>
<br>
&nbsp;The same approach can be used with the iterator helper<br>
(same command, but specifying 'mib2c.iterator.conf'),<br>
and probably also with the MfD framework.<br>
&nbsp;(though I don't know much about that one).<br>
<font color=3D"#888888"><br>
Dave<br>
</font></blockquote></div><br>

------=_Part_4309_9819939.1205523147875--


--===============1432260483==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
--===============1432260483==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Net-snmp-users mailing list
Net-snmp-users@lists.sourceforge.net
Please see the following page to unsubscribe or change other options:
https://lists.sourceforge.net/lists/...net-snmp-users

--===============1432260483==--

Reply With Quote
Reply


Thread Tools
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

vB 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 11:47 AM.


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