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

📄 icmp.c

📁 ucd-snmp源代码
💻 C
📖 第 1 页 / 共 2 页
字号:
	case ICMPINTIMEEXCDS:	return (u_char *) &icmpstat.icmpInTimeExcds;	case ICMPINPARMPROBS:	return (u_char *) &icmpstat.icmpInParmProbs;	case ICMPINSRCQUENCHS:	return (u_char *) &icmpstat.icmpInSrcQuenchs;	case ICMPINREDIRECTS:	return (u_char *) &icmpstat.icmpInRedirects;	case ICMPINECHOS:	return (u_char *) &icmpstat.icmpInEchos;	case ICMPINECHOREPS:	return (u_char *) &icmpstat.icmpInEchoReps;	case ICMPINTIMESTAMPS:	return (u_char *) &icmpstat.icmpInTimestamps;	case ICMPINTIMESTAMPREPS:return (u_char *) &icmpstat.icmpInTimestampReps;	case ICMPINADDRMASKS:	return (u_char *) &icmpstat.icmpInAddrMasks;	case ICMPINADDRMASKREPS:return (u_char *) &icmpstat.icmpInAddrMaskReps;	case ICMPOUTMSGS:	return (u_char *) &icmpstat.icmpOutMsgs;	case ICMPOUTERRORS:	return (u_char *) &icmpstat.icmpOutErrors;	case ICMPOUTDESTUNREACHS:return (u_char *) &icmpstat.icmpOutDestUnreachs;	case ICMPOUTTIMEEXCDS:	return (u_char *) &icmpstat.icmpOutTimeExcds;	case ICMPOUTPARMPROBS:	return (u_char *) &icmpstat.icmpOutParmProbs;	case ICMPOUTSRCQUENCHS:	return (u_char *) &icmpstat.icmpOutSrcQuenchs;	case ICMPOUTREDIRECTS:	return (u_char *) &icmpstat.icmpOutRedirects;	case ICMPOUTECHOS:	return (u_char *) &icmpstat.icmpOutEchos;	case ICMPOUTECHOREPS:	return (u_char *) &icmpstat.icmpOutEchoReps;	case ICMPOUTTIMESTAMPS:	return (u_char *) &icmpstat.icmpOutTimestamps;	case ICMPOUTTIMESTAMPREPS:return (u_char *)&icmpstat.icmpOutTimestampReps;	case ICMPOUTADDRMASKS:	return (u_char *) &icmpstat.icmpOutAddrMasks;	case ICMPOUTADDRMASKREPS:return (u_char *) &icmpstat.icmpOutAddrMaskReps;#endif /* USES_SNMP_DESIGNED_ICMPSTAT */#ifdef USES_TRADITIONAL_ICMPSTAT	case ICMPINMSGS:				long_return = icmpstat.icps_badcode +					      icmpstat.icps_tooshort +					      icmpstat.icps_checksum +					      icmpstat.icps_badlen;	    			for (i=0; i <= ICMP_MAXTYPE; i++)				    long_return += icmpstat.icps_inhist[i];				return (u_char *)&long_return;	case ICMPINERRORS:				long_return = icmpstat.icps_badcode +					      icmpstat.icps_tooshort +					      icmpstat.icps_checksum +					      icmpstat.icps_badlen;				return (u_char *)&long_return;	case ICMPINDESTUNREACHS:return (u_char *) &icmpstat.icps_inhist[ICMP_UNREACH];	case ICMPINTIMEEXCDS:	return (u_char *) &icmpstat.icps_inhist[ICMP_TIMXCEED];	case ICMPINPARMPROBS:	return (u_char *) &icmpstat.icps_inhist[ICMP_PARAMPROB];	case ICMPINSRCQUENCHS:	return (u_char *) &icmpstat.icps_inhist[ICMP_SOURCEQUENCH];	case ICMPINREDIRECTS:	return (u_char *) &icmpstat.icps_inhist[ICMP_REDIRECT];	case ICMPINECHOS:	return (u_char *) &icmpstat.icps_inhist[ICMP_ECHO];	case ICMPINECHOREPS:	return (u_char *) &icmpstat.icps_inhist[ICMP_ECHOREPLY];	case ICMPINTIMESTAMPS:	return (u_char *) &icmpstat.icps_inhist[ICMP_TSTAMP];	case ICMPINTIMESTAMPREPS:return (u_char *) &icmpstat.icps_inhist[ICMP_TSTAMPREPLY];	case ICMPINADDRMASKS:	return (u_char *) &icmpstat.icps_inhist[ICMP_MASKREQ];	case ICMPINADDRMASKREPS:return (u_char *) &icmpstat.icps_inhist[ICMP_MASKREPLY];	case ICMPOUTMSGS:				long_return = icmpstat.icps_oldshort +					      icmpstat.icps_oldicmp;	    			for (i=0; i <= ICMP_MAXTYPE; i++)				    long_return += icmpstat.icps_outhist[i];				return (u_char *)&long_return;	case ICMPOUTERRORS:				long_return = icmpstat.icps_oldshort +					      icmpstat.icps_oldicmp;				return (u_char *)&long_return;	case ICMPOUTDESTUNREACHS:return (u_char *) &icmpstat.icps_outhist[ICMP_UNREACH];	case ICMPOUTTIMEEXCDS:	return (u_char *) &icmpstat.icps_outhist[ICMP_TIMXCEED];	case ICMPOUTPARMPROBS:	return (u_char *) &icmpstat.icps_outhist[ICMP_PARAMPROB];	case ICMPOUTSRCQUENCHS:	return (u_char *) &icmpstat.icps_outhist[ICMP_SOURCEQUENCH];	case ICMPOUTREDIRECTS:	return (u_char *) &icmpstat.icps_outhist[ICMP_REDIRECT];	case ICMPOUTECHOS:	return (u_char *) &icmpstat.icps_outhist[ICMP_ECHO];	case ICMPOUTECHOREPS:	return (u_char *) &icmpstat.icps_outhist[ICMP_ECHOREPLY];	case ICMPOUTTIMESTAMPS:	return (u_char *) &icmpstat.icps_outhist[ICMP_TSTAMP];	case ICMPOUTTIMESTAMPREPS:return (u_char *) &icmpstat.icps_outhist[ICMP_TSTAMPREPLY];	case ICMPOUTADDRMASKS:	return (u_char *) &icmpstat.icps_outhist[ICMP_MASKREQ];	case ICMPOUTADDRMASKREPS:return (u_char *) &icmpstat.icps_outhist[ICMP_MASKREPLY];#endif /* USES_TRADITIONAL_ICMPSTAT */#ifdef hpux11	case ICMPINMSGS:	case ICMPINERRORS:	case ICMPINDESTUNREACHS:	case ICMPINTIMEEXCDS:	case ICMPINPARMPROBS:	case ICMPINSRCQUENCHS:	case ICMPINREDIRECTS:	case ICMPINECHOS:	case ICMPINECHOREPS:	case ICMPINTIMESTAMPS:	case ICMPINTIMESTAMPREPS:	case ICMPINADDRMASKS:	case ICMPINADDRMASKREPS:	case ICMPOUTMSGS:	case ICMPOUTERRORS:	case ICMPOUTDESTUNREACHS:	case ICMPOUTTIMEEXCDS:	case ICMPOUTPARMPROBS:	case ICMPOUTSRCQUENCHS:	case ICMPOUTREDIRECTS:	case ICMPOUTECHOS:	case ICMPOUTECHOREPS:	case ICMPOUTTIMESTAMPS:	case ICMPOUTTIMESTAMPREPS:	case ICMPOUTADDRMASKS:	case ICMPOUTADDRMASKREPS:	    long_return = icmpstat;	    return (u_char *)&long_return;#endif	/* hpux11 */#ifdef WIN32       case ICMPINMSGS:        return (u_char *) &icmpstat.stats.icmpInStats.dwMsgs;       case ICMPINERRORS:      return (u_char *) &icmpstat.stats.icmpInStats.dwErrors;       case ICMPINDESTUNREACHS:return (u_char *) &icmpstat.stats.icmpInStats.dwDestUnreachs;       case ICMPINTIMEEXCDS:   return (u_char *) &icmpstat.stats.icmpInStats.dwTimeExcds;       case ICMPINPARMPROBS:   return (u_char *) &icmpstat.stats.icmpInStats.dwParmProbs;       case ICMPINSRCQUENCHS:  return (u_char *) &icmpstat.stats.icmpInStats.dwSrcQuenchs;       case ICMPINREDIRECTS:   return (u_char *) &icmpstat.stats.icmpInStats.dwRedirects;       case ICMPINECHOS:       return (u_char *) &icmpstat.stats.icmpInStats.dwEchos;       case ICMPINECHOREPS:    return (u_char *) &icmpstat.stats.icmpInStats.dwEchoReps;       case ICMPINTIMESTAMPS:  return (u_char *) &icmpstat.stats.icmpInStats.dwTimestamps;       case ICMPINTIMESTAMPREPS:return (u_char *) &icmpstat.stats.icmpInStats.dwTimestampReps;       case ICMPINADDRMASKS:   return (u_char *) &icmpstat.stats.icmpInStats.dwAddrMasks;       case ICMPINADDRMASKREPS:return (u_char *) &icmpstat.stats.icmpInStats.dwAddrMaskReps;       case ICMPOUTMSGS:       return (u_char *) &icmpstat.stats.icmpOutStats.dwMsgs;       case ICMPOUTERRORS:     return (u_char *) &icmpstat.stats.icmpOutStats.dwErrors;       case ICMPOUTDESTUNREACHS:return (u_char *) &icmpstat.stats.icmpOutStats.dwDestUnreachs;       case ICMPOUTTIMEEXCDS:  return (u_char *) &icmpstat.stats.icmpOutStats.dwTimeExcds;       case ICMPOUTPARMPROBS:  return (u_char *) &icmpstat.stats.icmpOutStats.dwParmProbs;       case ICMPOUTSRCQUENCHS: return (u_char *) &icmpstat.stats.icmpOutStats.dwSrcQuenchs;       case ICMPOUTREDIRECTS:  return (u_char *) &icmpstat.stats.icmpOutStats.dwRedirects;       case ICMPOUTECHOS:      return (u_char *) &icmpstat.stats.icmpOutStats.dwEchos;       case ICMPOUTECHOREPS:   return (u_char *) &icmpstat.stats.icmpOutStats.dwEchoReps;       case ICMPOUTTIMESTAMPS: return (u_char *) &icmpstat.stats.icmpOutStats.dwTimestamps;       case ICMPOUTTIMESTAMPREPS:return (u_char *)&icmpstat.stats.icmpOutStats.dwTimestampReps;       case ICMPOUTADDRMASKS:  return (u_char *) &icmpstat.stats.icmpOutStats.dwAddrMasks;       case ICMPOUTADDRMASKREPS:return (u_char *) &icmpstat.stats.icmpOutStats.dwAddrMaskReps;#endif /* WIN32 */	default:	    DEBUGMSGTL(("snmpd", "unknown sub-id %d in var_icmp\n", vp->magic));    }    return NULL;}	/*********************	 *	 *  Internal implementation functions	 *	 *********************/longread_icmp_stat( ICMP_STAT_STRUCTURE *icmpstat, int magic ){#ifdef hpux11    int fd;    struct nmparms p;    unsigned int ulen;    int ret;    if ((fd = open_mib("/dev/ip", O_RDONLY, 0, NM_ASYNC_OFF)) < 0)	return (-1);	/* error */    switch (magic) {	case ICMPINMSGS:	p.objid = ID_icmpInMsgs;		break;	case ICMPINERRORS:	p.objid = ID_icmpInErrors;		break;	case ICMPINDESTUNREACHS: p.objid = ID_icmpInDestUnreachs;	break;	case ICMPINTIMEEXCDS:	p.objid = ID_icmpInTimeExcds;		break;	case ICMPINPARMPROBS:	p.objid = ID_icmpInParmProbs;		break;	case ICMPINSRCQUENCHS:	p.objid = ID_icmpInSrcQuenchs;		break;	case ICMPINREDIRECTS:	p.objid = ID_icmpInRedirects;		break;	case ICMPINECHOS:	p.objid = ID_icmpInEchos;		break;	case ICMPINECHOREPS:	p.objid = ID_icmpInEchoReps;		break;	case ICMPINTIMESTAMPS:	p.objid = ID_icmpInTimestamps;		break;	case ICMPINTIMESTAMPREPS: p.objid = ID_icmpInTimestampReps;	break;	case ICMPINADDRMASKS:	p.objid = ID_icmpInAddrMasks;		break;	case ICMPINADDRMASKREPS: p.objid = ID_icmpInAddrMaskReps;	break;	case ICMPOUTMSGS:	p.objid = ID_icmpOutMsgs;		break;	case ICMPOUTERRORS:	p.objid = ID_icmpOutErrors;		break;	case ICMPOUTDESTUNREACHS: p.objid = ID_icmpOutDestUnreachs;	break;	case ICMPOUTTIMEEXCDS:	p.objid = ID_icmpOutTimeExcds;		break;	case ICMPOUTPARMPROBS:	p.objid = ID_icmpOutParmProbs;		break;	case ICMPOUTSRCQUENCHS:	p.objid = ID_icmpOutSrcQuenchs;		break;	case ICMPOUTREDIRECTS:	p.objid = ID_icmpOutRedirects;		break;	case ICMPOUTECHOS:	p.objid = ID_icmpOutEchos;		break;	case ICMPOUTECHOREPS:	p.objid = ID_icmpOutEchoReps;		break;	case ICMPOUTTIMESTAMPS:	p.objid = ID_icmpOutTimestamps;		break;	case ICMPOUTTIMESTAMPREPS: p.objid = ID_icmpOutTimestampReps;	break;	case ICMPOUTADDRMASKS:	p.objid = ID_icmpOutAddrMasks;		break;	case ICMPOUTADDRMASKREPS: p.objid = ID_icmpOutAddrMaskReps;	break;	default:	    *icmpstat = 0;	    close_mib(fd);	    return (0);    }    p.buffer = (void *)icmpstat;    ulen = sizeof(ICMP_STAT_STRUCTURE);    p.len = &ulen;    ret = get_mib_info(fd, &p);    close_mib(fd);    return (ret);	/* 0: ok, < 0: error */#else	/* hpux11 */   long ret_value = -1;#if (defined(CAN_USE_SYSCTL) && defined(ICMPCTL_STATS))   static int sname[4] = { CTL_NET, PF_INET, IPPROTO_ICMP, ICMPCTL_STATS };   size_t len = sizeof( *icmpstat );#endif    if (  icmp_stats_cache_marker &&	(!atime_ready(icmp_stats_cache_marker, ICMP_STATS_CACHE_TIMEOUT*1000)))	return 0;    if (icmp_stats_cache_marker )	atime_setMarker( icmp_stats_cache_marker );    else	icmp_stats_cache_marker = atime_newMarker();#ifdef linux    ret_value = linux_read_icmp_stat(icmpstat);#endif#ifdef solaris2    ret_value = getMibstat(MIB_ICMP, icmpstat, sizeof(mib2_icmp_t), GET_FIRST, &Get_everything, NULL);#endif#ifdef WIN32    ret_value = GetIcmpStatistics(icmpstat);#endif#ifdef HAVE_SYS_TCPIPSTATS_H    ret_value = sysmp (MP_SAGET, MPSA_TCPIPSTATS, icmpstat, sizeof *icmpstat);#endif#if defined(CAN_USE_SYSCTL) && defined(ICMPCTL_STATS)    ret_value = sysctl(sname, 4, icmpstat, &len, 0, 0);#endif#ifdef ICMPSTAT_SYMBOL    if (auto_nlist(ICMPSTAT_SYMBOL, (char *)icmpstat, sizeof (*icmpstat)))	ret_value = 0;#endif    if ( ret_value == -1 ) {	free( icmp_stats_cache_marker );	icmp_stats_cache_marker = NULL;    }    return ret_value;#endif	/* hpux11 */}

⌨️ 快捷键说明

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