#include "snmp.h"
void create()
{
}
buffer BufferiseInt(int p)
{
buffer buf1;
buf1=allocate_buffer(4);
if(p<0)
{
buf1[0]=(4294967296+p)/16777216;
} else {
buf1[0]=p/16777216;
}
buf1[1]=p/65536;
buf1[2]=p/256;
buf1[3]=p%256;
return buf1;
}
buffer GetData(buffer MIB)
{
int i,j,k;
object *tmp;
buffer mibreply,mibdata,tmpbuf;
mibreply=allocate_buffer(4);
tmpbuf=allocate_buffer(1);
mibreply[0]=48;
mibreply[1]=0;
mibreply[2]=OBJECT_IDENT;
mibreply[3]=0;
mibreply+=MIB;
i=sizeof(mibreply);
switch(MIB[6])
{
case 101 :
j=sizeof(users());
tmpbuf[0]=2;
mibreply+=tmpbuf;
tmpbuf[0]=0;
mibreply+=tmpbuf;
tmpbuf=BufferiseInt(j);
mibreply+=tmpbuf;
mibreply[i+1]=sizeof(tmpbuf);
break;
case 102 :
j=0;
tmp=users();
for(k=0;k<sizeof(tmp);k++)
if(tmp[k] && (tmp[k])->query_creator())
j++;
tmpbuf[0]=2;
mibreply+=tmpbuf;
tmpbuf[0]=0;
mibreply+=tmpbuf;
tmpbuf=BufferiseInt(j);
mibreply+=tmpbuf;
mibreply[i+1]=sizeof(tmpbuf);
break;
case 100 :
tmpbuf[0]=2;
mibreply+=tmpbuf;
tmpbuf[0]=1;
mibreply+=tmpbuf;
tmpbuf[0]=0;
mibreply+=tmpbuf;
break;
default :
mibreply[0]=255;
break;
}
mibreply[1]=sizeof(mibreply)-2;
mibreply[3]=sizeof(MIB);
return mibreply;
}