#ifndef UTIL_NET_H_ #define UTIL_NET_H_ #include #include #define UNIX_PATH_MAX (sizeof(struct sockaddr_un) - \ (size_t)((struct sockaddr_un *) 0)->sun_path) #ifndef SO_PEEK_OFF #define SO_PEEK_OFF 42 #endif /* * Because of kernel doing kmalloc for user data passed * in SCM messages, and there is SCM_MAX_FD as a limit * for descriptors passed at once we're trying to reduce * the pressue on kernel memory manager and use predefined * known to work well size of the message buffer. */ #define CR_SCM_MSG_SIZE (1024) #define CR_SCM_MAX_FD (252) struct scm_fdset { struct msghdr hdr; struct iovec iov; char msg_buf[CR_SCM_MSG_SIZE]; int msg; /* We are to send at least one byte */ }; extern int send_fd(int sock, struct sockaddr_un *saddr, int len, int fd); extern int recv_fd(int sock); #endif