📄 snmp.c
字号:
ii = (sizeof(mmRootId)/sizeof(int));
node= ((h341AgentT *)hSnmp)->root;
if (!((h341AgentT *)hSnmp)->instNum)
return noRegisterInstance;
for (;ii<oid->length;ii++)
{
subId = oid->id[ii];
if ((int)node->childNum < subId)
return noSuchField;
if (node->table)
{
if (node->getH323Parameter!=NULL)
{
node->getH323Parameter(hSnmp,pduSetParam,oid,&ii,node,buffer,&error );
return error;
}
}
if(node->childNum==0)
return noSuchField;
children = node->children;
node = &children[subId-1];
}
if (node->getH323Parameter!=NULL)
{
node->getH323Parameter(hSnmp,pduSetParam,oid,&ii,node,buffer,&error );
return error;
}
return 0;
}
mibNodeT * mibCreateNode (mibNodeT * parent,int number,int childNumber,h341ParameterName name,
getH323ParameterT getH323Parameter,RvBool table)
{
mibNodeT *node;
if((int)parent->childNum<number)
return NULL;
node = &parent->children[number-1];
node->name=name;
node->parent=parent;
node->table=table;
node->childNum=(RvUint8 )childNumber;
if (!table)
{
RvMemoryAlloc(NULL, (void**)&node->children, childNumber*sizeof(mibNodeT));
memset(node->children,0,childNumber * sizeof(mibNodeT));
}
node->getH323Parameter=getH323Parameter;
return node;
}
mibNodeT * mibCreateNodeL (mibNodeT * parent,int number,int childNumber,h341ParameterName name,
getH323ParameterT getH323Parameter)
{
mibNodeT *node;
if((int)parent->childNum<number)
return NULL;
node = &parent->children[number-1];
node->name=name;
node->childNum=(RvUint8 )childNumber;
RvMemoryAlloc(NULL, (void**)&node->children, childNumber*sizeof(mibNodeT));
memset(node->children,0,childNumber * sizeof(mibNodeT));
node->getH323Parameter=getH323Parameter;
return node;
}
int translate(void)
{
FILE * fp,*fp2;
char sIn[200],sOut[200],*ptr,*b;
fp = fopen("text.cpp","rb");
fp2 = fopen("text1.cpp","w+b");
if(fp==NULL)
return -1;
while(fgets(sIn,100,fp)!=NULL)
{
ptr = strchr(sIn,',');
if(ptr!=NULL)
*ptr=0;
b=sIn;
while((*b==' ')||(*b=='\t'))
b++;
if ((*b!=0)&&(*b!='\r') && (*b!='\n') )
{
RvSprintf(sOut," case %s:\n \treturn \"%s\";\n",b,b);
fwrite(sOut,strlen(sOut),1,fp2);
}
}
fclose(fp);
fclose(fp2);
return 0;
}
int createH320Mib(h341AgentT * hSnmp,mibNodeT * parent)
{
mibNodeT *node;
if (hSnmp);
node = mibCreateNode(parent, 2,0, mmH320Root,getEventParameter,RV_FALSE);
return 0;
}
int createH225Mib(h341AgentT * hSnmp,mibNodeT * parent)
{
mibNodeT * node,*h225root,*hRASroot;
if (hSnmp);
node = mibCreateNode(parent, 1,2, mmH323Root,getParameter,RV_FALSE);
h225root = mibCreateNode(node, 1,4, h225callSignaling,getParameter,RV_FALSE);
hRASroot = mibCreateNode(node, 2,1, ras,getParameter,RV_FALSE);
node = mibCreateNode(h225root, 1,1, callSignalConfig,getParameter,RV_FALSE);
node = mibCreateNode(node, 1,1, callSignalConfigTable,getParameter,RV_FALSE);
node = mibCreateNode(node, 1,5, callSignalConfigEntry,getTableParameter,RV_TRUE);
node = mibCreateNode(h225root, 2,1, callSignalStats,getParameter,RV_FALSE);
node = mibCreateNode(node, 1,1, callSignalStatsTable,getParameter,RV_FALSE);
node = mibCreateNode(node, 1,25, callSignalStatsEntry,getTableParameter,RV_TRUE);
node = mibCreateNode(h225root, 3,2, connections,getParameter,RV_FALSE);
mibCreateNode(node, 1,0, connectionsActiveConnections,getGlobalParameter,RV_TRUE);
node = mibCreateNode(node, 2,1, connectionsTable,getParameter,RV_FALSE);
node = mibCreateNode(node, 1,32, connectionsTableEntry,getIndexTableParameter,RV_TRUE);
node = mibCreateNode(h225root, 4,0, callSignalEvents,getEventParameter,RV_TRUE);
node = mibCreateNode(hRASroot, 1,1,rasConfiguration,getParameter,RV_FALSE);
node = mibCreateNode(node, 1,1,rasConfigurationTable,getParameter,RV_FALSE);
node = mibCreateNode(node, 1,5,rasConfigurationTableEntry,getTableParameter,RV_TRUE);
return 0;
}
int createH245Mib(h341AgentT * hSnmp,mibNodeT * parent)
{
mibNodeT * id0;
mibNodeT * id1;
mibNodeT * id2;
mibNodeT * id3;
mibNodeT * id4;
mibNodeT * id8;
mibNodeT * id20;
mibNodeT * id37;
mibNodeT * id48;
mibNodeT * id58;
mibNodeT * id67;
mibNodeT * id74;
mibNodeT * id91;
mibNodeT * id111;
mibNodeT * node;
mibNodeT *h245root;
if (hSnmp);
node = mibCreateNode(parent, 3,1, mmH245Root,getParameter,RV_FALSE);
id0 = mibCreateNode(node, 1,/*6*/4, h245,getParameter,RV_FALSE);
h245root = id0;
id1 = mibCreateNode(id0, 1,1, h245Configuration,getParameter,RV_FALSE);
id8 = mibCreateNode(id1, 1,1, h245ConfigurationTable,getParameter,RV_FALSE);
mibCreateNode(id8, 1,10, h245ConfigurationTableEntry,getTableParameter,RV_TRUE);
id2 = mibCreateNode(id0, 2,2, h245ControlChannel,getParameter,RV_FALSE);
id20 = mibCreateNode(id2, 1,1, h245ControlChannelStatsTable,getParameter,RV_FALSE);
mibCreateNode(id20, 1,15, h245ControlChannelStatsTableEntry,getTableParameter,RV_TRUE);
id37 = mibCreateNode(id2, 2,1, h245ControlChannelMasterSlaveTable,getParameter,RV_FALSE);
mibCreateNode(id37, 1,9, h245ControlChannelMasterSlaveTableEntry,getIndexTableParameter,RV_TRUE);
id3 = mibCreateNode(id0, 3,2, h245CapExchange,getParameter,RV_FALSE);
id48 = mibCreateNode(id3, 1,1, h245CapExchangeStatsTable,getParameter,RV_FALSE);
mibCreateNode(id48, 1,8, h245CapExchangeStatsTableEntry,getTableParameter,RV_TRUE);
id58 = mibCreateNode(id3, 2,1, h245CapExchangeCapabilityTable,getParameter,RV_FALSE);
mibCreateNode(id58, 1,7, h245CapExchangeCapabilityTableEntry,getIndexTableParameter,RV_TRUE);
id4 = mibCreateNode(id0, 4,4, h245LogChannels,getParameter,RV_FALSE);
id67 = mibCreateNode(id4, 1,1, h245LogChannelsChannelTable,getParameter,RV_FALSE);
mibCreateNode(id67, 1,5, h245LogChannelsChannelTableEntry,getIndexTableParameter,RV_TRUE);
id74 = mibCreateNode(id4, 2,1, h245LogChannelsH225Table,getParameter,RV_FALSE);
mibCreateNode(id74, 1,15, h245LogChannelsH225TableEntry,getIndexTableParameter,RV_TRUE);
id91 = mibCreateNode(id4, 3,1, h245LogChannelOpenLogicalChannelTable,getParameter,RV_FALSE);
mibCreateNode(id91, 1,18, h245LogChannelOpenLogicalChannelTableEntry,getTableParameter,RV_TRUE);
id111 = mibCreateNode(id4, 4,1, h245LogChannelCloseLogicalChannelTable,getParameter,RV_FALSE);
mibCreateNode(id111, 1,6, h245LogChannelCloseLogicalChannelTableEntry,getTableParameter,RV_TRUE);
/*
conference and misk are not implemented, number of h245 subtree is 4 (for creating id0)
id5 = mibCreateNode(id0, 5,2, h245Conference,getParameter,RV_FALSE);
id138 = mibCreateNode(id5, 1,1, h245ConferenceTerminalTable,getParameter,RV_FALSE);
mibCreateNode(id138, 1,6, h245ConferenceTerminalTableEntry,getIndexTableParameter,RV_TRUE);
id146 = mibCreateNode(id5, 2,1, h245ConferenceStatsTable,getParameter,RV_FALSE);
mibCreateNode(id146, 1,15, h245ConferenceStatsTableEntry,getTableParameter,RV_TRUE);
id6 = mibCreateNode(id0, 6,2, h245Misc,getParameter,RV_FALSE);
id119 = mibCreateNode(id6, 1,1, h245MiscRoundTripDelayTable,getParameter,RV_FALSE);
mibCreateNode(id119, 1,6, h245MiscRoundTripDelayTableEntry,getIndexTableParameter,RV_TRUE);
id127 = mibCreateNode(id6, 2,1, h245MiscMaintenanceLoopTable,getParameter,RV_FALSE);
mibCreateNode(id127, 1,9, h245MiscMaintenanceLoopTableEntry,getIndexTableParameter,RV_TRUE);
*/
return 0;
}
h341ErrorT createMib(h341AgentT* hSnmp)
{
mibNodeT parent;
parent.childNum=(RvUint8)1;
RvMemoryAlloc(NULL, (void**)&parent.children, sizeof(mibNodeT));
parent.parent=NULL;
hSnmp->root = mibCreateNode(&parent, 1,3, mmRoot,getParameter,RV_FALSE);
hSnmp->root->parent=NULL;
createH225Mib(hSnmp,hSnmp->root);
createH245Mib(hSnmp,hSnmp->root);
createH320Mib(hSnmp,hSnmp->root);
return (h341ErrorT)0;
}
void destroyMib(mibNodeT * node)
{
int ii;
if (node !=NULL)
{
if (!node->table)
{
for (ii=0;ii<node->childNum;ii++)
destroyMib( &(node->children[ii]));
}
RvMemoryFree(node);
}
}
#ifdef CONSOLE
void testtable();
int main(int argc, char* argv[])
{
mibNodeT parent;
fpDebug = fopen("dd.c","wb");
parent.childNum=(RvUint8)1;
RvMemoryAlloc(NULL, (void**)&parent->children, sizeof(mibNodeT));
parent.parent=NULL;
hSnmp.root = mibCreateNode(&parent, 1,3, mmRoot,getParameter,RV_FALSE);
createH225Mib(&hSnmp,hSnmp.root);
createH245Mib(&hSnmp,hSnmp.root);
createH320Mib(&hSnmp,hSnmp.root);
dPrintMib(hSnmp.root,"0.0.341",2,1);
testtable();
{
int bufferSize = 1024;
snmpObjectT oidNext;
int idNext[30];
snmpObjectT oid;
int id[] = {0,0,8,341,1,1,1,1,1,2};
oidNext.id = idNext;
oidNext.length=30;
oid.id = id;
oid.length = sizeof(id)/sizeof(int);
getNext(&hSnmp,&oid,(char *)&oidNext,&bufferSize);
dPrintOid(&oidNext,"next oid = ");
}
{
int bufferSize = 1024;
snmpObjectT oidNext;
int idNext[30];
snmpObjectT oid;
int id[] = {0,0,8,341,1,1,1,3};
oidNext.id = idNext;
oidNext.length=30;
oid.id = id;
oid.length = sizeof(id)/sizeof(int);
getNext(&hSnmp,&oid,(char *)&oidNext,&bufferSize);
dPrintOid(&oidNext,"next oid = ");
}
{
int bufferSize = 1024;
snmpObjectT oidNext;
snmpObjectT oid;
snmpObjectT pOid;
int pId[30];
int idNext[30];
int id[] = {0,0,8,341,1};
pOid.id=pId;
oidNext.id = idNext;
oidNext.length=30;
oid.id = id;
oid.length = sizeof(id)/sizeof(int);
memcpy(pOid.id,id,sizeof(id));
pOid.length = oid.length;
while (!getNext(&hSnmp,&pOid,(char *)&oidNext,&bufferSize))
{
dPrintOid(&oidNext,"next oid = ");
memcpy(pOid.id,oidNext.id,30*sizeof(int));
pOid.length = oidNext.length;
oidNext.length = 30;
}
}
fclose(fpDebug);
return 0;
}
#endif
#ifdef __cplusplus
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -