mirror of
https://gitlab.freedesktop.org/dbus/dbus.git
synced 2026-05-05 05:18:00 +02:00
sd-daemon.c: update from systemd for better portability
This commit is contained in:
parent
1aaeb6afd0
commit
68c1a26d1e
1 changed files with 11 additions and 24 deletions
|
|
@ -32,11 +32,7 @@
|
|||
#include <sys/stat.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/un.h>
|
||||
#ifdef __BIONIC__
|
||||
# include <linux/fcntl.h>
|
||||
#else
|
||||
# include <sys/fcntl.h>
|
||||
#endif
|
||||
#include <fcntl.h>
|
||||
#include <netinet/in.h>
|
||||
#include <stdlib.h>
|
||||
#include <errno.h>
|
||||
|
|
@ -47,7 +43,7 @@
|
|||
#include <stddef.h>
|
||||
#include <limits.h>
|
||||
|
||||
#if defined(__linux__)
|
||||
#if defined(__linux__) && !defined(SD_DAEMON_DISABLE_MQ)
|
||||
# include <mqueue.h>
|
||||
#endif
|
||||
|
||||
|
|
@ -84,7 +80,7 @@ _sd_export_ int sd_listen_fds(int unset_environment) {
|
|||
errno = 0;
|
||||
l = strtoul(e, &p, 10);
|
||||
|
||||
if (errno != 0) {
|
||||
if (errno > 0) {
|
||||
r = -errno;
|
||||
goto finish;
|
||||
}
|
||||
|
|
@ -109,7 +105,7 @@ _sd_export_ int sd_listen_fds(int unset_environment) {
|
|||
errno = 0;
|
||||
l = strtoul(e, &p, 10);
|
||||
|
||||
if (errno != 0) {
|
||||
if (errno > 0) {
|
||||
r = -errno;
|
||||
goto finish;
|
||||
}
|
||||
|
|
@ -278,11 +274,8 @@ _sd_export_ int sd_is_socket(int fd, int family, int type, int listening) {
|
|||
return r;
|
||||
|
||||
if (family > 0) {
|
||||
union sockaddr_union sockaddr;
|
||||
socklen_t l;
|
||||
|
||||
memset(&sockaddr, 0, sizeof(sockaddr));
|
||||
l = sizeof(sockaddr);
|
||||
union sockaddr_union sockaddr = {};
|
||||
socklen_t l = sizeof(sockaddr);
|
||||
|
||||
if (getsockname(fd, &sockaddr.sa, &l) < 0)
|
||||
return -errno;
|
||||
|
|
@ -297,8 +290,8 @@ _sd_export_ int sd_is_socket(int fd, int family, int type, int listening) {
|
|||
}
|
||||
|
||||
_sd_export_ int sd_is_socket_inet(int fd, int family, int type, int listening, uint16_t port) {
|
||||
union sockaddr_union sockaddr;
|
||||
socklen_t l;
|
||||
union sockaddr_union sockaddr = {};
|
||||
socklen_t l = sizeof(sockaddr);
|
||||
int r;
|
||||
|
||||
if (family != 0 && family != AF_INET && family != AF_INET6)
|
||||
|
|
@ -308,9 +301,6 @@ _sd_export_ int sd_is_socket_inet(int fd, int family, int type, int listening, u
|
|||
if (r <= 0)
|
||||
return r;
|
||||
|
||||
memset(&sockaddr, 0, sizeof(sockaddr));
|
||||
l = sizeof(sockaddr);
|
||||
|
||||
if (getsockname(fd, &sockaddr.sa, &l) < 0)
|
||||
return -errno;
|
||||
|
||||
|
|
@ -343,17 +333,14 @@ _sd_export_ int sd_is_socket_inet(int fd, int family, int type, int listening, u
|
|||
}
|
||||
|
||||
_sd_export_ int sd_is_socket_unix(int fd, int type, int listening, const char *path, size_t length) {
|
||||
union sockaddr_union sockaddr;
|
||||
socklen_t l;
|
||||
union sockaddr_union sockaddr = {};
|
||||
socklen_t l = sizeof(sockaddr);
|
||||
int r;
|
||||
|
||||
r = sd_is_socket_internal(fd, type, listening);
|
||||
if (r <= 0)
|
||||
return r;
|
||||
|
||||
memset(&sockaddr, 0, sizeof(sockaddr));
|
||||
l = sizeof(sockaddr);
|
||||
|
||||
if (getsockname(fd, &sockaddr.sa, &l) < 0)
|
||||
return -errno;
|
||||
|
||||
|
|
@ -387,7 +374,7 @@ _sd_export_ int sd_is_socket_unix(int fd, int type, int listening, const char *p
|
|||
}
|
||||
|
||||
_sd_export_ int sd_is_mq(int fd, const char *path) {
|
||||
#if !defined(__linux__)
|
||||
#if !defined(__linux__) || defined(SD_DAEMON_DISABLE_MQ)
|
||||
return 0;
|
||||
#else
|
||||
struct mq_attr attr;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue