Remove executable bit from control.c, router.c

Fix for 12512.
Fix a bug where streams would linger forever when we had no dirinfo

fixes bug 8387; fix on 0.1.1.11-alpha (code), or on 0.2.4.10-alpha (behavior).
Fixed fgets_eagain unit test.

On a non-blocking pipe fgets sets EAGAIN when it encounters partial lines. No
error is set on full lines or EOF. EOF is reached when the writing end of the
pipe is closed. Partial lines and full lines are both returned by fgets, EOF
results in NULL.

Mention of this behaviour can be found in #1903 and #2045.
add changes file for 12503
Merge remote-tracking branch 'public/bug8387_024' into maint-0.2.5
Add another 8387 diagnostic

When we run into bug 8387 (if we run into it again), report when we
last called circuit_expire_old_circuits_clientside().  This will let
us know -- if my fix for 8387 doesn't work -- whether my diagnosis
was at least correct.

Suggested by Andrea.
diagnostic for 12184: Add a call to channel_dump_statistics
configure.ac: fix build with --enable-bufferevents

When building with bufferevents enabled, configure.ac throws an
error if "$ac_cv_header_event2_bufferevent_ssl_h" is not set to
"yes".  However, nowhere was AC_CHECK_HEADERS(event2/bufferevent_ssl.h)
done.  This commit adds the check.
src/or/connection.c: expose bucket_millis_empty for bufferevents test

Currently tor fails to build its test when enabled with bufferevents
because an #ifndef USE_BUFFEREVENTS hides bucket_millis_empty() and
friends.  This is fine if we don't run tests, but if we do, we need
these functions in src/or/libtor-testing.a when linking src/test/test.

This patch moves the functions outside the #ifndef and exposes them.

See downstream bug:

	https://bugs.gentoo.org/show_bug.cgi?id=510124
changes file for 12474, 12438.
Merge remote-tracking branch 'origin/maint-0.2.5'
Apply GeoIPExcludeUnknown before checking transitions

Otherwise, it always seems as though our Exclude* options have
changed, since we're comparing modified to unmodified values.

Patch from qwerty1. Fixes bug 9801. Bugfix on 0.2.4.10-alpha, where
GeoIPExcludeUnknown was introduced.
When making a tempdir for windows unit tests, avoid an extra backslash

The extra \ is harmless, but mildly unpleasant.

Fixes 12392; bugfix on 0.2.2.25-alpha where we started using
GetTempDir().  Based on a patch by Gisle Vanem.
Add coverage-html makefile target

This uses lcov to generate a nice HTML report of test code coverage,
including branch coverage.

Signed-off-by: Kevin Murray <spam@kdmurray.id.au>
Add stanza on lcov coverage target

Adds a note about using `make coverage-html` to generate coverage
reports.

Signed-off-by: Kevin Murray <spam@kdmurray.id.au>
Tweak coverage-html target

 - Don't try to rm -rf the directory before we start: somebody might
   have set it to ~, which would be quite sad.

 - Always quote the directory name

 - Use 'make reset-gcov' before running tests.

 - Use 'make check', not ./src/test/test
Add an option to overwrite logs

 * Issue #5583
Add a tor_ftruncate to replace ftruncate.

(Windows doesn't have ftruncate, and some ftruncates do not move the
file pointer to the start of the file.)
Clarify TruncateLogFile manpage entry