From ed23d075cae1353dcbec06925b2491e09395aafe Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Sun, 27 May 2018 10:15:03 +0200 Subject: Make mksock() more generic, move to util library Signed-off-by: David Oberhollenzer --- lib/include/util.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'lib/include') diff --git a/lib/include/util.h b/lib/include/util.h index f63a0d6..18133a8 100644 --- a/lib/include/util.h +++ b/lib/include/util.h @@ -35,6 +35,17 @@ typedef struct { int value; } enum_map_t; +enum { + /* only allow root to connect */ + SOCK_FLAG_ROOT_ONLY = 0x01, + + /* allow everyone to connect */ + SOCK_FLAG_EVERYONE = 0x02, + + /* create a datagram socket, otherwise use a stream socket */ + SOCK_FLAG_DGRAM = 0x04, +}; + /* Search through an array of enum_map_t entries to resolve a string to a numeric value. The end of the map is indicated by a sentinel entry @@ -49,5 +60,15 @@ const enum_map_t *enum_by_name(const enum_map_t *map, const char *name); */ const char *enum_to_name(const enum_map_t *map, int value); +/* + Create a UNIX stream socket at the given path. + + Returns the socket fd, -1 on failure. The function takes care of + printing error messages on failure. + + The socket has the CLOEXEC flag set. +*/ +int mksock(const char *path, int flags); + #endif /* UTIL_H */ -- cgit v1.2.3