⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dmatrixm.c

📁 嵌入式RMON,RMON为Remote monitor的缩写,基于SNMP为网络提供主动监控及错误告警,智能交换路由必备协议
💻 C
📖 第 1 页 / 共 4 页
字号:
	ConnInfo *data = NULL;	INT rank = 0;	Host *source = NULL;	Host *dest = NULL;	if ((local = DnpapMatrixRankMibRmon(obj, MatrixControlInstance, idlen)) == NULL)		return SNMP_NOSUCHNAME;	switch (obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(obj, &local, idlen, RANKINDEXSIZE, &data, TRUE, &source, &dest, &rank) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = DnpapMatrixSearchTopObj(local->Data, obj, idlen, TRUE, &source, &rank)) == NULL)			return SNMP_NOSUCHNAME;		memcpy(obj->Syntax.BufChr, data->ConnHost->Addr, obj->SyntaxLen = ((DNPAP_MATRIX_CONTROL *) local->Data)->AddressLen);		return SNMP_NOERROR;	case SNMP_PDU_SET:		return SNMP_READONLY;	}	return SNMP_GENERROR;}WORD DMatrixSRankTopNIndex(SNMP_OBJECT * obj, WORD idlen){	MIB_LOCAL *local = NULL;	ConnInfo *data = NULL;	INT rank = 0;	Host *source = NULL;	Host *dest = NULL;	if ((local = DnpapMatrixRankMibRmon(obj, MatrixControlInstance, idlen)) == NULL)		return SNMP_NOSUCHNAME;	switch (obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(obj, &local, idlen, RANKINDEXSIZE, &data, TRUE, &source, &dest, &rank) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = DnpapMatrixSearchTopObj(local->Data, obj, idlen, TRUE, &source, &rank)) == NULL)			return SNMP_NOSUCHNAME;		obj->Syntax.LngInt = local->Index;		return SNMP_NOERROR;	case SNMP_PDU_SET:		return SNMP_READONLY;	}	return SNMP_GENERROR;}WORD DMatrixSRankTopNRanking(SNMP_OBJECT * obj, WORD idlen){	MIB_LOCAL *local = NULL;	ConnInfo *data = NULL;	INT rank = 0;	Host *source = NULL;	Host *dest = NULL;	if ((local = DnpapMatrixRankMibRmon(obj, MatrixControlInstance, idlen)) == NULL)		return SNMP_NOSUCHNAME;	switch (obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(obj, &local, idlen, RANKINDEXSIZE, &data, TRUE, &source, &dest, &rank) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = DnpapMatrixSearchTopObj(local->Data, obj, idlen, TRUE, &source, &rank)) == NULL)			return SNMP_NOSUCHNAME;		obj->Syntax.LngInt = rank;		return SNMP_NOERROR;	case SNMP_PDU_SET:		return SNMP_READONLY;	}	return SNMP_GENERROR;}WORD DMatrixSRankTopNPkts(SNMP_OBJECT * obj, WORD idlen){	MIB_LOCAL *local = NULL;	ConnInfo *data = NULL;	INT rank = 0;	Host *source = NULL;	Host *dest = NULL;	if ((local = DnpapMatrixRankMibRmon(obj, MatrixControlInstance, idlen)) == NULL)		return SNMP_NOSUCHNAME;	switch (obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(obj, &local, idlen, RANKINDEXSIZE, &data, TRUE, &source, &dest, &rank) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = DnpapMatrixSearchTopObj(local->Data, obj, idlen, TRUE, &source, &rank)) == NULL)			return SNMP_NOSUCHNAME;		obj->Syntax.LngUns = data->Stats->Pkts;		return SNMP_NOERROR;	case SNMP_PDU_SET:		return SNMP_READONLY;	}	return SNMP_GENERROR;}WORD DMatrixSRankTopNOctets(SNMP_OBJECT * obj, WORD idlen){	MIB_LOCAL *local = NULL;	ConnInfo *data = NULL;	INT rank = 0;	Host *source = NULL;	Host *dest = NULL;	if ((local = DnpapMatrixRankMibRmon(obj, MatrixControlInstance, idlen)) == NULL)		return SNMP_NOSUCHNAME;	switch (obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(obj, &local, idlen, RANKINDEXSIZE, &data, TRUE, &source, &dest, &rank) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = DnpapMatrixSearchTopObj(local->Data, obj, idlen, TRUE, &source, &rank)) == NULL)			return SNMP_NOSUCHNAME;		obj->Syntax.LngUns = data->Stats->Octets;		return SNMP_NOERROR;	case SNMP_PDU_SET:		return SNMP_READONLY;	}	return SNMP_GENERROR;}WORD DMatrixSRankTopNErrors(SNMP_OBJECT * obj, WORD idlen){	MIB_LOCAL *local = NULL;	ConnInfo *data = NULL;	INT rank = 0;	Host *source = NULL;	Host *dest = NULL;	if ((local = DnpapMatrixRankMibRmon(obj, MatrixControlInstance, idlen)) == NULL)		return SNMP_NOSUCHNAME;	switch (obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(obj, &local, idlen, RANKINDEXSIZE, &data, TRUE, &source, &dest, &rank) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = DnpapMatrixSearchTopObj(local->Data, obj, idlen, TRUE, &source, &rank)) == NULL)			return SNMP_NOSUCHNAME;		obj->Syntax.LngUns = data->Stats->Errors;		return SNMP_NOERROR;	case SNMP_PDU_SET:		return SNMP_READONLY;	}	return SNMP_GENERROR;}WORD DMatrixSRankTopNConnections(SNMP_OBJECT * obj, WORD idlen){	MIB_LOCAL *local = NULL;	ConnInfo *data = NULL;	INT rank = 0;	Host *source = NULL;	Host *dest = NULL;	if ((local = DnpapMatrixRankMibRmon(obj, MatrixControlInstance, idlen)) == NULL)		return SNMP_NOSUCHNAME;	switch (obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(obj, &local, idlen, RANKINDEXSIZE, &data, TRUE, &source, &dest, &rank) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = DnpapMatrixSearchTopObj(local->Data, obj, idlen, TRUE, &source, &rank)) == NULL)			return SNMP_NOSUCHNAME;		obj->Syntax.LngUns = source->NumberConnect;		return SNMP_NOERROR;	case SNMP_PDU_SET:		return SNMP_READONLY;	}	return SNMP_GENERROR;}WORD DMatrixDRankTopNSource(SNMP_OBJECT * obj, WORD idlen){	MIB_LOCAL *local = NULL;	ConnInfo *data = NULL;	INT rank = 0;	Host *source = NULL;	Host *dest = NULL;	if ((local = DnpapMatrixRankMibRmon(obj, MatrixControlInstance, idlen)) == NULL)		return SNMP_NOSUCHNAME;	switch (obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(obj, &local, idlen, RANKINDEXSIZE, &data, FALSE, &source, &dest, &rank) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = DnpapMatrixSearchTopObj(local->Data, obj, idlen, FALSE, &dest, &rank)) == NULL)			return SNMP_NOSUCHNAME;		memcpy(obj->Syntax.BufChr, data->ConnHost->Addr, obj->SyntaxLen = ((DNPAP_MATRIX_CONTROL *) local->Data)->AddressLen);		return SNMP_NOERROR;	case SNMP_PDU_SET:		return SNMP_READONLY;	}	return SNMP_GENERROR;}WORD DMatrixDRankTopNDest(SNMP_OBJECT * obj, WORD idlen){	MIB_LOCAL *local = NULL;	ConnInfo *data = NULL;	INT rank = 0;	Host *source = NULL;	Host *dest = NULL;	if ((local = DnpapMatrixRankMibRmon(obj, MatrixControlInstance, idlen)) == NULL)		return SNMP_NOSUCHNAME;	switch (obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(obj, &local, idlen, RANKINDEXSIZE, &data, FALSE, &source, &dest, &rank) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = DnpapMatrixSearchTopObj(local->Data, obj, idlen, FALSE, &dest, &rank)) == NULL)			return SNMP_NOSUCHNAME;		memcpy(obj->Syntax.BufChr, dest->Addr, obj->SyntaxLen = ((DNPAP_MATRIX_CONTROL *) local->Data)->AddressLen);		return SNMP_NOERROR;	case SNMP_PDU_SET:		return SNMP_READONLY;	}	return SNMP_GENERROR;}WORD DMatrixDRankTopNIndex(SNMP_OBJECT * obj, WORD idlen){	MIB_LOCAL *local = NULL;	ConnInfo *data = NULL;	INT rank = 0;	Host *source = NULL;	Host *dest = NULL;	if ((local = DnpapMatrixRankMibRmon(obj, MatrixControlInstance, idlen)) == NULL)		return SNMP_NOSUCHNAME;	switch (obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(obj, &local, idlen, RANKINDEXSIZE, &data, FALSE, &source, &dest, &rank) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = DnpapMatrixSearchTopObj(local->Data, obj, idlen, FALSE, &dest, &rank)) == NULL)			return SNMP_NOSUCHNAME;		obj->Syntax.LngInt = local->Index;		return SNMP_NOERROR;	case SNMP_PDU_SET:		return SNMP_READONLY;	}	return SNMP_GENERROR;}WORD DMatrixDRankTopNRanking(SNMP_OBJECT * obj, WORD idlen){	MIB_LOCAL *local = NULL;	ConnInfo *data = NULL;	INT rank = 0;	Host *source = NULL;	Host *dest = NULL;	if ((local = DnpapMatrixRankMibRmon(obj, MatrixControlInstance, idlen)) == NULL)		return SNMP_NOSUCHNAME;	switch (obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(obj, &local, idlen, RANKINDEXSIZE, &data, FALSE, &source, &dest, &rank) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = DnpapMatrixSearchTopObj(local->Data, obj, idlen, FALSE, &dest, &rank)) == NULL)			return SNMP_NOSUCHNAME;		obj->Syntax.LngInt = rank;		return SNMP_NOERROR;	case SNMP_PDU_SET:		return SNMP_READONLY;	}	return SNMP_GENERROR;}WORD DMatrixDRankTopNPkts(SNMP_OBJECT * obj, WORD idlen){	MIB_LOCAL *local = NULL;	ConnInfo *data = NULL;	INT rank = 0;	Host *source = NULL;	Host *dest = NULL;	if ((local = DnpapMatrixRankMibRmon(obj, MatrixControlInstance, idlen)) == NULL)		return SNMP_NOSUCHNAME;	switch (obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(obj, &local, idlen, RANKINDEXSIZE, &data, FALSE, &source, &dest, &rank) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = DnpapMatrixSearchTopObj(local->Data, obj, idlen, FALSE, &dest, &rank)) == NULL)			return SNMP_NOSUCHNAME;		obj->Syntax.LngUns = data->Stats->Pkts;		return SNMP_NOERROR;	case SNMP_PDU_SET:		return SNMP_READONLY;	}	return SNMP_GENERROR;}WORD DMatrixDRankTopNOctets(SNMP_OBJECT * obj, WORD idlen){	MIB_LOCAL *local = NULL;	ConnInfo *data = NULL;	INT rank = 0;	Host *source = NULL;	Host *dest = NULL;	if ((local = DnpapMatrixRankMibRmon(obj, MatrixControlInstance, idlen)) == NULL)		return SNMP_NOSUCHNAME;	switch (obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(obj, &local, idlen, RANKINDEXSIZE, &data, FALSE, &source, &dest, &rank) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = DnpapMatrixSearchTopObj(local->Data, obj, idlen, FALSE, &dest, &rank)) == NULL)			return SNMP_NOSUCHNAME;		obj->Syntax.LngUns = data->Stats->Octets;		return SNMP_NOERROR;	case SNMP_PDU_SET:		return SNMP_READONLY;	}	return SNMP_GENERROR;}WORD DMatrixDRankTopNErrors(SNMP_OBJECT * obj, WORD idlen){	MIB_LOCAL *local = NULL;	ConnInfo *data = NULL;	INT rank = 0;	Host *source = NULL;	Host *dest = NULL;	if ((local = DnpapMatrixRankMibRmon(obj, MatrixControlInstance, idlen)) == NULL)		return SNMP_NOSUCHNAME;	switch (obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(obj, &local, idlen, RANKINDEXSIZE, &data, FALSE, &source, &dest, &rank) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = DnpapMatrixSearchTopObj(local->Data, obj, idlen, FALSE, &dest, &rank)) == NULL)			return SNMP_NOSUCHNAME;		obj->Syntax.LngUns = data->Stats->Errors;		return SNMP_NOERROR;	case SNMP_PDU_SET:		return SNMP_READONLY;	}	return SNMP_GENERROR;}WORD DMatrixDRankTopNConnections(SNMP_OBJECT * obj, WORD idlen){	MIB_LOCAL *local = NULL;	ConnInfo *data = NULL;	INT rank = 0;	Host *source = NULL;	Host *dest = NULL;	if ((local = DnpapMatrixRankMibRmon(obj, MatrixControlInstance, idlen)) == NULL)		return SNMP_NOSUCHNAME;	switch (obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(obj, &local, idlen, RANKINDEXSIZE, &data, FALSE, &source, &dest, &rank) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = DnpapMatrixSearchTopObj(local->Data, obj, idlen, FALSE, &dest, &rank)) == NULL)			return SNMP_NOSUCHNAME;		obj->Syntax.LngUns = dest->NumberConnect;		return SNMP_NOERROR;	case SNMP_PDU_SET:		return SNMP_READONLY;	}	return SNMP_GENERROR;}ConnInfo *SrcDstGetFirstNext(DNPAP_MATRIX_CONTROL * matrixcontrol, SNMP_OBJECT * obj, WORD idlen, BOOLEAN first, BOOLEAN SDorder, Host ** source, Host ** dest, INT * rank){	BYTE srcdst[2 * HOST_SIZE_ADDR];	BYTE *src, *dst;	INT i, len;	ConnInfo *conn = NULL, *conn2 = NULL;	BOOLEAN nextconn, firstconn;	WORD addrlen = matrixcontrol->AddressLen;	*source = *dest = NULL;	*rank = 0;	if (matrixcontrol->TableSize == 0)		return NULL;	nextconn = FALSE;	firstconn = FALSE;	if (first == FALSE)	{		if (obj->IdLen > idlen + 1)		{			if (obj->Id[idlen + 1] > addrlen)				return NULL;			if (obj->Id[idlen + 1] < addrlen)				first = TRUE;		}		else			first = TRUE;			if (obj->IdLen > idlen + 1 + addrlen +1)		{			if (obj->Id[idlen + 1 + addrlen + 1] > addrlen)				nextconn = TRUE;			if (obj->Id[idlen + 1 + addrlen + 1] < addrlen)				firstconn = TRUE;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -