From: Andre Noll Date: Sun, 13 Aug 2017 00:36:14 +0000 (+0200) Subject: server: Move para_fgets() to user_list.c. X-Git-Tag: v0.6.2~4^2~14 X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=commitdiff_plain;h=6a2dbfdb87b3036085ce664a847fc9eb419f65d4 server: Move para_fgets() to user_list.c. It's only used there, so we can make it static and dedoxify its documentation. --- diff --git a/fd.c b/fd.c index 86a1f105..ae5ef413 100644 --- a/fd.c +++ b/fd.c @@ -419,34 +419,6 @@ void para_fd_set(int fd, fd_set *fds, int *max_fileno) *max_fileno = PARA_MAX(*max_fileno, fd); } -/** - * Paraslash's wrapper for fgets(3). - * - * \param line Pointer to the buffer to store the line. - * \param size The size of the buffer given by \a line. - * \param f The stream to read from. - * - * \return Unlike the standard fgets() function, an integer value - * is returned. On success, this function returns 1. On errors, -E_FGETS - * is returned. A zero return value indicates an end of file condition. - */ -__must_check int para_fgets(char *line, int size, FILE *f) -{ -again: - if (fgets(line, size, f)) - return 1; - if (feof(f)) - return 0; - if (!ferror(f)) - return -E_FGETS; - if (errno != EINTR) { - PARA_ERROR_LOG("%s\n", strerror(errno)); - return -E_FGETS; - } - clearerr(f); - goto again; -} - /** * Paraslash's wrapper for mmap. * diff --git a/fd.h b/fd.h index 25eea8a2..c9e79426 100644 --- a/fd.h +++ b/fd.h @@ -11,7 +11,6 @@ int para_select(int n, fd_set *readfds, fd_set *writefds, __must_check int mark_fd_nonblocking(int fd); __must_check int mark_fd_blocking(int fd); void para_fd_set(int fd, fd_set *fds, int *max_fileno); -__must_check int para_fgets(char *line, int size, FILE *f); int para_mmap(size_t length, int prot, int flags, int fd, void *map); int para_open(const char *path, int flags, mode_t mode); int para_mkdir(const char *path, mode_t mode); diff --git a/user_list.c b/user_list.c index 8c54ab7f..dfd8248c 100644 --- a/user_list.c +++ b/user_list.c @@ -15,6 +15,30 @@ INITIALIZED_LIST_HEAD(user_list); +/* + * Wrapper for fgets(3). + * + * Unlike fgets(3), an integer value is returned. On success, this function + * returns 1. On errors, -E_FGETS is returned. A zero return value indicates an + * end of file condition. + */ +static int xfgets(char *line, int size, FILE *f) +{ +again: + if (fgets(line, size, f)) + return 1; + if (feof(f)) + return 0; + if (!ferror(f)) + return -E_FGETS; + if (errno != EINTR) { + PARA_ERROR_LOG("%s\n", strerror(errno)); + return -E_FGETS; + } + clearerr(f); + goto again; +} + /* * Fill the list of users known to para_server. * @@ -36,7 +60,7 @@ static void populate(char *user_list_file) struct user *u; struct asymmetric_key *pubkey; - ret = para_fgets(line, sizeof(line), file_ptr); + ret = xfgets(line, sizeof(line), file_ptr); if (ret <= 0) break; if (sscanf(line,"%200s %200s %200s %200s", w, n, k, p) < 3)