aboutsummaryrefslogtreecommitdiff
path: root/src/common
diff options
context:
space:
mode:
authorAlexander Færøy <ahf@torproject.org>2017-03-08 23:11:42 +0100
committerAlexander Færøy <ahf@torproject.org>2017-03-09 00:10:18 +0100
commit02fc0a5ecfc917e9261596816e926468db976453 (patch)
tree8d8c32a5d77138d12843bbde26302b6d6b16c603 /src/common
parent02ef06516e64c1559b24123d7c7d164b76110c9a (diff)
downloadtor-02fc0a5ecfc917e9261596816e926468db976453.tar.gz
tor-02fc0a5ecfc917e9261596816e926468db976453.zip
Remove fgets() compatbility function and related tests.
This patch removes the `tor_fgets()` wrapper around `fgets(3)` since it is no longer needed. The function was created due to inconsistency between the returned values of `fgets(3)` on different versions of Unix when using `fgets(3)` on non-blocking file descriptors, but with the recent changes in bug #21654 we switch from unbuffered to direct I/O on non-blocking file descriptors in our utility module. We continue to use `fgets(3)` directly in the geoip and dirserv module since this usage is considered safe. This patch also removes the test-case that was created to detect differences in the implementation of `fgets(3)` as well as the changes file since these changes was not included in any releases yet. See: https://bugs.torproject.org/21654
Diffstat (limited to 'src/common')
-rw-r--r--src/common/compat.c39
-rw-r--r--src/common/compat.h2
2 files changed, 0 insertions, 41 deletions
diff --git a/src/common/compat.c b/src/common/compat.c
index da4283fbaa..0dbede6bed 100644
--- a/src/common/compat.c
+++ b/src/common/compat.c
@@ -3476,45 +3476,6 @@ tor_getpass(const char *prompt, char *output, size_t buflen)
#endif
}
-/** Read at most one less than the number of characters specified by
- * <b>size</b> from the given <b>stream</b> and store it in <b>str</b>.
- *
- * Reading stops when a newline character is found or at EOF or error. If any
- * characters are read and there's no error, a trailing NUL byte is appended to
- * the end of <b>str</b>.
- *
- * Upon successful completion, this function returns a pointer to the string
- * <b>str</b>. If EOF occurs before any characters are read the function will
- * return NULL and the content of <b>str</b> is unchanged. Upon error, the
- * function returns NULL and the caller must check for error using foef(3) and
- * ferror(3).
- */
-char *
-tor_fgets(char *str, int size, FILE *stream)
-{
- char *ret;
-
- /* Reset errno before our call to fgets(3) to avoid a situation where the
- * caller is calling us again because we just returned NULL and errno ==
- * EAGAIN, but when they call us again we will always return NULL because the
- * error flag on the file handler remains set and errno is set to EAGAIN.
- */
- errno = 0;
-
- ret = fgets(str, size, stream);
-
- /* FreeBSD, OpenBSD, Linux (glibc), and Linux (musl) seem to disagree about
- * what to do in the given situation. We check if the stream has been flagged
- * with an error-bit and return NULL in that situation if errno is also set
- * to EAGAIN.
- */
- if (ferror(stream) && errno == EAGAIN) {
- return NULL;
- }
-
- return ret;
-}
-
/** Return the amount of free disk space we have permission to use, in
* bytes. Return -1 if the amount of free space can't be determined. */
int64_t
diff --git a/src/common/compat.h b/src/common/compat.h
index 1f51ece61f..ee1c9454de 100644
--- a/src/common/compat.h
+++ b/src/common/compat.h
@@ -740,8 +740,6 @@ STATIC int tor_ersatz_socketpair(int family, int type, int protocol,
ssize_t tor_getpass(const char *prompt, char *output, size_t buflen);
-char *tor_fgets(char *str, int size, FILE *stream);
-
/* This needs some of the declarations above so we include it here. */
#include "compat_threads.h"