chiark / gitweb /
util: never follow symlinks in rm_rf_children()
[elogind.git] / src / sd-daemon.c
index a2ec74cceb59a744f9bec7486972832896cdb2ff..763e079b4ec0ac7cfa9bda49341e29a0672f2e87 100644 (file)
 #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 <netinet/in.h>
 #include <stdlib.h>
 #include <errno.h>
 
 #include "sd-daemon.h"
 
-#if (__GNUC__ >= 4) && !defined(SD_EXPORT_SYMBOLS)
-#define _sd_hidden_ __attribute__ ((visibility("hidden")))
+#if (__GNUC__ >= 4)
+#ifdef SD_EXPORT_SYMBOLS
+/* Export symbols */
+#define _sd_export_ __attribute__ ((visibility("default")))
+#else
+/* Don't export the symbols */
+#define _sd_export_ __attribute__ ((visibility("hidden")))
+#endif
 #else
-#define _sd_hidden_
+#define _sd_export_
 #endif
 
-_sd_hidden_ int sd_listen_fds(int unset_environment) {
+_sd_export_ int sd_listen_fds(int unset_environment) {
 
 #if defined(DISABLE_SYSTEMD) || !defined(__linux__)
         return 0;
@@ -136,7 +146,7 @@ finish:
 #endif
 }
 
-_sd_hidden_ int sd_is_fifo(int fd, const char *path) {
+_sd_export_ int sd_is_fifo(int fd, const char *path) {
         struct stat st_fd;
 
         if (fd < 0)
@@ -169,7 +179,7 @@ _sd_hidden_ int sd_is_fifo(int fd, const char *path) {
         return 1;
 }
 
-_sd_hidden_ int sd_is_special(int fd, const char *path) {
+_sd_export_ int sd_is_special(int fd, const char *path) {
         struct stat st_fd;
 
         if (fd < 0)
@@ -256,7 +266,7 @@ union sockaddr_union {
         struct sockaddr_storage storage;
 };
 
-_sd_hidden_ int sd_is_socket(int fd, int family, int type, int listening) {
+_sd_export_ int sd_is_socket(int fd, int family, int type, int listening) {
         int r;
 
         if (family < 0)
@@ -284,7 +294,7 @@ _sd_hidden_ int sd_is_socket(int fd, int family, int type, int listening) {
         return 1;
 }
 
-_sd_hidden_ int sd_is_socket_inet(int fd, int family, int type, int listening, uint16_t port) {
+_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;
         int r;
@@ -329,7 +339,7 @@ _sd_hidden_ int sd_is_socket_inet(int fd, int family, int type, int listening, u
         return 1;
 }
 
-_sd_hidden_ int sd_is_socket_unix(int fd, int type, int listening, const char *path, size_t length) {
+_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;
         int r;
@@ -372,7 +382,7 @@ _sd_hidden_ int sd_is_socket_unix(int fd, int type, int listening, const char *p
         return 1;
 }
 
-_sd_hidden_ int sd_is_mq(int fd, const char *path) {
+_sd_export_ int sd_is_mq(int fd, const char *path) {
 #if !defined(__linux__)
         return 0;
 #else
@@ -409,7 +419,7 @@ _sd_hidden_ int sd_is_mq(int fd, const char *path) {
 #endif
 }
 
-_sd_hidden_ int sd_notify(int unset_environment, const char *state) {
+_sd_export_ int sd_notify(int unset_environment, const char *state) {
 #if defined(DISABLE_SYSTEMD) || !defined(__linux__) || !defined(SOCK_CLOEXEC)
         return 0;
 #else
@@ -477,7 +487,7 @@ finish:
 #endif
 }
 
-_sd_hidden_ int sd_notifyf(int unset_environment, const char *format, ...) {
+_sd_export_ int sd_notifyf(int unset_environment, const char *format, ...) {
 #if defined(DISABLE_SYSTEMD) || !defined(__linux__)
         return 0;
 #else
@@ -499,7 +509,7 @@ _sd_hidden_ int sd_notifyf(int unset_environment, const char *format, ...) {
 #endif
 }
 
-_sd_hidden_ int sd_booted(void) {
+_sd_export_ int sd_booted(void) {
 #if defined(DISABLE_SYSTEMD) || !defined(__linux__)
         return 0;
 #else