Don't compile support for Device=fd on platforms that do not support UNIX sockets.
[tinc] / src / fd_device.c
index eab9e16..cfad5af 100644 (file)
@@ -20,6 +20,7 @@
     51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
+#ifdef HAVE_SYS_UN_H
 #include <sys/un.h>
 
 #include "system.h"
@@ -55,9 +56,12 @@ static int read_fd(int socket) {
                logger(DEBUG_ALWAYS, LOG_ERR, "Could not read from unix socket (error %d)!", ret);
                return -1;
        }
+
 #ifdef IP_RECVERR
+
        if(msg.msg_flags & (MSG_CTRUNC | MSG_OOB | MSG_ERRQUEUE)) {
 #else
+
        if(msg.msg_flags & (MSG_CTRUNC | MSG_OOB)) {
 #endif
                logger(DEBUG_ALWAYS, LOG_ERR, "Error while receiving message (flags %d)!", msg.msg_flags);
@@ -65,19 +69,22 @@ static int read_fd(int socket) {
        }
 
        cmsgptr = CMSG_FIRSTHDR(&msg);
+
        if(cmsgptr->cmsg_level != SOL_SOCKET) {
                logger(DEBUG_ALWAYS, LOG_ERR, "Wrong CMSG level: %d, expected %d!",
-                       cmsgptr->cmsg_level, SOL_SOCKET);
+                      cmsgptr->cmsg_level, SOL_SOCKET);
                return -1;
        }
+
        if(cmsgptr->cmsg_type != SCM_RIGHTS) {
                logger(DEBUG_ALWAYS, LOG_ERR, "Wrong CMSG type: %d, expected %d!",
-                       cmsgptr->cmsg_type, SCM_RIGHTS);
+                      cmsgptr->cmsg_type, SCM_RIGHTS);
                return -1;
        }
+
        if(cmsgptr->cmsg_len != CMSG_LEN(sizeof(device_fd))) {
                logger(DEBUG_ALWAYS, LOG_ERR, "Wrong CMSG data length: %lu, expected %lu!",
-                       (unsigned long)cmsgptr->cmsg_len, CMSG_LEN(sizeof(device_fd)));
+                      (unsigned long)cmsgptr->cmsg_len, (unsigned long)CMSG_LEN(sizeof(device_fd)));
                return -1;
        }
 
@@ -113,7 +120,9 @@ static struct unix_socket_addr parse_socket_addr(const char *path) {
 
        if(strlen(path) >= sizeof(socket_addr.sun_path)) {
                logger(DEBUG_ALWAYS, LOG_ERR, "Unix socket path too long!");
-               return (struct unix_socket_addr) {0};
+               return (struct unix_socket_addr) {
+                       0
+               };
        }
 
        socket_addr.sun_family = AF_UNIX;
@@ -226,3 +235,4 @@ const devops_t fd_devops = {
        .read = read_packet,
        .write = write_packet,
 };
+#endif