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

📄 hostm.c

📁 嵌入式RMON,RMON为Remote monitor的缩写,基于SNMP为网络提供主动监控及错误告警,智能交换路由必备协议
💻 C
📖 第 1 页 / 共 2 页
字号:
				{					DnpapFree(local->Data);					DnpapMessage(DMC_MESSAGE, HOST_DESTROY, "host: collector %ld destroyed", local->Index);					if (MibRemove(Obj, &HostControlInstance, IdLen, CONTROLINDEXSIZE) == TRUE)						return SNMP_NOERROR;				}				return SNMP_GENERROR;			default:				return SNMP_BADVALUE;			}		}	}	return SNMP_GENERROR;}WORD hostAddress(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	HOST *data = NULL;	if ((local = HostMibRmon(Obj, HostControlInstance, IdLen)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, HOSTINDEXSIZE, &data) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = HostSearchHash(local->Data, Obj, IdLen)) == NULL)			return SNMP_NOSUCHNAME;		memcpy(Obj->Syntax.BufChr, data->Address, Obj->SyntaxLen = ((HOST_CONTROL *) local->Data)->AddressLen);		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD hostCreationOrder(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	HOST *data = NULL;	if ((local = HostMibRmon(Obj, HostControlInstance, IdLen)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, HOSTINDEXSIZE, &data) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = HostSearchHash(local->Data, Obj, IdLen)) == NULL)			return SNMP_NOSUCHNAME;		Obj->Syntax.LngInt = HostSearchCreationOrder(local->Data, data);		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD hostIndex(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	HOST *data = NULL;	if ((local = HostMibRmon(Obj, HostControlInstance, IdLen)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, HOSTINDEXSIZE, &data) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = HostSearchHash(local->Data, Obj, IdLen)) == NULL)			return SNMP_NOSUCHNAME;		Obj->Syntax.LngInt = local->Index;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD hostInPkts(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	HOST *data = NULL;	if ((local = HostMibRmon(Obj, HostControlInstance, IdLen)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, HOSTINDEXSIZE, &data) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = HostSearchHash(local->Data, Obj, IdLen)) == NULL)			return SNMP_NOSUCHNAME;		Obj->Syntax.LngUns = data->InPkts;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD hostOutPkts(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	HOST *data = NULL;	if ((local = HostMibRmon(Obj, HostControlInstance, IdLen)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, HOSTINDEXSIZE, &data) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = HostSearchHash(local->Data, Obj, IdLen)) == NULL)			return SNMP_NOSUCHNAME;		Obj->Syntax.LngUns = data->OutPkts;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD hostInOctets(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	HOST *data = NULL;	if ((local = HostMibRmon(Obj, HostControlInstance, IdLen)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, HOSTINDEXSIZE, &data) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = HostSearchHash(local->Data, Obj, IdLen)) == NULL)			return SNMP_NOSUCHNAME;		Obj->Syntax.LngUns = data->InOctets;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD hostOutOctets(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	HOST *data = NULL;	if ((local = HostMibRmon(Obj, HostControlInstance, IdLen)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, HOSTINDEXSIZE, &data) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = HostSearchHash(local->Data, Obj, IdLen)) == NULL)			return SNMP_NOSUCHNAME;		Obj->Syntax.LngUns = data->OutOctets;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD hostOutErrors(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	HOST *data = NULL;	if ((local = HostMibRmon(Obj, HostControlInstance, IdLen)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, HOSTINDEXSIZE, &data) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = HostSearchHash(local->Data, Obj, IdLen)) == NULL)			return SNMP_NOSUCHNAME;		Obj->Syntax.LngUns = data->OutErrors;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD hostOutBroadcastPkts(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	HOST *data = NULL;	if ((local = HostMibRmon(Obj, HostControlInstance, IdLen)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, HOSTINDEXSIZE, &data) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = HostSearchHash(local->Data, Obj, IdLen)) == NULL)			return SNMP_NOSUCHNAME;		Obj->Syntax.LngUns = data->OutBroadcastPkts;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD hostOutMulticastPkts(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	HOST *data = NULL;	if ((local = HostMibRmon(Obj, HostControlInstance, IdLen)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, HOSTINDEXSIZE, &data) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = HostSearchHash(local->Data, Obj, IdLen)) == NULL)			return SNMP_NOSUCHNAME;		Obj->Syntax.LngUns = data->OutMulticastPkts;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD hostTimeAddress(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	HOST *data = NULL;	if ((local = MibRmon(Obj, HostControlInstance, IdLen, TIMEINDEXSIZE)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, TIMEINDEXSIZE, &data) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = HostTimeSearch(local->Data, Obj, IdLen)) == NULL)			return SNMP_NOSUCHNAME;		memcpy(Obj->Syntax.BufChr, data->Address, Obj->SyntaxLen = ((HOST_CONTROL *) local->Data)->AddressLen);		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD hostTimeCreationOrder(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	HOST *data = NULL;	if ((local = MibRmon(Obj, HostControlInstance, IdLen, TIMEINDEXSIZE)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, TIMEINDEXSIZE, &data) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = HostTimeSearch(local->Data, Obj, IdLen)) == NULL)			return SNMP_NOSUCHNAME;		Obj->Syntax.LngInt = Obj->Id[IdLen + 1];		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD hostTimeIndex(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	HOST *data = NULL;	if ((local = MibRmon(Obj, HostControlInstance, IdLen, TIMEINDEXSIZE)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, TIMEINDEXSIZE, &data) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = HostTimeSearch(local->Data, Obj, IdLen)) == NULL)			return SNMP_NOSUCHNAME;		Obj->Syntax.LngInt = local->Index;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD hostTimeInPkts(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	HOST *data = NULL;	if ((local = MibRmon(Obj, HostControlInstance, IdLen, TIMEINDEXSIZE)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, TIMEINDEXSIZE, &data) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = HostTimeSearch(local->Data, Obj, IdLen)) == NULL)			return SNMP_NOSUCHNAME;		Obj->Syntax.LngUns = data->InPkts;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD hostTimeOutPkts(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	HOST *data = NULL;	if ((local = MibRmon(Obj, HostControlInstance, IdLen, TIMEINDEXSIZE)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, TIMEINDEXSIZE, &data) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = HostTimeSearch(local->Data, Obj, IdLen)) == NULL)			return SNMP_NOSUCHNAME;		Obj->Syntax.LngUns = data->OutPkts;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD hostTimeInOctets(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	HOST *data = NULL;	if ((local = MibRmon(Obj, HostControlInstance, IdLen, TIMEINDEXSIZE)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, TIMEINDEXSIZE, &data) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = HostTimeSearch(local->Data, Obj, IdLen)) == NULL)			return SNMP_NOSUCHNAME;		Obj->Syntax.LngUns = data->InOctets;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD hostTimeOutOctets(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	HOST *data = NULL;	if ((local = MibRmon(Obj, HostControlInstance, IdLen, TIMEINDEXSIZE)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, TIMEINDEXSIZE, &data) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = HostTimeSearch(local->Data, Obj, IdLen)) == NULL)			return SNMP_NOSUCHNAME;		Obj->Syntax.LngUns = data->OutOctets;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD hostTimeOutErrors(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	HOST *data = NULL;	if ((local = MibRmon(Obj, HostControlInstance, IdLen, TIMEINDEXSIZE)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, TIMEINDEXSIZE, &data) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = HostTimeSearch(local->Data, Obj, IdLen)) == NULL)			return SNMP_NOSUCHNAME;		Obj->Syntax.LngUns = data->OutErrors;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD hostTimeOutBroadcastPkts(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	HOST *data = NULL;	if ((local = MibRmon(Obj, HostControlInstance, IdLen, TIMEINDEXSIZE)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, TIMEINDEXSIZE, &data) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = HostTimeSearch(local->Data, Obj, IdLen)) == NULL)			return SNMP_NOSUCHNAME;		Obj->Syntax.LngUns = data->OutBroadcastPkts;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}WORD hostTimeOutMulticastPkts(SNMP_OBJECT * Obj, WORD IdLen){	MIB_LOCAL *local = NULL;	HOST *data = NULL;	if ((local = MibRmon(Obj, HostControlInstance, IdLen, TIMEINDEXSIZE)) == NULL)		return SNMP_NOSUCHNAME;	switch (Obj->Request)	{	case SNMP_PDU_NEXT:		if (RmonNext(Obj, &local, IdLen, TIMEINDEXSIZE, &data) == FALSE)			return SNMP_NOSUCHNAME;	case SNMP_PDU_GET:		if (data == NULL && (data = HostTimeSearch(local->Data, Obj, IdLen)) == NULL)			return SNMP_NOSUCHNAME;		Obj->Syntax.LngUns = data->OutMulticastPkts;		return SNMP_NOERROR;	}	return SNMP_GENERROR;}VOID HostChannelStop(LONG channelIndex){	MIB_LOCAL *hostinstance;	HOST_CONTROL *hostcontrol;	for (hostinstance = HostControlInstance; hostinstance != NULL; hostinstance = hostinstance->Next)	{		hostcontrol = hostinstance->Data;		if (hostcontrol->Status == SNMP_VALID &&			hostcontrol->Channel == TRUE &&			hostcontrol->ChannelAccept == TRUE &&			hostcontrol->Source[hostcontrol->SourceLen - 1] == channelIndex)			hostcontrol->ChannelAccept = FALSE;	}}VOID HostPkt(LONG channelIndex, PROT_PKT * pkt){	MIB_LOCAL *hostinstance;	HOST_CONTROL *hostcontrol;	for (hostinstance = HostControlInstance; hostinstance != NULL; hostinstance = hostinstance->Next)	{		hostcontrol = hostinstance->Data;		if (hostcontrol->Status == SNMP_VALID &&			hostcontrol->Channel == TRUE &&			hostcontrol->ChannelAccept == TRUE &&			hostcontrol->Source[hostcontrol->SourceLen - 1] == channelIndex)			HostHandlePkt(hostcontrol, pkt);	}}

⌨️ 快捷键说明

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