%6s:...
so in other words network interface names smaller than 6 characters are right justified (padded on the left with spaces).
This isn't a problem for Xen because the shortest interface name (eg. 'vif1.0') is always 6 or more characters long. However it is a problem for QEMU and KVM because we have interface names such as 'vnet0'.
In any case, the following patch fixes this bug. Rich. -- Emerging Technologies, Red Hat - http://et.redhat.com/~rjones/ Registered Address: Red Hat UK Ltd, Amberley Place, 107-111 Peascod Street, Windsor, Berkshire, SL4 1TE, United Kingdom. Registered in England and Wales under Company Registration No. 03798903
Index: src/stats_linux.c
===================================================================
RCS file: /data/cvs/libvirt/src/stats_linux.c,v
retrieving revision 1.2
diff -u -r1.2 stats_linux.c
--- src/stats_linux.c 15 Nov 2007 10:56:24 -0000 1.2
+++ src/stats_linux.c 15 Nov 2007 15:43:40 -0000
@@ -291,7 +291,7 @@
{
int path_len;
FILE *fp;
- char line[256];
+ char line[256], *colon;
fp = fopen ("/proc/net/dev", "r");
if (!fp) {
@@ -313,16 +313,22 @@
long long tx_errs;
long long tx_drop;
- if (STREQLEN (line, path, path_len) &&
- line[path_len] == ':' &&
- line[path_len+1] == ' ') {
+ /* The line looks like:
+ * " eth0:..."
+ * Split it at the colon.
+ */
+ colon = strchr (line, ':');
+ if (!colon) continue;
+ *colon = '\0';
+ if (colon-path_len >= line &&
+ STREQ (colon-path_len, path)) {
/* IMPORTANT NOTE!
* /proc/net/dev vif<domid>.nn sees the network from the point
* of view of dom0 / hypervisor. So bytes TRANSMITTED by dom0
* are bytes RECEIVED by the domain. That's why the TX/RX fields
* appear to be swapped here.
*/
- if (sscanf (&line[path_len+2],
+ if (sscanf (colon+1,
"%lld %lld %lld %lld %lld %lld %lld %lld %lld %lld %lld %lld %lld %lld %lld %lld",
&tx_bytes, &tx_packets, &tx_errs, &tx_drop,
&dummy, &dummy, &dummy, &dummy,
smime.p7s
Description: S/MIME Cryptographic Signature
-- Libvir-list mailing list [email protected] https://www.redhat.com/mailman/listinfo/libvir-list
