1
0

virstat: fix signature of virstat helper

In preparation to the code move to virnetdevtap.c, this change:

* renames virNetInterfaceStats to virNetDevTapInterfaceStats
* changes 'path' to 'ifname', to use the same vocable as other
  method in virnetdevtap.c.
* Add the attributes checker
This commit is contained in:
Mehdi Abaakouk 2016-11-18 23:51:14 +01:00 committed by Michal Privoznik
parent 013df874db
commit 9b6de7c506
8 changed files with 22 additions and 21 deletions

View File

@ -2397,7 +2397,7 @@ virSocketAddrSetIPv6AddrNetOrder;
virSocketAddrSetPort; virSocketAddrSetPort;
# util/virstats.h # util/virstats.h
virNetInterfaceStats; virNetDevTapInterfaceStats;
# util/virstorageencryption.h # util/virstorageencryption.h
virStorageEncryptionFormat; virStorageEncryptionFormat;

View File

@ -4985,7 +4985,7 @@ libxlDomainInterfaceStats(virDomainPtr dom,
} }
if (ret == 0) if (ret == 0)
ret = virNetInterfaceStats(path, stats); ret = virNetDevTapInterfaceStats(path, stats);
else else
virReportError(VIR_ERR_INVALID_ARG, virReportError(VIR_ERR_INVALID_ARG,
_("'%s' is not a known interface"), path); _("'%s' is not a known interface"), path);

View File

@ -2896,7 +2896,7 @@ lxcDomainInterfaceStats(virDomainPtr dom,
} }
if (ret == 0) if (ret == 0)
ret = virNetInterfaceStats(path, stats); ret = virNetDevTapInterfaceStats(path, stats);
else else
virReportError(VIR_ERR_INVALID_ARG, virReportError(VIR_ERR_INVALID_ARG,
_("Invalid path, '%s' is not a known interface"), path); _("Invalid path, '%s' is not a known interface"), path);

View File

@ -2027,7 +2027,7 @@ openvzDomainInterfaceStats(virDomainPtr dom,
} }
if (ret == 0) if (ret == 0)
ret = virNetInterfaceStats(path, stats); ret = virNetDevTapInterfaceStats(path, stats);
else else
virReportError(VIR_ERR_INVALID_ARG, virReportError(VIR_ERR_INVALID_ARG,
_("invalid path, '%s' is not a known interface"), path); _("invalid path, '%s' is not a known interface"), path);

View File

@ -11009,7 +11009,7 @@ qemuDomainInterfaceStats(virDomainPtr dom,
if (virNetDevOpenvswitchInterfaceStats(path, stats) < 0) if (virNetDevOpenvswitchInterfaceStats(path, stats) < 0)
goto cleanup; goto cleanup;
} else { } else {
if (virNetInterfaceStats(path, stats) < 0) if (virNetDevTapInterfaceStats(path, stats) < 0)
goto cleanup; goto cleanup;
} }
@ -19204,7 +19204,7 @@ qemuDomainGetStatsInterface(virQEMUDriverPtr driver ATTRIBUTE_UNUSED,
continue; continue;
} }
} else { } else {
if (virNetInterfaceStats(dom->def->nets[i]->ifname, &tmp) < 0) { if (virNetDevTapInterfaceStats(dom->def->nets[i]->ifname, &tmp) < 0) {
virResetLastError(); virResetLastError();
continue; continue;
} }

View File

@ -50,10 +50,10 @@
*/ */
#ifdef __linux__ #ifdef __linux__
int int
virNetInterfaceStats(const char *path, virNetDevTapInterfaceStats(const char *ifname,
virDomainInterfaceStatsPtr stats) virDomainInterfaceStatsPtr stats)
{ {
int path_len; int ifname_len;
FILE *fp; FILE *fp;
char line[256], *colon; char line[256], *colon;
@ -64,7 +64,7 @@ virNetInterfaceStats(const char *path,
return -1; return -1;
} }
path_len = strlen(path); ifname_len = strlen(ifname);
while (fgets(line, sizeof(line), fp)) { while (fgets(line, sizeof(line), fp)) {
long long dummy; long long dummy;
@ -84,8 +84,8 @@ virNetInterfaceStats(const char *path,
colon = strchr(line, ':'); colon = strchr(line, ':');
if (!colon) continue; if (!colon) continue;
*colon = '\0'; *colon = '\0';
if (colon-path_len >= line && if (colon - ifname_len >= line &&
STREQ(colon-path_len, path)) { STREQ(colon - ifname_len, ifname)) {
/* IMPORTANT NOTE! /* IMPORTANT NOTE!
* /proc/net/dev vif<domid>.nn sees the network from the point * /proc/net/dev vif<domid>.nn sees the network from the point
* of view of dom0 / hypervisor. So bytes TRANSMITTED by dom0 * of view of dom0 / hypervisor. So bytes TRANSMITTED by dom0
@ -121,7 +121,7 @@ virNetInterfaceStats(const char *path,
} }
#elif defined(HAVE_GETIFADDRS) && defined(AF_LINK) #elif defined(HAVE_GETIFADDRS) && defined(AF_LINK)
int int
virNetInterfaceStats(const char *path, virNetDevTapInterfaceStats(const char *ifname,
virDomainInterfaceStatsPtr stats) virDomainInterfaceStatsPtr stats)
{ {
struct ifaddrs *ifap, *ifa; struct ifaddrs *ifap, *ifa;
@ -138,7 +138,7 @@ virNetInterfaceStats(const char *path,
if (ifa->ifa_addr->sa_family != AF_LINK) if (ifa->ifa_addr->sa_family != AF_LINK)
continue; continue;
if (STREQ(ifa->ifa_name, path)) { if (STREQ(ifa->ifa_name, ifname)) {
ifd = (struct if_data *)ifa->ifa_data; ifd = (struct if_data *)ifa->ifa_data;
stats->tx_bytes = ifd->ifi_ibytes; stats->tx_bytes = ifd->ifi_ibytes;
stats->tx_packets = ifd->ifi_ipackets; stats->tx_packets = ifd->ifi_ipackets;
@ -167,7 +167,7 @@ virNetInterfaceStats(const char *path,
} }
#else #else
int int
virNetInterfaceStats(const char *path ATTRIBUTE_UNUSED, virNetDevTapInterfaceStats(const char *ifname ATTRIBUTE_UNUSED,
virDomainInterfaceStatsPtr stats ATTRIBUTE_UNUSED) virDomainInterfaceStatsPtr stats ATTRIBUTE_UNUSED)
{ {
virReportError(VIR_ERR_OPERATION_INVALID, "%s", virReportError(VIR_ERR_OPERATION_INVALID, "%s",

View File

@ -25,7 +25,8 @@
# include "internal.h" # include "internal.h"
int virNetInterfaceStats(const char *path, int virNetDevTapInterfaceStats(const char *ifname,
virDomainInterfaceStatsPtr stats); virDomainInterfaceStatsPtr stats)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_RETURN_CHECK;
#endif /* __STATS_LINUX_H__ */ #endif /* __STATS_LINUX_H__ */

View File

@ -1466,7 +1466,7 @@ xenHypervisorDomainInterfaceStats(virDomainDefPtr def,
return -1; return -1;
} }
return virNetInterfaceStats(path, stats); return virNetDevTapInterfaceStats(path, stats);
#else #else
virReportError(VIR_ERR_OPERATION_INVALID, "%s", virReportError(VIR_ERR_OPERATION_INVALID, "%s",
_("/proc/net/dev: Interface not found")); _("/proc/net/dev: Interface not found"));