[Iftop-users] [PATCH] Fix MAC address formatting

Scott Bertilson ssb at umn.edu
Fri, 7 Feb 2014 16:37:21 -0600


--bcaec52160bb415a9004f1d8a256
Content-Type: multipart/alternative; boundary=bcaec52160bb415a8a04f1d8a254

--bcaec52160bb415a8a04f1d8a254
Content-Type: text/plain; charset=ISO-8859-1

Perhaps a little more involved, but I think it would also be good to bring
if_hw_addr into compatibility with the sources from which is drawn such as:
ether.h:        u_int8_t        ether_dhost[ETHER_ADDR_LEN];
ether.h:        u_int8_t        ether_shost[ETHER_ADDR_LEN];
token.h:        u_int8_t  token_dhost[TOKEN_RING_MAC_LEN];
token.h:        u_int8_t  token_shost[TOKEN_RING_MAC_LEN];

so change all declarations from "char" to "u_int8_t".

Attached.


On Fri, Feb 7, 2014 at 3:39 PM, Zev Weiss <zev@bewilderbeest.net> wrote:

> Hi,
>
> Running iftop-1.0pre4 I noticed my MAC address getting printed with some
> bytes (the "negative" ones) sign-extended into 32 bits (i.e. with "ffffff"
> prefixed).  The below patch restores more a conventional-looking format.
>
> Thanks,
> Zev Weiss
>
> diff -Naur iftop-1.0pre4.orig/iftop.c iftop-1.0pre4/iftop.c
> --- iftop-1.0pre4.orig/iftop.c  2014-01-19 12:21:19.000000000 -0800
> +++ iftop-1.0pre4/iftop.c       2014-02-07 13:26:15.669698968 -0800
> @@ -713,7 +713,7 @@
>      if(have_hw_addr) {
>        fprintf(stderr, "MAC address is:");
>        for (i = 0; i < 6; ++i)
> -       fprintf(stderr, "%c%02x", i ? ':' : ' ', (unsigned
> int)if_hw_addr[i]);
> +       fprintf(stderr, "%c%02hhx", i ? ':' : ' ', if_hw_addr[i]);
>        fprintf(stderr, "\n");
>      }
>
>
>
> _______________________________________________
> iftop-users mailing list
> iftop-users@lists.beasts.org
> http://lists.beasts.org/mailman/listinfo/iftop-users
>

--bcaec52160bb415a8a04f1d8a254
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Perhaps a little more involved, but I think it would also =
be good to bring if_hw_addr into compatibility with the sources from which =
is drawn such as:<div><div>ether.h: =A0 =A0 =A0 =A0u_int8_t =A0 =A0 =A0 =A0=
ether_dhost[ETHER_ADDR_LEN];</div>
<div>ether.h: =A0 =A0 =A0 =A0u_int8_t =A0 =A0 =A0 =A0ether_shost[ETHER_ADDR=
_LEN];</div></div><div><div>token.h: =A0 =A0 =A0 =A0u_int8_t =A0token_dhost=
[TOKEN_RING_MAC_LEN];</div><div>token.h: =A0 =A0 =A0 =A0u_int8_t =A0token_s=
host[TOKEN_RING_MAC_LEN];</div></div>
<div><br></div><div>so change all declarations from &quot;char&quot; to &qu=
ot;u_int8_t&quot;.</div><div><br></div><div>Attached.</div></div><div class=
=3D"gmail_extra"><br><br><div class=3D"gmail_quote">On Fri, Feb 7, 2014 at =
3:39 PM, Zev Weiss <span dir=3D"ltr">&lt;<a href=3D"mailto:zev@bewilderbees=
t.net" target=3D"_blank">zev@bewilderbeest.net</a>&gt;</span> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">Hi,<br>
<br>
Running iftop-1.0pre4 I noticed my MAC address getting printed with some by=
tes (the &quot;negative&quot; ones) sign-extended into 32 bits (i.e. with &=
quot;ffffff&quot; prefixed). =A0The below patch restores more a conventiona=
l-looking format.<br>

<br>
Thanks,<br>
Zev Weiss<br>
<br>
diff -Naur iftop-1.0pre4.orig/iftop.c iftop-1.0pre4/iftop.c<br>
--- iftop-1.0pre4.orig/iftop.c =A02014-01-19 12:21:19.000000000 -0800<br>
+++ iftop-1.0pre4/iftop.c =A0 =A0 =A0 2014-02-07 13:26:15.669698968 -0800<b=
r>
@@ -713,7 +713,7 @@<br>
=A0 =A0 =A0if(have_hw_addr) {<br>
=A0 =A0 =A0 =A0fprintf(stderr, &quot;MAC address is:&quot;);<br>
=A0 =A0 =A0 =A0for (i =3D 0; i &lt; 6; ++i)<br>
- =A0 =A0 =A0 fprintf(stderr, &quot;%c%02x&quot;, i ? &#39;:&#39; : &#39; &=
#39;, (unsigned int)if_hw_addr[i]);<br>
+ =A0 =A0 =A0 fprintf(stderr, &quot;%c%02hhx&quot;, i ? &#39;:&#39; : &#39;=
 &#39;, if_hw_addr[i]);<br>
=A0 =A0 =A0 =A0fprintf(stderr, &quot;\n&quot;);<br>
=A0 =A0 =A0}<br>
<br>
<br>
<br>
_______________________________________________<br>
iftop-users mailing list<br>
<a href=3D"mailto:iftop-users@lists.beasts.org">iftop-users@lists.beasts.or=
g</a><br>
<a href=3D"http://lists.beasts.org/mailman/listinfo/iftop-users" target=3D"=
_blank">http://lists.beasts.org/mailman/listinfo/iftop-users</a><br>
</blockquote></div><br></div>

--bcaec52160bb415a8a04f1d8a254--
--bcaec52160bb415a9004f1d8a256
Content-Type: application/octet-stream; name="iftop.diffs"
Content-Disposition: attachment; filename="iftop.diffs"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_hre1avtc0

LS0tIGFkZHJzX2RscGkuYy5vcmlnCVR1ZSBPY3QgMTQgMTc6MzM6NDUgMjAwMworKysgYWRkcnNf
ZGxwaS5jCUZyaSBGZWIgIDcgMTY6MjU6MzcgMjAxNApAQCAtNTAsNyArNTAsNyBAQAogICovCiAK
IGludAotZ2V0X2FkZHJzX2RscGkoY2hhciAqaW50ZXJmYWNlLCBjaGFyIGlmX2h3X2FkZHJbXSwg
c3RydWN0IGluX2FkZHIgKmlmX2lwX2FkZHIpCitnZXRfYWRkcnNfZGxwaShjaGFyICppbnRlcmZh
Y2UsIHVfaW50OF90IGlmX2h3X2FkZHJbXSwgc3RydWN0IGluX2FkZHIgKmlmX2lwX2FkZHIpCiB7
CiAgIGludCBnb3RfaHdfYWRkciA9IDA7CiAgIGludCBnb3RfaXBfYWRkciA9IDA7Ci0tLSBhZGRy
c19pb2N0bC5jLm9yaWcJU3VuIEphbiAgNSAxMjo0NjozNyAyMDE0CisrKyBhZGRyc19pb2N0bC5j
CUZyaSBGZWIgIDcgMTY6Mjk6MDcgMjAxNApAQCAtNDUsNyArNDUsNyBAQAogICovCiAKIGludAot
Z2V0X2FkZHJzX2lvY3RsKGNoYXIgKmludGVyZmFjZSwgY2hhciBpZl9od19hZGRyW10sIHN0cnVj
dCBpbl9hZGRyICppZl9pcF9hZGRyLCBzdHJ1Y3QgaW42X2FkZHIgKmlmX2lwNl9hZGRyKQorZ2V0
X2FkZHJzX2lvY3RsKGNoYXIgKmludGVyZmFjZSwgdV9pbnQ4X3QgaWZfaHdfYWRkcltdLCBzdHJ1
Y3QgaW5fYWRkciAqaWZfaXBfYWRkciwgc3RydWN0IGluNl9hZGRyICppZl9pcDZfYWRkcikKIHsK
ICAgaW50IHM7CiAgIHN0cnVjdCBpZnJlcSBpZnIgPSB7fTsKLS0tIGFkZHJzX2lvY3RsLmgub3Jp
ZwlTdW4gSmFuICA1IDEzOjE1OjA5IDIwMTQKKysrIGFkZHJzX2lvY3RsLmgJRnJpIEZlYiAgNyAx
NjoyNTo1NCAyMDE0CkBAIC03LDYgKzcsNiBAQAogI2RlZmluZSBfX0FERFJTX0lPQ1RMX0hfCiAK
IGludAotZ2V0X2FkZHJzX2lvY3RsKGNoYXIgKmludGVyZmFjZSwgY2hhciBpZl9od19hZGRyW10s
IHN0cnVjdCBpbl9hZGRyICppZl9pcF9hZGRyLCBzdHJ1Y3QgaW42X2FkZHIgKmlmX2lwNl9hZGRy
KTsKK2dldF9hZGRyc19pb2N0bChjaGFyICppbnRlcmZhY2UsIHVfaW50OF90IGlmX2h3X2FkZHJb
XSwgc3RydWN0IGluX2FkZHIgKmlmX2lwX2FkZHIsIHN0cnVjdCBpbjZfYWRkciAqaWZfaXA2X2Fk
ZHIpOwogCiAjZW5kaWYgLyogX19BRERSU19JT0NUTF9IXyAqLwotLS0gaWZ0b3AuYy5vcmlnCVN1
biBKYW4gMTkgMTQ6MjE6MTkgMjAxNAorKysgaWZ0b3AuYwlGcmkgRmViICA3IDE2OjI5OjU4IDIw
MTQKQEAgLTU1LDcgKzU1LDcgQEAKIAogLyogZXRoZXJuZXQgYWRkcmVzcyBvZiBpbnRlcmZhY2Uu
ICovCiBpbnQgaGF2ZV9od19hZGRyID0gMDsKLWNoYXIgaWZfaHdfYWRkcls2XTsgICAgCit1X2lu
dDhfdCBpZl9od19hZGRyWzZdOyAgICAKIAogLyogSVAgYWRkcmVzcyBvZiBpbnRlcmZhY2UgKi8K
IGludCBoYXZlX2lwX2FkZHIgPSAwOwpAQCAtNzEzLDcgKzcxMyw3IEBACiAgICAgaWYoaGF2ZV9o
d19hZGRyKSB7CiAgICAgICBmcHJpbnRmKHN0ZGVyciwgIk1BQyBhZGRyZXNzIGlzOiIpOwogICAg
ICAgZm9yIChpID0gMDsgaSA8IDY7ICsraSkKLQlmcHJpbnRmKHN0ZGVyciwgIiVjJTAyeCIsIGkg
PyAnOicgOiAnICcsICh1bnNpZ25lZCBpbnQpaWZfaHdfYWRkcltpXSk7CisJZnByaW50ZihzdGRl
cnIsICIlYyUwMngiLCBpID8gJzonIDogJyAnLCBpZl9od19hZGRyW2ldKTsKICAgICAgIGZwcmlu
dGYoc3RkZXJyLCAiXG4iKTsKICAgICB9CiAgICAgCg==
--bcaec52160bb415a9004f1d8a256--