<div dir="ltr"><div><div>Hi Michal,<br><br></div>The IN6_IS_ADDR_UNSPECIFIED() function needs a struct in6_addr as argument. So changing the line in this way:<br><br>-        return IN6_IS_ADDR_UNSPECIFIED(&addr->data.inet6.sin6_addr.s6_addr);<br>

+        return IN6_IS_ADDR_UNSPECIFIED(&addr->data.inet6.sin6_addr);<br><br></div>it should work.<br><div><br>Regards,<br><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Jun 10, 2013 at 12:31 PM, Michal Privoznik <span dir="ltr"><<a href="mailto:mprivozn@redhat.com" target="_blank">mprivozn@redhat.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">There's this macro IN6_IS_ADDR_UNSPECIFIED which seems to be portable,<br>
but it is not. On other architectures many errors are produced, e.g. on<br>
my ARM box I get:<br>
<br>
  CC       libvirt_util_la-virsocketaddr.lo<br>
util/virsocketaddr.c: In function 'virSocketAddrIsWildcard':<br>
util/virsocketaddr.c:244:16: error: cast increases required alignment of target type [-Werror=cast-align]<br>
util/virsocketaddr.c: At top level:<br>
cc1: error: unrecognized command line option "-Wno-unused-command-line-argument" [-Werror]<br>
cc1: all warnings being treated as errors<br>
<br>
Hence, we should drop its usage and move to memcmp instead.<br>
---<br>
 src/util/virsocketaddr.c | 3 ++-<br>
 1 file changed, 2 insertions(+), 1 deletion(-)<br>
<br>
diff --git a/src/util/virsocketaddr.c b/src/util/virsocketaddr.c<br>
index e84c58e..1cefda7 100644<br>
--- a/src/util/virsocketaddr.c<br>
+++ b/src/util/virsocketaddr.c<br>
@@ -241,7 +241,8 @@ virSocketAddrIsWildcard(const virSocketAddrPtr addr)<br>
         return memcmp(&addr->data.inet4.sin_addr.s_addr, &tmp,<br>
                       sizeof(addr->data.inet4.sin_addr.s_addr)) == 0;<br>
     case AF_INET6:<br>
-        return IN6_IS_ADDR_UNSPECIFIED(&addr->data.inet6.sin6_addr.s6_addr);<br>
+        return memcmp(addr->data.inet6.sin6_addr.s6_addr, &in6addr_any,<br>
+                      sizeof(addr->data.inet6.sin6_addr.s6_addr)) == 0;<br>
     }<br>
     return false;<br>
 }<br>
<span class=""><font color="#888888">--<br>
1.8.1.5<br>
<br>
--<br>
libvir-list mailing list<br>
<a href="mailto:libvir-list@redhat.com">libvir-list@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/libvir-list" target="_blank">https://www.redhat.com/mailman/listinfo/libvir-list</a><br>
</font></span></blockquote></div><br><br clear="all"><br>-- <br><div dir="ltr"><b style="color:rgb(51,51,51)"><font>Michele Paolino </font></b><b style="color:rgb(136,136,136)"><br></b><font style="color:rgb(136,136,136)">Virtual Open Systems</font><b style="color:rgb(136,136,136)"><font><br>

</font></b><i style="color:rgb(136,136,136)"><font>Open Source  KVM  Virtualization  Developments<br>Multicore Systems Virtualization Porting Services<br></font></i><font style="color:rgb(136,136,136)">Web</font><i style="color:rgb(136,136,136)"><font>:</font></i><span style="color:rgb(102,102,102)"><span style="color:rgb(0,0,0)"> </span><u><span style="color:rgb(0,0,0)"><a href="http://www.virtualopensystems.com/" style="color:rgb(17,85,204)" target="_blank">www.virtualopensystems.com</a></span></u></span></div>


</div></div></div>