chiark / gitweb /
unit: when destructing units make sure we don't readd the unit to the gc queue after...
[elogind.git] / src / sd-daemon.h
index ab69364c2645d3df703da451eb0124aaac7419ae..0d8de45b72b0133121ed730fa8c77ed12f9a158e 100644 (file)
 #include <inttypes.h>
 
 /* Reference implementation of a few systemd related interfaces for
- * writing daemons. These interfaces are trivial to implement, however
- * to simplify porting we provide this reference
- * implementation. Applications are free to reimplement the algorithms
- * described here. */
+ * writing daemons. These interfaces are trivial to implement. To
+ * simplify porting we provide this reference
+ * implementation. Applications are welcome to reimplement the
+ * algorithms described here, if they do not want to include these two
+ * source files. */
 
 /*
   Log levels for usage on stderr:
 #define SD_LISTEN_FDS_START 3
 
 /* Returns how many file descriptors have been passed, or a negative
- * errno code on failure. Optionally removes the $LISTEN_FDS and
- * $LISTEN_PID file descriptors from the environment
- * (recommended). You'll find the file descriptors passed as fds
- * SD_LISTEN_FDS_START to SD_LISTEN_FDS_START+r-1 if r is the return
- * value of this functioin. Returns a negative errno style error code
- * on failure. */
+ * errno code on failure. Optionally, removes the $LISTEN_FDS and
+ * $LISTEN_PID file descriptors from the environment (recommended, but
+ * problematic in threaded environments). If r is the return value of
+ * this function you'll find the file descriptors passed as fds
+ * SD_LISTEN_FDS_START to SD_LISTEN_FDS_START+r-1. Returns a negative
+ * errno style error code on failure. This function call ensures that
+ * the FD_CLOEXEC flag is set for the passed file descriptors, to make
+ * sure they are not passed on to child processes. If FD_CLOEXEC shall
+ * not be set, the caller needs to unset it after this call for all file
+ * descriptors that are used.*/
 int sd_listen_fds(int unset_environment);
 
 /* Helper call for identifying a passed file descriptor. Returns 1 if
@@ -73,24 +78,26 @@ int sd_listen_fds(int unset_environment);
 int sd_is_fifo(int fd, const char *path);
 
 /* Helper call for identifying a passed file descriptor. Returns 1 if
- * the file descriptor is a socket of the specified type (SOCK_DGRAM,
- * SOCK_STREAM, ...), 0 otherwise. If type is 0 a socket type check
- * will not be done and the call only verifies if the file descriptor
- * refers to a socket. If listening is > 0 it is verified that the
- * socket is in listening mode. (i.e. listen() has been called) If
- * listening is == 0 it is verified that the socket is not in
- * listening mode. If listening is < 0 no listening mode check is
- * done. Returns a negative errno style error code on failure. */
-int sd_is_socket(int fd, int type, int listening);
+ * the file descriptor is a socket of the specified family (AF_INET,
+ * ...) and type (SOCK_DGRAM, SOCK_STREAM, ...), 0 otherwise. If
+ * family is 0 a socket family check will not be done. If type is 0 a
+ * socket type check will not be done and the call only verifies if
+ * the file descriptor refers to a socket. If listening is > 0 it is
+ * verified that the socket is in listening mode. (i.e. listen() has
+ * been called) If listening is == 0 it is verified that the socket is
+ * not in listening mode. If listening is < 0 no listening mode check
+ * is done. Returns a negative errno style error code on failure. */
+int sd_is_socket(int fd, int family, int type, int listening);
 
 /* Helper call for identifying a passed file descriptor. Returns 1 if
- * the file descriptor is an Internet socket (either AF_INET or
- * AF_INET6) of the specified type (SOCK_DGRAM, SOCK_STREAM, ...), 0
- * otherwise. If type is 0 a socket type check will not be done. If
- * port is 0 a socket port check will not be done. The listening flag
- * is used the same way as in sd_is_socket(). Returns a negative errno
- * style error code on failure. */
-int sd_is_socket_inet(int fd, int type, int listening, uint16_t port);
+ * the file descriptor is an Internet socket, of the specified family
+ * (either AF_INET or AF_INET6) and the specified type (SOCK_DGRAM,
+ * SOCK_STREAM, ...), 0 otherwise. If version is 0 a protocol version
+ * check is not done. If type is 0 a socket type check will not be
+ * done. If port is 0 a socket port check will not be done. The
+ * listening flag is used the same way as in sd_is_socket(). Returns a
+ * negative errno style error code on failure. */
+int sd_is_socket_inet(int fd, int family, int type, int listening, uint16_t port);
 
 /* Helper call for identifying a passed file descriptor. Returns 1 if
  * the file descriptor is an AF_UNIX socket of the specified type