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

📄 discnodm.c

📁 嵌入式RMON,RMON为Remote monitor的缩写,基于SNMP为网络提供主动监控及错误告警,智能交换路由必备协议
💻 C
📖 第 1 页 / 共 3 页
字号:
				return SNMP_NOSUCHNAME;			}		}		data = (DISCNODE_CONTROL *) local->Data;		switch (data->Status)		{		case SNMP_UNDERCREATION:			switch (Obj->Syntax.LngInt)			{			case SNMP_VALID:				if (DiscNodeCStart(data) == TRUE)				{					data->Status = SNMP_VALID;					DnpapMessage(DMC_MESSAGE, DISC_START, "discnode: collector %ld active", local->Index);					return SNMP_NOERROR;				}				return SNMP_BADVALUE;			case SNMP_INVALID:				if (DiscNodeCStop(data) == TRUE)				{					DnpapFree(local->Data);					DnpapMessage(DMC_MESSAGE, DISC_DESTROY, "discnode: collector %ld destroyed", local->Index);					if (MibRemove(Obj, &DiscNodeControlInstance, IdLen, CONTROLINDEXSIZE) == TRUE)						return SNMP_NOERROR;				}				return SNMP_GENERROR;			default:				return SNMP_BADVALUE;			}		case SNMP_VALID:			switch (Obj->Syntax.LngInt)			{			case SNMP_VALID:				return SNMP_NOERROR;			case SNMP_INVALID:				if (DiscNodeCStop(data) == TRUE)				{					DnpapFree(local->Data);					DnpapMessage(DMC_MESSAGE, DISC_DESTROY, "discnode: collector %ld destroyed", local->Index);					if (MibRemove(Obj, &DiscNodeControlInstance, IdLen, CONTROLINDEXSIZE) == TRUE)						return SNMP_NOERROR;				}				return SNMP_GENERROR;			default:				return SNMP_BADVALUE;			}		}	}	return SNMP_GENERROR;}WORD DiscNodeEthAddress(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	DISCNODE *data = NULL;	INT type;	WORD i, len, offset, sublen;	if ((type = DiscTableType(Obj, IdLen)) == 0)		return SNMP_NOSUCHNAME;	if ((len = DiscTableLen(type, DISC_TYPE_ETH, &offset, &sublen)) == 0)		return SNMP_NOSUCHNAME;	if ((local = MibRmon(Obj, DiscNodeControlInstance, IdLen, len)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, type, len, &data) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = DiscNodeSearchHash(local->Data, type, Obj, IdLen)) == NULL)			return SNMP_NOSUCHNAME;		for (i = 0; i < sublen; i++)			Obj->Syntax.BufChr[i] = (BYTE) data->Address[offset + i];		Obj->SyntaxLen = sublen;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD DiscNodeIPAddress(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	DISCNODE *data = NULL;	INT type;	WORD i, len, offset, sublen;	if ((type = DiscTableType(Obj, IdLen)) == 0)		return SNMP_NOSUCHNAME;	if ((len = DiscTableLen(type, DISC_TYPE_IP, &offset, &sublen)) == 0)		return SNMP_NOSUCHNAME;	if ((local = MibRmon(Obj, DiscNodeControlInstance, IdLen, len)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, type, len, &data) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = DiscNodeSearchHash(local->Data, type, Obj, IdLen)) == NULL)			return SNMP_NOSUCHNAME;		for (i = 0; i < sublen; i++)			Obj->Syntax.BufChr[i] = (BYTE) data->Address[offset + i];		Obj->SyntaxLen = sublen;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD DiscNodeUDPAddress(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	DISCNODE *data = NULL;	INT type;	WORD len, offset, sublen;	if ((type = DiscTableType(Obj, IdLen)) == 0)		return SNMP_NOSUCHNAME;	if ((len = DiscTableLen(type, DISC_TYPE_UDP, &offset, &sublen)) == 0)		return SNMP_NOSUCHNAME;	if ((local = MibRmon(Obj, DiscNodeControlInstance, IdLen, len)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, type, len, &data) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = DiscNodeSearchHash(local->Data, type, Obj, IdLen)) == NULL)			return SNMP_NOSUCHNAME;		Obj->Syntax.LngInt = 256 * (LONG) data->Address[offset] + data->Address[offset + 1];		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD DiscNodeTCPAddress(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	DISCNODE *data = NULL;	INT type;	WORD len, offset, sublen;	if ((type = DiscTableType(Obj, IdLen)) == 0)		return SNMP_NOSUCHNAME;	if ((len = DiscTableLen(type, DISC_TYPE_TCP, &offset, &sublen)) == 0)		return SNMP_NOSUCHNAME;	if ((local = MibRmon(Obj, DiscNodeControlInstance, IdLen, len)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, type, len, &data) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = DiscNodeSearchHash(local->Data, type, Obj, IdLen)) == NULL)			return SNMP_NOSUCHNAME;		Obj->Syntax.LngInt = 256 * (LONG) data->Address[offset] + data->Address[offset + 1];		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD DiscNodeTimeEthAddress(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	DISCNODE *data = NULL;	INT type;	WORD i, len, offset, sublen;	if ((type = DiscTableType(Obj, IdLen)) == 0)		return SNMP_NOSUCHNAME;	if ((len = DiscTableLen(type, DISC_TYPE_ETH, &offset, &sublen)) == 0)		return SNMP_NOSUCHNAME;	if ((local = MibRmon(Obj, DiscNodeControlInstance, IdLen, len)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, type, len, &data) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = DiscNodeTimeSearch(local->Data, type, Obj, IdLen)) == NULL)			return SNMP_NOSUCHNAME;		for (i = 0; i < sublen; i++)			Obj->Syntax.BufChr[i] = (BYTE) data->Address[offset + i];		Obj->SyntaxLen = sublen;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD DiscNodeTimeIPAddress(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	DISCNODE *data = NULL;	INT type;	WORD i, len, offset, sublen;	if ((type = DiscTableType(Obj, IdLen)) == 0)		return SNMP_NOSUCHNAME;	if ((len = DiscTableLen(type, DISC_TYPE_IP, &offset, &sublen)) == 0)		return SNMP_NOSUCHNAME;	if ((local = MibRmon(Obj, DiscNodeControlInstance, IdLen, len)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, type, len, &data) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = DiscNodeTimeSearch(local->Data, type, Obj, IdLen)) == NULL)			return SNMP_NOSUCHNAME;		for (i = 0; i < sublen; i++)			Obj->Syntax.BufChr[i] = (BYTE) data->Address[offset + i];		Obj->SyntaxLen = sublen;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD DiscNodeTimeUDPAddress(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	DISCNODE *data = NULL;	INT type;	WORD len, offset, sublen;	if ((type = DiscTableType(Obj, IdLen)) == 0)		return SNMP_NOSUCHNAME;	if ((len = DiscTableLen(type, DISC_TYPE_UDP, &offset, &sublen)) == 0)		return SNMP_NOSUCHNAME;	if ((local = MibRmon(Obj, DiscNodeControlInstance, IdLen, len)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, type, len, &data) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = DiscNodeTimeSearch(local->Data, type, Obj, IdLen)) == NULL)			return SNMP_NOSUCHNAME;		Obj->Syntax.LngInt = 256 * (LONG) data->Address[offset] + data->Address[offset + 1];		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD DiscNodeTimeTCPAddress(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	DISCNODE *data = NULL;	INT type;	WORD len, offset, sublen;	if ((type = DiscTableType(Obj, IdLen)) == 0)		return SNMP_NOSUCHNAME;	if ((len = DiscTableLen(type, DISC_TYPE_TCP, &offset, &sublen)) == 0)		return SNMP_NOSUCHNAME;	if ((local = MibRmon(Obj, DiscNodeControlInstance, IdLen, len)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, type, len, &data) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = DiscNodeTimeSearch(local->Data, type, Obj, IdLen)) == NULL)			return SNMP_NOSUCHNAME;		Obj->Syntax.LngInt = 256 * (LONG) data->Address[offset] + data->Address[offset + 1];		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD DiscNodeCreationOrder(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	DISCNODE *data = NULL;	INT type;	WORD len;	if ((type = DiscTableType(Obj, IdLen)) == 0)		return SNMP_NOSUCHNAME;	if ((len = DiscTableLen(type, type, NULL, NULL)) == 0)		return SNMP_NOSUCHNAME;	if ((local = MibRmon(Obj, DiscNodeControlInstance, IdLen, len)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, type, len, &data) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = DiscNodeSearchHash(local->Data, type, Obj, IdLen)) == NULL)			return SNMP_NOSUCHNAME;		Obj->Syntax.LngInt = DiscNodeSearchCreationOrder(local->Data, type, data);		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD DiscNodeIndex(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	DISCNODE *data = NULL;	INT type;	WORD len;	if ((type = DiscTableType(Obj, IdLen)) == 0)		return SNMP_NOSUCHNAME;	if ((len = DiscTableLen(type, type, NULL, NULL)) == 0)		return SNMP_NOSUCHNAME;	if ((local = MibRmon(Obj, DiscNodeControlInstance, IdLen, len)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, type, len, &data) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = DiscNodeSearchHash(local->Data, type, Obj, IdLen)) == NULL)			return SNMP_NOSUCHNAME;		Obj->Syntax.LngInt = local->Index;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD DiscNodeInPkts(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	DISCNODE *data = NULL;	INT type;	WORD len;	if ((type = DiscTableType(Obj, IdLen)) == 0)		return SNMP_NOSUCHNAME;	if ((len = DiscTableLen(type, type, NULL, NULL)) == 0)		return SNMP_NOSUCHNAME;	if ((local = MibRmon(Obj, DiscNodeControlInstance, IdLen, len)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, type, len, &data) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = DiscNodeSearchHash(local->Data, type, Obj, IdLen)) == NULL)			return SNMP_NOSUCHNAME;		Obj->Syntax.LngUns = data->InPkts;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD DiscNodeOutPkts(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	DISCNODE *data = NULL;	INT type;	WORD len;	if ((type = DiscTableType(Obj, IdLen)) == 0)		return SNMP_NOSUCHNAME;	if ((len = DiscTableLen(type, type, NULL, NULL)) == 0)		return SNMP_NOSUCHNAME;	if ((local = MibRmon(Obj, DiscNodeControlInstance, IdLen, len)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, type, len, &data) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = DiscNodeSearchHash(local->Data, type, Obj, IdLen)) == NULL)			return SNMP_NOSUCHNAME;		Obj->Syntax.LngUns = data->OutPkts;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD DiscNodeInOctets(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	DISCNODE *data = NULL;	INT type;	WORD len;	if ((type = DiscTableType(Obj, IdLen)) == 0)		return SNMP_NOSUCHNAME;

⌨️ 快捷键说明

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