logind: Fix compilation without ACL

Compilation fails if sys/acl.h is not available. The configure script
already tests for sys/acl.h presence, but the result was so far unused.
To compile without acl, stub implementations of the acl functions are
used.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2011-07-11 22:29:45 +02:00 committed by Lennart Poettering
parent 4e7f8bc81c
commit 2fb1aedaf2
2 changed files with 29 additions and 3 deletions

View File

@ -885,7 +885,6 @@ systemd_logind_SOURCES = \
src/logind-session-dbus.c \
src/logind-user.c \
src/logind-user-dbus.c \
src/logind-acl.c \
src/dbus-common.c \
src/dbus-loop.c \
src/cgroup-util.c \
@ -905,8 +904,15 @@ systemd_logind_LDADD = \
$(ACL_LIBS)
systemd_uaccess_SOURCES = \
src/uaccess.c \
src/logind-acl.c
src/uaccess.c
if HAVE_ACL
systemd_logind_SOURCES += \
src/logind-acl.c
systemd_uaccess_SOURCES += \
src/logind-acl.c
endif
systemd_uaccess_CFLAGS = \
$(AM_CFLAGS) \

View File

@ -26,6 +26,8 @@
#include <stdbool.h>
#include <libudev.h>
#ifdef HAVE_ACL
int devnode_acl(const char *path,
bool flush,
bool del, uid_t old_uid,
@ -36,5 +38,23 @@ int devnode_acl_all(struct udev *udev,
bool flush,
bool del, uid_t old_uid,
bool add, uid_t new_uid);
#else
static inline int devnode_acl(const char *path,
bool flush,
bool del, uid_t old_uid,
bool add, uid_t new_uid) {
return 0;
}
static inline int devnode_acl_all(struct udev *udev,
const char *seat,
bool flush,
bool del, uid_t old_uid,
bool add, uid_t new_uid) {
return 0;
}
#endif
#endif