Removing is_internal_IP() function. Resolves ticket 4645.
Using proper functions to create tor_addr_t.
Fixes for bug4645 fix.
Log only one message for dangerous log settings.

We log only one message, containing a complete list of what's
wrong.  We log the complete list whenever any of the possible things
that could have gotten wrong gets worse.

Fix for #9870. Bugfix on 10480dff01bece13fab, which we merged in
0.2.5.1-alpha.
Faster circuit_get_by_rend_token_and_purpose()

On busy servers, this function takes up something like 3-7% in
different profiles, and gets invoked every time we need to participate
as the midpoint in a hidden service.

So maybe walking through a linked list of all the circuits here wasn't
a good idea.
Merge remote-tracking branch 'public/bug9841_024_v2' into bug9841_025

Conflicts:
	src/or/circuitlist.c
Tweak sign of rend_token params for consistency
Tests for rend_token maps

This gets coverage of everything except for the cases which should be
impossible.
Fix a use-after-free in test_circuitlist.c

Found by clang-3.4 analyzers.
memarea.c: use flexible array member for mem

This make clang's memory sanitizer happier that we aren't reading
off the end of a char[1].  We hadn't replaced the char[1] with a
char[FLEXIBLE_ARRAY_MEMBER] before because we were doing a union
trick to force alignment.  Now we use __attribute__(aligned) where
available, and we do the union trick elsewhere.

Most of this patch is just replacing accesses to (x)->u.mem with
(x)->U_MEM, where U_MEM is defined as "u.mem" or "mem" depending on
our implementation.
csiphash: don't attempt unaligned access

In digestmap_set/get benchmarks, doing unaligned access on x86
doesn't save more than a percent or so in the fast case.  In the
slow case (where we cross a cache line), it could be pretty
expensive.  It also makes ubsan unhappy.
Fix a ubsan warning in our ctypes replacements

ubsan doesn't like 1<<31, since that's an undefined integer
overflow.  Instead, we should do 1u<<31.
Fix a ubsan warning in addr_mask_get_bits

ubsan doesn't like us to do (1u<<32) when 32 is wider than
unsigned.  Fortunately, we already special-case
addr_mask_get_bits(0), so we can just change the loop bounds.
changes file for bug11232
Free placeholder circid/chan->circuit map entries on exit

In circuitlist_free_all, we free all the circuits, removing them from
the map as we go, but we weren't actually freeing the placeholder
entries that we use to indicate pending DESTROY cells.

Fix for bug 11278; bugfix on the 7912 code that was merged in
0.2.5.1-alpha
Log descriptor-download bootstrapping messages less verbosely

This is a fix for 9963.  I say this is a feature, but if it's a
bugfix, it's a bugfix on 0.2.4.18-rc.

Old behavior:

    Mar 27 11:02:19.000 [notice] Bootstrapped 50%: Loading relay descriptors.
    Mar 27 11:02:20.000 [notice] Bootstrapped 51%: Loading relay descriptors.
    Mar 27 11:02:20.000 [notice] Bootstrapped 52%: Loading relay descriptors.
    ... [Many lines omitted] ...
    Mar 27 11:02:29.000 [notice] Bootstrapped 78%: Loading relay descriptors.
    Mar 27 11:02:33.000 [notice] We now have enough directory information to build circuits.

New behavior:

    Mar 27 11:16:17.000 [notice] Bootstrapped 50%: Loading relay descriptors
    Mar 27 11:16:19.000 [notice] Bootstrapped 55%: Loading relay descriptors
    Mar 27 11:16:21.000 [notice] Bootstrapped 60%: Loading relay descriptors
    Mar 27 11:16:21.000 [notice] Bootstrapped 65%: Loading relay descriptors
    Mar 27 11:16:21.000 [notice] Bootstrapped 70%: Loading relay descriptors
    Mar 27 11:16:21.000 [notice] Bootstrapped 75%: Loading relay descriptors
    Mar 27 11:16:21.000 [notice] We now have enough directory information to build circuits.
Don't warn when setsockopt(SO_REUSEABLE) on accept()ed socket says EINVAL

This should fix bug10081.  I believe this bug pertains to OSX
behavior, not any Tor behavior change.
Don't do a DNS lookup on a bridge line address

Fixes bug 10801; bugfix on 07bf274d in 0.2.0.1-alpha.
Report only the first bootstrap failure from an orconn

Otherwise, when we report "identity mismatch", we then later report
DONE when the connection gets closed.

Fixes bug 10431; bugfix on 0.2.1.1-alpha.
check outputs from get_first_listener_addrport_string

Fix for 9650; bugfix for 0.2.3.16-alpha.