X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fsd-daemon.h;h=0d8de45b72b0133121ed730fa8c77ed12f9a158e;hb=41192f6e8af0004c5d736df31c25b849e34e7ac6;hp=ab69364c2645d3df703da451eb0124aaac7419ae;hpb=cd250a39da8d5b9c0d220a07e765064638708fe9;p=elogind.git diff --git a/src/sd-daemon.h b/src/sd-daemon.h index ab69364c2..0d8de45b7 100644 --- a/src/sd-daemon.h +++ b/src/sd-daemon.h @@ -30,10 +30,11 @@ #include /* 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: @@ -56,12 +57,16 @@ #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