aboutsummaryrefslogtreecommitdiff
path: root/lib/include
diff options
context:
space:
mode:
authorDavid Oberhollenzer <david.oberhollenzer@tele2.at>2018-05-27 10:15:03 +0200
committerDavid Oberhollenzer <david.oberhollenzer@tele2.at>2018-06-09 15:32:29 +0200
commited23d075cae1353dcbec06925b2491e09395aafe (patch)
treef1793472ddc02015aebda72df8ceeeb22dfadab8 /lib/include
parentbf63f78b6698f33ed3acbd4aed8822a35688c1ba (diff)
Make mksock() more generic, move to util library
Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
Diffstat (limited to 'lib/include')
-rw-r--r--lib/include/util.h21
1 files changed, 21 insertions, 0 deletions
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 */