Files
autobuild-tools/code/sys_nicmonitor/read_netcard.c
Zhang, Guodong e0b7a7e83d 整理代码库,删除无用分支以及代码
重命名:   trunk/src/README -> ../README
	删除:     ../branches/sys_nicmonitor-1.4-龙芯-32/Makefile
	删除:     ../branches/sys_nicmonitor-1.4-龙芯-32/Makefile.config
	删除:     ../branches/sys_nicmonitor-1.4-龙芯-32/const.h
	删除:     ../branches/sys_nicmonitor-1.4-龙芯-32/dotconf.h
	删除:     ../branches/sys_nicmonitor-1.4-龙芯-32/mnic.c
	删除:     ../branches/sys_nicmonitor-1.4-龙芯-32/mnic.h
	删除:     ../branches/sys_nicmonitor-1.4-龙芯-32/nicinfo_shm.c
	删除:     ../branches/sys_nicmonitor-1.4-龙芯-32/nicinfo_shm.h
	删除:     ../branches/sys_nicmonitor-1.4-龙芯-32/proc_inv.h
	删除:     ../branches/sys_nicmonitor-1.4-龙芯-32/read_netcard.c
	删除:     ../branches/sys_nicmonitor-1.4-龙芯-32/send_alarm.c
	删除:     ../branches/sys_nicmonitor-1.4-龙芯-32/sys_netcard.h
	删除:     ../branches/sys_nicmonitor-1.4-龙芯-32/sys_nicmonitor
	删除:     ../branches/sys_nicmonitor-1.5/Makefile
	删除:     ../branches/sys_nicmonitor-1.5/Makefile.config
	删除:     ../branches/sys_nicmonitor-1.5/README1.5
	删除:     ../branches/sys_nicmonitor-1.5/const.h
	删除:     ../branches/sys_nicmonitor-1.5/mnic.c
	删除:     ../branches/sys_nicmonitor-1.5/mnic.h
	删除:     ../branches/sys_nicmonitor-1.5/nicinfo_shm.c
	删除:     ../branches/sys_nicmonitor-1.5/nicinfo_shm.h
	删除:     ../branches/sys_nicmonitor-1.5/proc_inv.h
	删除:     ../branches/sys_nicmonitor-1.5/read_netcard.c
	删除:     ../branches/sys_nicmonitor-1.5/send_alarm.c
	删除:     ../branches/sys_nicmonitor-1.5/sys_netcard.h
	删除:     ../branches/sys_nicmonitor-1.5/sys_nicmonitor
	删除:     ../branches/sys_nicmonitor-1.6/Makefile
	删除:     ../branches/sys_nicmonitor-1.6/Makefile.config
	删除:     ../branches/sys_nicmonitor-1.6/README1.5
	删除:     ../branches/sys_nicmonitor-1.6/README1.6
	删除:     ../branches/sys_nicmonitor-1.6/const.h
	删除:     ../branches/sys_nicmonitor-1.6/mnic.c
	删除:     ../branches/sys_nicmonitor-1.6/mnic.h
	删除:     ../branches/sys_nicmonitor-1.6/nicinfo_shm.c
	删除:     ../branches/sys_nicmonitor-1.6/nicinfo_shm.h
	删除:     ../branches/sys_nicmonitor-1.6/proc_inv.h
	删除:     ../branches/sys_nicmonitor-1.6/read_netcard.c
	删除:     ../branches/sys_nicmonitor-1.6/send_alarm.c
	删除:     ../branches/sys_nicmonitor-1.6/sys_netcard.h
	删除:     ../branches/sys_nicmonitor-1.6/sys_nicmonitor
	重命名:   trunk/sys_nicmonitor/src/Pkgfile -> Pkgfile
	重命名:   trunk/sys_nicmonitor/src/sys_nicmonitor/README -> README
	删除:     branches/sys_nicmonitor-1.0/Makefile
	删除:     branches/sys_nicmonitor-1.0/Makefile.config
	删除:     branches/sys_nicmonitor-1.0/const.h
	删除:     branches/sys_nicmonitor-1.0/mnic.c
	删除:     branches/sys_nicmonitor-1.0/mnic.h
	删除:     branches/sys_nicmonitor-1.0/nicinfo_shm.c
	删除:     branches/sys_nicmonitor-1.0/nicinfo_shm.h
	删除:     branches/sys_nicmonitor-1.0/proc_inv.h
	删除:     branches/sys_nicmonitor-1.0/read_netcard.c
	删除:     branches/sys_nicmonitor-1.0/send_alarm.c
	删除:     branches/sys_nicmonitor-1.0/sys_netcard.h
	重命名:   trunk/sys_nicmonitor/src/build.sh -> build.sh
	重命名:   trunk/sys_nicmonitor/src/dep/dotconf#1.0.13-1.pkg.tar.gz -> dep/dotconf#1.0.13-1.pkg.tar.gz
	重命名:   trunk/sys_nicmonitor/src/dep/libman.so -> dep/libman.so
	重命名:   trunk/sys_nicmonitor/src/dep/run.sh -> dep/run.sh
	重命名:   trunk/sys_nicmonitor/src/post_add.sh -> post_add.sh
	重命名:   trunk/sys_nicmonitor/src/post_mk.sh -> post_mk.sh
	重命名:   trunk/sys_nicmonitor/src/sys_nicmonitor/Makefile -> sys_nicmonitor/Makefile
	重命名:   trunk/sys_nicmonitor/src/sys_nicmonitor/Makefile.config -> sys_nicmonitor/Makefile.config
	重命名:   trunk/sys_nicmonitor/src/README -> sys_nicmonitor/README
	重命名:   trunk/sys_nicmonitor/src/sys_nicmonitor/common.c -> sys_nicmonitor/common.c
	重命名:   trunk/sys_nicmonitor/src/sys_nicmonitor/const.h -> sys_nicmonitor/const.h
	重命名:   trunk/sys_nicmonitor/src/sys_nicmonitor/mnic.c -> sys_nicmonitor/mnic.c
	重命名:   trunk/sys_nicmonitor/src/sys_nicmonitor/mnic.h -> sys_nicmonitor/mnic.h
	重命名:   trunk/sys_nicmonitor/src/sys_nicmonitor/nicinfo_shm.c -> sys_nicmonitor/nicinfo_shm.c
	重命名:   trunk/sys_nicmonitor/src/sys_nicmonitor/nicinfo_shm.h -> sys_nicmonitor/nicinfo_shm.h
	重命名:   trunk/sys_nicmonitor/src/sys_nicmonitor/proc_inv.h -> sys_nicmonitor/proc_inv.h
	重命名:   trunk/sys_nicmonitor/src/sys_nicmonitor/read_netcard.c -> sys_nicmonitor/read_netcard.c
	重命名:   trunk/sys_nicmonitor/src/sys_nicmonitor/send_alarm.c -> sys_nicmonitor/send_alarm.c
	重命名:   trunk/sys_nicmonitor/src/sys_nicmonitor/sys_netcard.h -> sys_nicmonitor/sys_netcard.h
	重命名:   trunk/sys_nicmonitor/src/sys_nicmonitor/test.c -> sys_nicmonitor/test.c
	重命名:   trunk/sys_nicmonitor/src/sys_nicmonitor/testread.c -> sys_nicmonitor/testread.c
	重命名:   trunk/sys_nicmonitor/src/sys_nicmonitor/version.h -> sys_nicmonitor/version.h
	删除:     tags/README1.5
	删除:     tags/README1.6
	删除:     tags/README1.7
	删除:     tags/libman.so
	删除:     tags/sys_nicmonitor-1.0.0/Makefile
	删除:     tags/sys_nicmonitor-1.0.0/Makefile.config
	删除:     tags/sys_nicmonitor-1.0.0/const.h
	删除:     tags/sys_nicmonitor-1.0.0/mnic.c
	删除:     tags/sys_nicmonitor-1.0.0/mnic.h
	删除:     tags/sys_nicmonitor-1.0.0/nicinfo_shm.c
	删除:     tags/sys_nicmonitor-1.0.0/nicinfo_shm.h
	删除:     tags/sys_nicmonitor-1.0.0/proc_inv.h
	删除:     tags/sys_nicmonitor-1.0.0/read_netcard.c
	删除:     tags/sys_nicmonitor-1.0.0/send_alarm.c
	删除:     tags/sys_nicmonitor-1.0.0/sys_netcard.h
	删除:     tags/sys_nicmonitor-1.5/Makefile
	删除:     tags/sys_nicmonitor-1.5/Makefile.config
	删除:     tags/sys_nicmonitor-1.5/const.h
	删除:     tags/sys_nicmonitor-1.5/mnic.c
	删除:     tags/sys_nicmonitor-1.5/mnic.h
	删除:     tags/sys_nicmonitor-1.5/nicinfo_shm.c
	删除:     tags/sys_nicmonitor-1.5/nicinfo_shm.h
	删除:     tags/sys_nicmonitor-1.5/proc_inv.h
	删除:     tags/sys_nicmonitor-1.5/read_netcard.c
	删除:     tags/sys_nicmonitor-1.5/send_alarm.c
	删除:     tags/sys_nicmonitor-1.5/sys_netcard.h
	删除:     tags/sys_nicmonitor-1.6/Makefile
	删除:     tags/sys_nicmonitor-1.6/Makefile.config
	删除:     tags/sys_nicmonitor-1.6/const.h
	删除:     tags/sys_nicmonitor-1.6/mnic.c
	删除:     tags/sys_nicmonitor-1.6/mnic.h
	删除:     tags/sys_nicmonitor-1.6/nicinfo_shm.c
	删除:     tags/sys_nicmonitor-1.6/nicinfo_shm.h
	删除:     tags/sys_nicmonitor-1.6/proc_inv.h
	删除:     tags/sys_nicmonitor-1.6/read_netcard.c
	删除:     tags/sys_nicmonitor-1.6/send_alarm.c
	删除:     tags/sys_nicmonitor-1.6/sys_netcard.h
	删除:     tags/sys_nicmonitor-1.7/Makefile
	删除:     tags/sys_nicmonitor-1.7/Makefile.config
	删除:     tags/sys_nicmonitor-1.7/const.h
	删除:     tags/sys_nicmonitor-1.7/mnic.c
	删除:     tags/sys_nicmonitor-1.7/mnic.h
	删除:     tags/sys_nicmonitor-1.7/nicinfo_shm.c
	删除:     tags/sys_nicmonitor-1.7/nicinfo_shm.h
	删除:     tags/sys_nicmonitor-1.7/proc_inv.h
	删除:     tags/sys_nicmonitor-1.7/read_netcard.c
	删除:     tags/sys_nicmonitor-1.7/send_alarm.c
	删除:     tags/sys_nicmonitor-1.7/sys_netcard.h
	删除:     tags/sys_nicmonitor-1.8/bin/README
	删除:     tags/sys_nicmonitor-1.8/bin/install.sh
	删除:     tags/sys_nicmonitor-1.8/bin/sys_nicmonitor#1.8-x86_64-Linx-Rocky4.2.pkg.tar.gz
	删除:     tags/sys_nicmonitor-1.8/doc/网卡监视程序动态库使用手册【新】.doc
	删除:     tags/sys_nicmonitor-1.8/doc/网卡监视程序安装说明以及使用手册【新】.doc
	删除:     tags/sys_nicmonitor-1.8/src/Pkgfile
	删除:     tags/sys_nicmonitor-1.8/src/README1.8
	删除:     tags/sys_nicmonitor-1.8/src/V1.8
	删除:     tags/sys_nicmonitor-1.8/src/build.sh
	删除:     tags/sys_nicmonitor-1.8/src/post_add.sh
	删除:     tags/sys_nicmonitor-1.8/src/post_mk.sh
	删除:     tags/sys_nicmonitor-1.8/src/sys_nicmonitor-1.8.tar.gz
	删除:     tags/sys_nicmonitor-1.8/test/Makefile
	删除:     tags/sys_nicmonitor-1.8/test/dotconf.h
	删除:     tags/sys_nicmonitor-1.8/test/getmem
	删除:     tags/sys_nicmonitor-1.8/test/getmem.c
	删除:     tags/sys_nicmonitor-1.8/test/mnic.h
	删除:     tags/sys_nicmonitor-1.8/test/nicinfo_shm.h
	删除:     tags/sys_nicmonitor-1.8/test/read_shm
	删除:     tags/sys_nicmonitor-1.8/test/read_shm.c
	删除:     tags/sys_nicmonitor-1.8/test/recv_msg
	删除:     tags/sys_nicmonitor-1.8/test/recv_msg.c
	删除:     tags/sys_nicmonitor-1.8/test/sys_netcard.h
	重命名:   trunk/test/Makefile -> test/Makefile
	重命名:   trunk/test/dotconf.h -> test/dotconf.h
	重命名:   trunk/test/getmem.c -> test/getmem.c
	重命名:   trunk/test/mnic.h -> test/mnic.h
	重命名:   trunk/test/nicinfo_shm.h -> test/nicinfo_shm.h
	重命名:   trunk/test/read_shm.c -> test/read_shm.c
	重命名:   trunk/test/recv_msg.c -> test/recv_msg.c
	重命名:   trunk/test/sys_netcard.h -> test/sys_netcard.h
	删除:     trunk/LATEST
	删除:     trunk/README
	删除:     trunk/bin/README
	删除:     trunk/bin/install.sh
	删除:     trunk/bin/sys_nicmonitor#1.8.1-x86_64-Linx-Rocky4.2.pkg.tar.gz
	删除:     trunk/doc/网卡监视程序动态库使用手册【新】.doc
	删除:     trunk/doc/网卡监视程序安装说明以及使用手册【新】.doc
	删除:     trunk/src/Pkgfile
	删除:     trunk/src/build.sh
	删除:     trunk/src/post_add.sh
	删除:     trunk/src/post_mk.sh
	删除:     trunk/src/sys_nicmonitor-1.8.tar.gz
	删除:     trunk/src/sys_nicmonitor-1.9.tar.gz
	删除:     trunk/sys_nicmonitor/README.md
	删除:     trunk/sys_nicmonitor/sys_nicmonitor-from-svn.tar.bz2

Signed-off-by: Zhang, Guodong <gdzhang@linx-info.com>
2016-09-19 14:24:03 +08:00

143 lines
3.1 KiB
C

#include "mnic.h"
static int sys_nic_debug=0;
static char *prase_digit(char **s)
{
char *retp = NULL;
char *p = *s;
if(!p)return NULL;
while(!isdigit(*p)){
p++;
if(*p == '\0')return NULL;
}
retp = p;
while(isdigit(*p)){
p++;
if(*p == '\0'){
*s = NULL;
return retp;
}
}
*p = '\0';
p++;
*s = p;
return retp;
}
char *get_name(char *name, char *p)
{
while (isspace(*p))
p++;
while (*p) {
if (isspace(*p))
break;
if (*p == ':') { /* could be an alias */
char *dot = p, *dotname = name;
*name++ = *p++;
while (isdigit(*p))
*name++ = *p++;
if (*p != ':') { /* it wasn't, backup */
p = dot;
name = dotname;
}
if (*p == '\0')
return NULL;
p++;
break;
}
*name++ = *p++;
}
*name++ = '\0';
return p;
}
int get_dev_fields(char *str, NETCARD_INFO *ife)
{
if( getenv("SYS_NIC_DEBUG") ) {
sys_nic_debug = 1;
}
int i = 0;
char *retp[16];
char error_str[1024];
while((retp[i] = prase_digit(&str)) != NULL){i++;if(i > 15)break;}
ife->rx_bytes = atoll(retp[0]);
ife->rx_packets = atoll(retp[1]);
ife->rx_errors = atol(retp[2]);
ife->rx_dropped = atol(retp[3]);
ife->rx_fifo_errors = atol(retp[4]);
ife->rx_multicast = atol(retp[7]);
ife->tx_bytes = atoll(retp[8]);
ife->tx_packets = atoll(retp[9]);
ife->tx_errors = atol(retp[10]);
ife->tx_dropped = atol(retp[11]);
ife->tx_fifo_errors = atol(retp[12]);
ife->collisions = atol(retp[13]);
ife->tx_carrier_errors = atol(retp[14]);
if( 0 ) {
snprintf(error_str, sizeof(error_str), "ife->rx_bytes%lld:\tife->tx_bytes=%lld\n",ife->rx_bytes,ife->tx_bytes);
record_log(error_str);
}
return 0;
}
int if_fetch(NETCARD_INFO *ife)
{
int skfd;
struct ifreq ifr;
if((skfd = socket(PF_INET, SOCK_DGRAM, 0)) == -1)return -1;
strcpy(ifr.ifr_name, ife->charname);
if (!ioctl(skfd, SIOCGIFFLAGS, &ifr))
ife->flags = ifr.ifr_flags;
if (!ioctl(skfd, SIOCGIFHWADDR, &ifr))
ife->hwaddr = ifr.ifr_hwaddr;
if (!ioctl(skfd, SIOCGIFMTU, &ifr))
ife->mtu = ifr.ifr_mtu;
if (!ioctl(skfd, SIOCGIFTXQLEN, &ifr))
ife->tx_queue_len = ifr.ifr_qlen;
if (!ioctl(skfd, SIOCGIFADDR, &ifr))
ife->addr = ifr.ifr_addr;
if (!ioctl(skfd, SIOCGIFBRDADDR, &ifr))
ife->broadaddr = ifr.ifr_broadaddr;
if (!ioctl(skfd, SIOCGIFNETMASK, &ifr))
ife->netmask = ifr.ifr_netmask;
ife->time_stamp = time(NULL);
close(skfd);
return 0;
}
int ioc_get_name(NETCARD_INFO *name)
{
int skfd;
int ifrnum;
int i = 0;
struct ifconf ifc;
struct ifreq buf[MAXNICNUM];
if((skfd = socket(PF_INET, SOCK_DGRAM, 0)) == -1)return -1;
memset(buf, 0, sizeof(buf));
ifc.ifc_len = sizeof(buf);
ifc.ifc_buf = (caddr_t) buf;
ioctl(skfd, SIOCGIFCONF, &ifc);
ifrnum = ifc.ifc_len / sizeof(struct ifreq);
while(ifrnum-- > 0){
strcpy(name[i].charname, buf[ifrnum].ifr_name);
i++;
}
close(skfd);
return i;
}