This fixes signedness mismatch warnings on platforms where socklen_t
is unsigned, notably Linux (where it's an unsigned int).
We still use int for the fallback case where the platform does not
define socklen_t, because that was the traditional (pre-POSIX) type:
for details see NOTES in Linux accept(2),
<http://manpages.debian.org/cgi-bin/man.cgi?query=accept&sektion=2>.
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=93069
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Ralf Habacker <ralf.habacker@freenet.de>
#else
struct ucred cr;
#endif
- int cr_len = sizeof (cr);
+ socklen_t cr_len = sizeof (cr);
if (getsockopt (client_fd.fd, SOL_SOCKET, SO_PEERCRED, &cr, &cr_len) != 0)
{
struct sockaddr_in6 ipv6;
} socket;
char hostip[INET6_ADDRSTRLEN];
- int size = sizeof (socket);
+ socklen_t size = sizeof (socket);
DBusString path_str;
if (getsockname (fd.fd, &socket.sa, &size))
#endif
#endif
+#ifndef HAVE_SOCKLEN_T
+#define socklen_t int
+#endif
+
static const char*
type_to_name (int message_type)
{
struct sockaddr_in6 ipv6;
} addr, peer;
char hostip[INET6_ADDRSTRLEN];
- int addrlen = sizeof (addr);
- int peerlen = sizeof (peer);
+ socklen_t addrlen = sizeof (addr);
+ socklen_t peerlen = sizeof (peer);
int has_peer;
/* Don't print the fd number: it is different in every process and since