#ifndef HAVE_IPV6 my_syslog(LOG_WARNING, _("attempt to set an IPv6 server address via DBus - no IPv6 support"));
#else
- if (i == sizeof(struct in6_addr)-1)
+ if (i == sizeof(struct in6_addr))
{ memcpy(&addr.in6.sin6_addr, p, sizeof(struct in6_addr));
#ifdef HAVE_SOCKADDR_SA_LEN
I think the following, much simpler, patch should solve the problem.
Simon.
diff --git a/src/dbus.c b/src/dbus.c servers( DBusMessage *message)
dbus_message_ iter_get_ basic(& iter, &p[i]);
dbus_message_ iter_next (&iter); iter_get_ arg_type( &iter) != DBUS_TYPE_BYTE)
index 93c597c..4696442 100644
--- a/src/dbus.c
+++ b/src/dbus.c
@@ -156,13 +156,16 @@ static void dbus_read_
if (dbus_message_
- break;
+ {
+ i++;
+ break;
+ }
}
#ifndef HAVE_IPV6
my_syslog( LOG_WARNING, _("attempt to set an IPv6 server address via DBus - no IPv6 support"));
memcpy( &addr.in6. sin6_addr, p, sizeof(struct in6_addr)); SA_LEN
#else
- if (i == sizeof(struct in6_addr)-1)
+ if (i == sizeof(struct in6_addr))
{
#ifdef HAVE_SOCKADDR_