Mike Perry
aa16d59ee7
Clean up some XXX comments.
2012-12-09 23:50:05 -08:00
Mike Perry
4590993ff3
Space fixes.
2012-12-09 23:47:04 -08:00
Mike Perry
b75880d7b3
Fix a rather serious use-count state bug.
...
We need to use the success count or the use count depending on the consensus
parameter.
2012-12-09 20:56:48 -08:00
Mike Perry
2dbb62f1b5
Convert to doubles for all pathbias state.
...
Let's hope this solves the rounding error issue..
2012-12-09 20:53:22 -08:00
Mike Perry
ab1fce5c19
Also shorten circuit_successes to circ_successes.
...
For consistency and great justice.
Ok, mostly consistency.
2012-12-09 20:24:50 -08:00
Mike Perry
a90f165b83
Rename first_hop to circ_attempt.
...
Since we've generalized what we can count from (first or second hop), we
should generalize the variable and constant naming too.
2012-12-09 20:24:22 -08:00
Mike Perry
04866055e8
Change from first hop accounting to 2nd hop accounting
...
This has several advantages, including more resilience to ambient failure.
I still need to rename all the first_hop vars tho.. Saving that for a separate
commit.
2012-12-09 20:02:41 -08:00
Mike Perry
fbbf894d4d
Add intro+rend cannibalize param..
2012-12-09 20:02:08 -08:00
Mike Perry
930fbb2fec
Flag cannibalized circs as used (non-ideal).
...
Also add some comments.
2012-12-09 19:18:04 -08:00
Mike Perry
686fc22259
Allow any valid 'end' cell to mean a circuit was used successfully.
...
Also improve some log messages.
2012-12-08 16:37:22 -08:00
Mike Perry
b599a6ed07
Sadly, we can't safely count client intro circ success
2012-12-08 14:16:29 -08:00
Mike Perry
5f733ccd73
Fix some hidden service edge cases.
2012-12-08 12:07:58 -08:00
Mike Perry
26fa47226c
Refactor path use bias code into own function.
...
Also, improve and log some failure cases.
2012-12-07 17:47:23 -08:00
Mike Perry
c3b71a3fc9
Actually, both nacks and acks indicate a valid path
2012-12-07 15:50:31 -08:00
Mike Perry
dc86d7c35b
Note more potential issues.
2012-12-07 15:28:38 -08:00
Mike Perry
ecaeb505fa
Note a strange case for SOCKS streams.
2012-12-07 15:28:38 -08:00
Mike Perry
7a28862d56
Fix another crash bug.
2012-12-07 15:28:38 -08:00
Mike Perry
721f7e3751
Fix a crash bug and pass down a remote reason code.
...
Unexpected channel closures count as remote circ failures.
2012-12-07 15:28:38 -08:00
Mike Perry
9b40466072
Document that care needs to be taken with any_streams_attached.
2012-12-07 15:28:38 -08:00
Mike Perry
c3028edba6
Remove n_chan codepaths for determinining guard.
...
Cpath is apparently good enough.
2012-12-07 15:28:38 -08:00
Mike Perry
a630726884
Move a pathbias function that depends on entryguard_t.
2012-12-07 15:28:38 -08:00
Mike Perry
7f8cbe389d
Fix a crash due to NULL circ->n_chan.
...
Is this redundant? Can we always rely on circ->cpath->extend_info
being present for origin circuits?
2012-12-07 15:28:38 -08:00
Mike Perry
428fbfc1d5
Prop209: Rend circuits weren't ever marked dirty.
2012-12-07 15:28:38 -08:00
Mike Perry
aa0e6e2c03
Prop 209: Add in hidserv path bias counts for usage.
2012-12-07 15:28:38 -08:00
Mike Perry
412ae099cb
Prop 209: Add path bias counts for timeouts and other mechanisms.
...
Turns out there's more than one way to block a tagged circuit.
This seems to successfully handle all of the normal exit circuits. Hidden
services need additional tweaks, still.
2012-12-07 15:28:38 -08:00
Mike Perry
da5c398d79
Be explicit about units for timeout.
2012-12-07 15:28:37 -08:00
Mike Perry
ef1b830ef8
Fix an assert crash and an incorrectly placed return.
2012-12-07 15:28:37 -08:00
Mike Perry
bb548134cd
Update with code review changes from Nick.
2012-12-07 15:28:37 -08:00
Mike Perry
192996690c
Fix spaces.
2012-12-07 15:28:37 -08:00
Mike Perry
a54873648f
Refactor pathbias functions to use pathbias_should_count.
2012-12-07 15:28:37 -08:00
Mike Perry
ab9c83c949
Update Path Bias log messages to match Proposal 209.
2012-12-07 15:28:37 -08:00
Mike Perry
9bf5582e73
Add log message checks for different rates.
...
May want to squash this forward or back..
2012-12-07 15:28:37 -08:00
Mike Perry
248fbc3619
Update pathbias parameters to match Proposal 209.
...
Needs manpage update and testing still..
2012-12-07 15:28:37 -08:00
Mike Perry
954f263ed5
Add the ability to count circuit timeouts for guards.
...
This is purely for informational reasons for debugging.
2012-12-07 15:28:36 -08:00
Nick Mathewson
c8056dcbbb
Fix some wide lines
2012-12-07 14:14:20 -05:00
Nick Mathewson
3fa9151f26
Merge branch 'win64-7260'
...
Conflicts:
src/or/dns.c
2012-12-07 14:12:17 -05:00
Nick Mathewson
cd4f56a37c
Fix infinite loop in circuit_expire_bulding
...
Fixes bug 7663; bug introduced in 42e3c04a7a
. Not in any
released version of Tor.
2012-12-07 14:08:07 -05:00
Nick Mathewson
025dc19b63
Merge remote-tracking branch 'public/bug6887'
2012-12-07 11:02:27 -05:00
Mike Perry
42e3c04a7a
Bug 3443: Don't count ORconn setup in circuit build time.
...
Also, add a hack Roger suggested where we're more patient if no circuits are
opened yet.
2012-12-07 10:34:09 -05:00
Nick Mathewson
f742b33d85
Drop FallbackNetworkstatusFile; it never worked.
2012-12-06 11:28:49 -05:00
Nick Mathewson
a8d491a8fd
Add an option to weight down authorities when choosing a fallback
2012-12-06 11:28:49 -05:00
Nick Mathewson
06cd62266f
Add a way to configure selection weights for dir_server_t
2012-12-06 11:28:49 -05:00
Nick Mathewson
4e3d07a68a
When choosing among dirserver_ts, consider their weights
2012-12-06 11:28:49 -05:00
Nick Mathewson
90f6071d8d
New FallbackDir option to add extra directories for bootstraping
...
This replaces the old FallbackConsensus notion, and should provide a
way -- assuming we pick reasonable nodes! -- to give clients
suggestions of placs to go to get their first consensus.
2012-12-06 11:28:49 -05:00
Nick Mathewson
46a62e3256
Refactor add_trusted_dir_server
...
Now creating a dir_server_t and adding it are separate functions, and
there are frontend functions for adding a trusted dirserver and a
fallback dirserver.
2012-12-06 11:28:48 -05:00
Nick Mathewson
705ee3b5d4
Rename trusted_dir_server_t to dir_server_t. Automatic renaming.
2012-12-06 11:27:20 -05:00
Nick Mathewson
ded70363a7
Rename DirServer to DirAuthority
2012-12-06 11:23:43 -05:00
Nick Mathewson
5c51b3f1f0
Start refactoring trusted_dir_servers into trusted and fallback lists
...
We use trusted_dir_server_t for two pieces of functionality: a list of
all directory authorities, and a list of initial places to look for
a directory. With this patch we start to separate those two roles.
There is as of now no actual way to be a fallback directory without being
an authority.
2012-12-06 11:23:43 -05:00
Nick Mathewson
404e3dd481
Correct moribund logic about caching v2 networkstatuses
2012-12-06 11:15:01 -05:00
Nick Mathewson
194cc24792
Make output of router_get_trusted_dir_servers const
2012-12-06 11:15:01 -05:00
Nick Mathewson
6921d1fd25
Implement HKDF from RFC5869
...
This is a customizable extract-and-expand HMAC-KDF for deriving keys.
It derives from RFC5869, which derives its rationale from Krawczyk,
H., "Cryptographic Extraction and Key Derivation: The HKDF Scheme",
Proceedings of CRYPTO 2010, 2010, <http://eprint.iacr.org/2010/264 >.
I'm also renaming the existing KDF, now that Tor has two of them.
This is the key derivation scheme specified in ntor.
There are also unit tests.
2012-12-06 01:54:09 -05:00
Nick Mathewson
bd93ff8dd7
Merge remote-tracking branch 'asn/bug7592_take2'
2012-12-04 21:47:45 -05:00
George Kadianakis
c01dfd5d7b
Return connection_exit_connect() if payload creation failed.
...
Fixes bug #7592 ; bugfix on 882b389668
.
The bug is not present in any released versions of Tor.
2012-12-05 04:32:11 +02:00
Roger Dingledine
e899d49e2f
fix some typos
2012-12-03 13:33:43 -05:00
Nick Mathewson
190c1d4981
Merge branch 'bug7013_take2_squashed'
2012-11-27 22:18:16 -05:00
George Kadianakis
6f21d2e496
Introduce tor_addr_port_parse() and use it to parse ServerTransportListenAddr.
2012-11-27 22:18:08 -05:00
George Kadianakis
f88c303869
Add a torrc option to specify the bind address of managed proxies.
2012-11-27 22:18:08 -05:00
Nick Mathewson
267c0e5aa1
Make sure that the error in ADDRMAP events is well-formed
...
"error=Unable to launch resolve request" is not a nice thing to tell
the controller. Bugfix on 0.2.0.19-alpha (c11c48fc
).
2012-11-23 11:36:44 -05:00
Nick Mathewson
06703f84df
Minor documentation fix
2012-11-23 10:51:11 -05:00
Nick Mathewson
864e15cd1c
In comments and logs, say "UTC" not "GMT"
...
Fix for #6113 .
Note that the RFC1123 times we generate still all say 'GMT'. I'm
going to suggest this is not worth changing.
2012-11-23 10:05:16 -05:00
Nick Mathewson
ea893a3c30
Merge branch 'bug7493_redux'
2012-11-18 18:46:57 -05:00
Nick Mathewson
bfe8d829c2
Initialize ipv{4,6}_traffic_ok in entry_connection_new
...
This one is necessary for sending BEGIN cells with sane flags when
self-testing a directory port. All real entry connections were
getting their ipv{4,6}_traffic_ok flags set from their listeners, and
for begindir entry connections we didn't care, but for directory
self-testing, we had a problem.
Fixes at least one more case of 7493; if there are more lingering
cases of 7493, this might fix them too.
Bug not in any released version of Tor.
2012-11-18 17:15:41 -05:00
Roger Dingledine
06d367ea36
when counting available descs, say whether we're counting exits
2012-11-16 11:38:56 -05:00
Nick Mathewson
ecb619d96b
Give useful warning when both IPv4 and IPv6 are disabled on a socksport
2012-11-15 22:58:54 -05:00
Nick Mathewson
28cbe90839
Allow IPv4 traffic on default and old-style-config SocksPorts.
...
Looks like when i was writing the code to set the ipv4_traffic flag on
port_cfg_t, I missed some cases, such as the one where the port was
set from its default value.
Fix for 7493. Bug not in any released Tor.
2012-11-15 22:49:43 -05:00
Nick Mathewson
1e46952f36
Set IPv4/IPv6 flags correctly when being a SOCKS client
2012-11-15 13:00:19 -05:00
Nick Mathewson
a4fce0fee8
Remove some XXXX commens in dns.c
...
Previously, I was freaking out about passing an unspec address to
dns_found_answer() on an error, since I was using the address type to
determine whether the error was an error on an ipv4 address lookup or
on an ipv6 address lookup. But now dns_found_answer() has a separate
orig_query_type argument to tell what kind of query it is, so there's
no need to freak out.
2012-11-15 12:17:36 -05:00
Nick Mathewson
12f997528d
Fix up some comments in connection_edge.c
2012-11-15 12:17:30 -05:00
Nick Mathewson
e3ceac38d9
Add another missing function doc
2012-11-14 23:16:58 -05:00
Nick Mathewson
d643487cc2
Initial support for AAAA requests on DNSPort.
...
This is imperfect, since it sends back whatever we would send to
a socks RESOLVE request, when in reality we should send back whatever
was asked for.
2012-11-14 23:16:58 -05:00
Nick Mathewson
053f2cb7c8
Let tor-resolve generate PTR requests for IPv6 addresses
2012-11-14 23:16:57 -05:00
Nick Mathewson
50af1087c4
Accept reverse resolve requests for IPv6 addresses
2012-11-14 23:16:57 -05:00
Nick Mathewson
0f899518cf
Make DNS resolve requests work for IPv6
...
* If there's an IPv4 and an IPv6 address, return both in the resolved
cell.
* Treat all resolve requests as permitting IPv6, since by the spec they're
allowed to, and by the code that won't break anything.
2012-11-14 23:16:57 -05:00
Nick Mathewson
bb2145b45b
Fix a bug in policy_is_reject_star() that was making IPv4 exits break
...
IPv4-only exits have an implicit "reject [::]/0", which was making
policy_is_reject_star() return 1 for them, making us refuse to do
hostname lookups.
This fix chanes policy_is_reject_star() to ask about which family we meant.
2012-11-14 23:16:57 -05:00
Nick Mathewson
85e8d35fca
Add some missing doxygen for ipv6 exit code
2012-11-14 23:16:57 -05:00
Nick Mathewson
882b389668
Actually send back correctly-formed IPv6 CONNECTED cells
...
We had some old code to send back connected cells for IPv6 addresses,
but it was wrong. Fortunately, it was also unreachable.
2012-11-14 23:16:41 -05:00
Nick Mathewson
6b36142bcc
Remove some unused defines in dns.c
2012-11-14 23:16:40 -05:00
Nick Mathewson
7197c9f14a
Repair DNS NEXIST hijacking workaround
...
The code previously detected wildcarding and replaced wildcarded
answers with DNS_STATUS_FAILED_PERMANENT. But that status variable
was no longer used! Remove the status variable, and instead change
the value of 'result' in evdns_callback.
Thank goodness for compiler warnings. In this case,
unused-but-set-variable.
Thanks to Linus for finding this one.
2012-11-14 23:16:40 -05:00
Nick Mathewson
363cf02455
Implement a PreferIPv6 flag for SocksPorts
2012-11-14 23:16:40 -05:00
Nick Mathewson
c4830bfbe2
Define a wrapper for evdns_base_resolve_ipv6 for systems w/o libevent 2
2012-11-14 23:16:40 -05:00
Nick Mathewson
35ce42118f
Make address_is_invalid_destination recognize ipv6 addrs as valid.
2012-11-14 23:16:40 -05:00
Nick Mathewson
1cc7736575
Actually generate microdescriptors with p6 lines.
2012-11-14 23:16:40 -05:00
Nick Mathewson
54ee7ff148
Remove a since-fixed XXX; improve a doxygen comment
2012-11-14 23:16:40 -05:00
Nick Mathewson
004f3f4e53
Actually advertise IPv6 exit policies.
...
I have a theory that my tests will work better if the code I'm testing
isn't disabled.
2012-11-14 23:16:40 -05:00
Nick Mathewson
2889bd2642
Revise the DNS subsystem to handle IPv6 exits.
...
Now, every cached_resolve_t can remember an IPv4 result *and* an IPv6
result. As a light protection against timing-based distinguishers for
IPv6 users (and against complexity!), every forward request generates
an IPv4 *and* an IPv6 request, assuming that we're an IPv6 exit. Once
we have answers or errors for both, we act accordingly.
This patch additionally makes some useful refactorings in the dns.c
code, though there is quite a bit more of useful refactoring that could
be done.
Additionally, have a new interface for the argument passed to the
evdns_callback function. Previously, it was just the original address
we were resolving. But it turns out that, on error, evdns doesn't
tell you the type of the query, so on a failure we didn't know whether
IPv4 or IPv6 queries were failing.
The new convention is to have the first byte of that argument include
the query type. I've refactored the code a bit to make that simpler.
2012-11-14 23:16:25 -05:00
Nick Mathewson
a58e17bcc3
Change signature of router_compare_to_my_exit_policy so dns can use it
...
Also, fix the function so it actually looks at our ipv6 exit policy.
2012-11-14 23:16:25 -05:00
Nick Mathewson
25cf286fb1
Whitespace cleanup
2012-11-14 23:16:24 -05:00
Nick Mathewson
0487c0d579
Reindent a block in dns.c
2012-11-14 23:16:24 -05:00
Nick Mathewson
807b781a3d
Actually send BEGIN cell flags
...
This uses advertised IPv6 ports as an implicit version check.
2012-11-14 23:16:24 -05:00
Nick Mathewson
93591383a9
When asking for a specific address type, others aren't acceptable
2012-11-14 23:16:24 -05:00
Nick Mathewson
d276894772
I think it is correct to decorate these addresses.
2012-11-14 23:16:24 -05:00
Nick Mathewson
6e27282dab
Better checking of exit policies for connections by hostname
2012-11-14 23:16:24 -05:00
Nick Mathewson
5ee1de65b0
Only send begin cell flags when we have some to send
2012-11-14 23:16:24 -05:00
Nick Mathewson
a62c03fe2c
Never support IPv6 traffic on a SOCKS4 connection.
2012-11-14 23:16:24 -05:00
Nick Mathewson
cac5335195
Get the client side of receiving an IPv6 address to work
...
This makes it so we can handle getting an IPv6 in the 3 different
formats we specified it for in RESOLVED cells,
END_STREAM_REASON_EXITPOLICY cells, and CONNECTED cells.
We don't cache IPv6 addresses yet, since proposal 205 isn't
implemented.
There's a refactored function for parsing connected cells; it has unit
tests.
2012-11-14 23:16:23 -05:00
Nick Mathewson
93dc7dcf41
Reject IPv4 or IPv6 addresses from the user depending on SOCKS settings
2012-11-14 23:16:23 -05:00
Nick Mathewson
111321ed16
Rename ipv{4,6}_only to bind_ipv{4,6}_only
...
This is to avoid confusion with the ipv{4,6}_traffic flags.
2012-11-14 23:16:23 -05:00
Nick Mathewson
4bec25c3cd
Add {No,}IPv{4,6}Traffic options to SOCKSPort
...
These options are for telling the SOCKSPort that it should allow or
not allow connections to IPv4/IPv6 addresses.
These aren't implemented yet; this is just the code to read the
options and get them into the entrey_connection_t.
2012-11-14 23:16:23 -05:00
Nick Mathewson
b7843ca554
Make DNS callback pass IPv6 answers to dns_answer_found
...
Also, count ipv6 timeouts vs others. If we have too many ipv6
requests time out, then we could be degrading performance because of a
broken DNS server that ignores AAAA requests. Other cases in which
we never learn an AAAA address aren't so bad, since they don't slow
A (ipv4) answers down very much.
2012-11-14 23:16:23 -05:00
Nick Mathewson
00633b9446
Make dns wildcarding checks work for ipv6
2012-11-14 23:16:22 -05:00
Nick Mathewson
9016d9e829
Add an IPv6Exit configuration option
...
Don't advertise an IPv6 exit policy, or accept IPv6 exit requests,
if IPv6Exit is not true.
2012-11-14 23:16:22 -05:00
Nick Mathewson
c3faa0ebd5
Simplest version of server-side IPv6 support (no dns)
...
This is a relatively simple set of changes: we mostly need to
remove a few "but not for IPv6" changes. We also needed to tweak
the handling of DNS code to generate RESOLVED cells that could get
an IPv6 answer in return.
2012-11-14 23:16:22 -05:00
Nick Mathewson
c64ee7099f
Record, send, and receive flags in BEGIN cells
2012-11-14 23:16:22 -05:00
Nick Mathewson
b35a0d1132
Add IPv6 support to compare_to_addr_to_node_policy
2012-11-14 23:16:22 -05:00
Nick Mathewson
04ea550141
Authorities put p6 lines into microdescriptors.
2012-11-14 23:16:22 -05:00
Nick Mathewson
c53adac122
Parse IPv6 policy summaries from router descriptors and microdescs
2012-11-14 23:16:22 -05:00
Nick Mathewson
a96c0affcb
Better policy support for IPv6
...
Now, "accept *:80" means "accept all addresses on port 80", and not
just IPv4. For just v4, say "accept *4:80"; for just v6 say "accept
*6:80".
We can parse these policies from torrc just fine, and we should be
successfully keeping them out of descriptors for now.
We also now include appropriate IPv6 addresses in "reject private:*"
2012-11-14 23:16:21 -05:00
Nick Mathewson
2eb7eafc9d
Add a new family-specific syntax for tor_addr_parse_mask_ports
...
By default, "*" means "All IPv4 addresses" with
tor_addr_parse_mask_ports, so I won't break anything. But if the new
EXTENDED_STAR flag is provided, then * means "any address", *4 means
"any IPv4 address" (that is, 0.0.0.0/0), and "*6" means "any IPv6
address" (that is, [::]/0).
This is going to let us have a syntax for specifying exit policies in
torrc that won't drive people mad.
Also, add a bunch of unit tests for tor_addr_parse_mask_ports to test
these new features, and to increase coverage.
2012-11-14 23:16:21 -05:00
Nick Mathewson
462ebb270a
Refactor begin cell parsing into its own function, with tests.
...
Add 'flags' argument to begin cells, per proposal 208.
2012-11-14 23:16:21 -05:00
Nick Mathewson
ca8843df0a
Refactor client_dns_set_{reverse_,}addressmap() to take a circ
...
We'd like these functions to be circuit-relative so that we can
implement a per-circuit DNS cache and per-circuit DNS cache rules for
proposal 205 or its successors. I'm doing this now, as a part of the
IPv6 exits code, since there are about to be a few more instances
of code using this.
2012-11-14 23:16:21 -05:00
Nick Mathewson
7908ab2093
Move address map into its own file.
2012-11-14 23:16:20 -05:00
Andrea Shepard
2cb82c33bc
Merge branch 'bug7267' of ssh://git-rw.torproject.org/user/andrea/tor
2012-11-13 18:54:24 -08:00
Andrea Shepard
3db3daa663
Add comment explaining different channel close functions
2012-11-13 18:50:37 -08:00
Nick Mathewson
02a43e5eb6
Merge remote-tracking branch 'public/bug7059'
2012-11-13 21:50:07 -05:00
Andrea Shepard
7ab3004223
Call channel_mark_for_close() properly in hibernate_go_dormant()
2012-11-13 13:45:00 -08:00
Roger Dingledine
a90affa84b
Merge branch 'maint-0.2.3'
2012-11-12 23:49:37 -05:00
Roger Dingledine
88bb48e785
use a more logical operator
...
Fix a harmless bug when opting against publishing a relay descriptor
because DisableNetwork is set.
Fixes bug 7464; bugfix on 0.2.3.9-alpha.
2012-11-12 23:47:21 -05:00
Nick Mathewson
f473d83dea
Possible fix for bug 7212
...
This is the simplest possible workaround: make it safe to call
circuit_cell_queue_clear() on a non-attached circuit, and make it
safe-but-a-LD_BUG-warning to call update_circuit_on_cmux() on a
non-attached circuit.
LocalWords: unstage src Untracked
2012-11-12 08:28:09 -05:00
Andrea Shepard
0523c8de7d
Merge branch 'check_for_orconn_on_close_squashed' of ssh://git-rw.torproject.org/user/andrea/tor
2012-11-10 03:24:41 -08:00
Andrea Shepard
99e82cab30
Make everything in connection.c that uses connection_or_notify_error() also use connection_mark_and_close_internal() to avoid spurious warnings
2012-11-10 02:35:47 -08:00
Andrea Shepard
8124398835
Check for orconns in connection_mark_for_close and connection_mark_and_flush, and pass the call through channel_close_for_error with a warning to avoid asserts
2012-11-10 02:35:47 -08:00
Nick Mathewson
713736a6a7
Fix a memory leak in handling errors on CERTS cells. bug 7422
2012-11-08 23:01:39 -05:00
Nick Mathewson
e1c7d12b1d
Turn some memset()s introduced in tor 0.2.4 into memwipe()s
2012-11-08 17:00:36 -05:00
Nick Mathewson
81deddb08c
Merge remote-tracking branch 'origin/maint-0.2.3'
...
Conflicts:
src/common/crypto.c
src/or/rendservice.c
2012-11-08 16:48:04 -05:00
Nick Mathewson
49dd5ef3a3
Add and use and unlikely-to-be-eliminated memwipe()
...
Apparently some compilers like to eliminate memset() operations on
data that's about to go out-of-scope. I've gone with the safest
possible replacement, which might be a bit slow. I don't think this
is critical path in any way that will affect performance, but if it
is, we can work on that in 0.2.4.
Fixes bug 7352.
2012-11-08 16:44:50 -05:00
Andrea Shepard
9f3f5372b8
Merge branch 'bug7350' of ssh://git-rw.torproject.org/user/andrea/tor
2012-11-07 11:43:04 -08:00
Andrea Shepard
80eb03ae0a
Don't call channel_send_destroy() when closing a circuit on a closing channel
2012-11-06 17:58:59 -08:00
Andrea Shepard
688cea7248
Check for closing channel in channel_send_destroy()
2012-11-06 17:52:14 -08:00
Nick Mathewson
cd054ceada
Merge branch 'bug7285'
2012-11-06 18:02:03 -05:00
George Kadianakis
a9f786758d
Add warning message when a managed proxy dies during configuration.
2012-11-06 17:53:09 -05:00
Nick Mathewson
11c467f643
Fix a stupid logic-error in warnings about low ports.
...
Instead of warning about low ports that are advertised, we should have
been warning about low ports that we're listening on. Bug 7285, fix
on 0.2.3.9-alpha.
2012-11-06 17:15:39 -05:00
Nick Mathewson
0e8be13b9f
Allow an optional $ in GETINFO ns/id/<identity>
...
That's not where I'd want to put a $, but apparently the other
foo/id/<identity> things allow it, as does an arguably valid
interpretation of control-spec.txt. So let's be consistent.
Fix for a piece of bug 7059.
2012-11-04 22:12:11 -05:00
Nick Mathewson
39a0a2c3ae
Merge remote-tracking branch 'asn/bug7292'
2012-11-04 21:54:19 -05:00
Nick Mathewson
2b781613b0
Whitespace fixes
2012-11-04 21:52:28 -05:00
Nick Mathewson
98204729aa
Clean up nonsensical calling convention for config_load_geoip_file_
...
(How many "load a file" functions do you typically see where the
function frees the filename argument?)
2012-11-04 21:51:02 -05:00
Nick Mathewson
626a8b60d7
Merge remote-tracking branch 'linus/bug5053-bug5055'
...
Conflicts:
src/or/geoip.c
2012-11-04 21:44:31 -05:00
George Kadianakis
37f8a2263e
Use LOG_WARN instead of LOG_PROTOCOL_WARN when parsing transport lines.
2012-11-02 23:48:53 +02:00
Nick Mathewson
1bfda600c3
Add a TOR_SOCKET_T_FORMAT construction for logging sockets.
...
We need this since win64 has a 64-bit SOCKET type.
Based on a patch from yayooo for 7260, forward-ported to 0.2.4.
2012-11-02 14:22:21 -04:00
Nick Mathewson
05194cce62
Avoid c99 designated initializers in circuitmux_ewma.c
...
We still want to build on compilers w/o c99 support, such as
(notoriously, shamefully) MSVC.
So I'm commenting out the designated initializers in
circuitmux_ewma.c. The alternative would have been to use some kind
of macros to use designated initializers only when they're
supported, but that's error-prone, and can lead to code having
different meanings under different compilers.
Bug 7286; fix on 0.2.4.4-alpha; spotted by Gisle Vanem.
2012-11-02 13:14:39 -04:00
Linus Nordberg
ffddd4de2a
Change some comments to reflect the multitude of GeoIP databases.
2012-10-31 16:38:07 +01:00
Nick Mathewson
9327a9f607
Fix whitespace
2012-10-31 11:27:13 -04:00
Linus Nordberg
e7e68b80a7
Don't memcmp struct in6_addr but rather its s6_addr member.
2012-10-31 15:52:56 +01:00
Linus Nordberg
6a241ff3ff
Duplicate less code.
2012-10-31 13:58:55 +01:00
Andrea Shepard
be37125030
Merge branch 'bsd_queue' of ssh://git-rw.torproject.org/nickm/tor
2012-10-30 14:39:14 -07:00
Nick Mathewson
c442d85439
Fix a remotely triggerable assertion failure (CVE-2012-2250)
...
If we completed the handshake for the v2 link protocol but wound up
negotiating the wong protocol version, we'd become so confused about
what part of the handshake we were in that we'd promptly die with an
assertion.
This is a fix for CVE-2012-2250; it's a bugfix on 0.2.3.6-alpha.
All servers running that version or later should really upgrade.
Bug and fix from "some guy from France." I tweaked his code slightly
to make it log the IP of the offending node, and to forward-port it to
0.2.4.
2012-10-23 23:09:21 -04:00
Nick Mathewson
758428dd32
Fix a remotely triggerable assertion failure (CVE-2012-2250)
...
If we completed the handshake for the v2 link protocol but wound up
negotiating the wong protocol version, we'd become so confused about
what part of the handshake we were in that we'd promptly die with an
assertion.
This is a fix for CVE-2012-2250; it's a bugfix on 0.2.3.6-alpha.
All servers running that version or later should really upgrade.
Bug and fix from "some guy from France." I tweaked his code slightly
to make it log the IP of the offending node.
2012-10-23 22:58:38 -04:00
Roger Dingledine
4c06a804d9
Merge branch 'maint-0.2.3'
2012-10-23 17:26:07 -04:00
Roger Dingledine
2ecee3fce2
Let 0.2.3 clients exit to internal addresses if they want
...
Clients now consider the ClientRejectInternalAddresses config option
when using a microdescriptor consensus stanza to decide whether
an exit relay would allow exiting to an internal address. Fixes
bug 7190; bugfix on 0.2.3.1-alpha.
2012-10-23 17:18:01 -04:00
Roger Dingledine
e17fd57782
fix typo
2012-10-23 17:15:28 -04:00
Nick Mathewson
98c24670e7
Merge remote-tracking branch 'origin/maint-0.2.3'
2012-10-23 16:28:34 -04:00
Nick Mathewson
85659d3964
Fix parse_short_policy (bug 7192.)
...
Our implementation of parse_short_policy was screwed up: it would
ignore the last character of every short policy. Obviously, that's
broken.
This patch fixes the busted behavior, and adds a bunch of unit tests
to make sure the rest of that function is okay.
Fixes bug 7192; fix on 0.2.3.1-alpha.
2012-10-23 13:49:48 -04:00
Roger Dingledine
4c8b58f900
add a unit test to expose bug 7192
2012-10-22 17:09:43 -04:00
Nick Mathewson
848333c6d6
Fix more madness from the split_circuitbuild merge
2012-10-22 14:36:30 -04:00
Nick Mathewson
fa6a65756f
Kill extraneous x from 907db008ab
...
Looks like clang doesn't complain about this kind of thing.
Spotted by Andrea. Bug not in any released version.
2012-10-22 14:29:15 -04:00
Nick Mathewson
86258df65d
Merge branch 'split_circuitbuild'
...
Conflicts:
src/or/circuitbuild.c
There was a huge-looking conflict in circuitbuild.c, but the only
change that had been made to circuitbuild.c since I forked off the
split_circuitbuild branch was 17442560c4
. So I took the
split_circuitbuild version of the conflicting part, and manually
re-applied the change from 17442560c44e8093f9a..
2012-10-22 11:35:32 -04:00
Linus Nordberg
8c9b427425
Name variables more consistently.
2012-10-22 12:36:34 +02:00
Linus Nordberg
9d71d97e9d
Document two functions.
2012-10-22 12:24:29 +02:00
Linus Nordberg
172aac62ed
Rename C reserved identifiers missed before.
2012-10-20 20:56:59 +02:00
Linus Nordberg
cb51807236
Add "IPVersions" to control command "status/clients-seen".
2012-10-20 20:56:59 +02:00
Linus Nordberg
af175fa7e4
Duplicate less code.
2012-10-20 20:56:59 +02:00
Linus Nordberg
817ff962f8
Separate IPv4 and IPv6 geoip file loading.
...
Also add IPv6 geoip file digest to extra info.
Also also, add support for IPv6 addresses in control command
"ip-to-country".
2012-10-20 20:56:59 +02:00
Nick Mathewson
e8f547c181
Merge branch 'block_renegotiate_024'
2012-10-19 14:32:42 -04:00
Nick Mathewson
1cc06bd35e
Merge branch 'block_renegotiate_023' into maint-0.2.3
2012-10-19 14:30:31 -04:00
Nick Mathewson
0dac0d8ad6
Merge remote-tracking branch 'origin/maint-0.2.3'
2012-10-19 03:06:15 -04:00
Robert Ransom
d3bfdd6108
Don't serve or accept v2 HS descs over a DirPort
...
(changes file tweaked by nickm)
2012-10-19 02:56:25 -04:00
Andrea Shepard
981f25a73a
Factor out common parts of channel_tls_connect() and channel_tls_handle_incoming(); fixes get_remote_addr problem with incoming connections for bug 7112
2012-10-18 21:53:50 -04:00
Nick Mathewson
3d8b73db55
Discard extraneous renegotiation attempts in the v3 link protocol
...
Failure to do so left us open to a remotely triggerable assertion
failure. Fixes CVE-2012-2249; bugfix on 0.2.3.6-alpha. Reported by
"some guy from France".
This patch is a forward-port to 0.2.4, to work with the new channel
logic.
2012-10-17 19:19:58 -04:00
Nick Mathewson
f357ef9dcc
Discard extraneous renegotiation attempts in the v3 link protocol
...
Failure to do so left us open to a remotely triggerable assertion
failure. Fixes CVE-2012-2249; bugfix on 0.2.3.6-alpha. Reported by
"some guy from France".
2012-10-17 19:18:16 -04:00
Nick Mathewson
850c990144
Fix a bug in channel_dump_statistics
...
We were calling channel_get_actual_remote_descr() before we used the
output of a previous channel_get_canonical_remote_descr(), thus
invalidating its output.
2012-10-17 11:29:59 -04:00
Nick Mathewson
cb9d123764
Document lifespan of return values of the _remote_descr() funcs
2012-10-17 11:29:37 -04:00
Nick Mathewson
26946c659b
Restore the 'address' value of tunneled connections
...
When we merged the channel code, we made the 'address' field of linked
directory connections created with begindir (and their associated edge
connections) contain an address:port string, when they should only
have contained the address part.
This patch also tweaks the interface to the get_descr method of
channels so that it takes a set of flags rather than a single flag.
2012-10-17 11:23:26 -04:00
Nick Mathewson
898bd1ae8f
Fix for bug 7112 (spewing complaints from tor_addr_is_internal)
...
In 4768c0efe3
(not in any released
version of Tor), we removed a little block of code that set the addr
field of an exit connection used in making a tunneled directory
request. Turns out that wasn't right.
2012-10-17 11:15:01 -04:00
Nick Mathewson
f633184af1
Document return value of channel_get_addr_if_possible
2012-10-17 11:12:59 -04:00
Linus Nordberg
e2313d8622
White space.
2012-10-17 14:01:02 +02:00
Andrea Shepard
35f573136d
Use LD_PROTOCOL rather than LD_BUG to warn about bogus reason codes that originated remotely in circuit_end_reason_to_control_string()
2012-10-17 03:24:28 -07:00
Andrea Shepard
17442560c4
Fix mal-merge, don't | END_CIRC_REASON_CHANNEL_CLOSED into reason codes in circuit_truncated()
2012-10-17 03:23:35 -07:00
Linus Nordberg
74c6dafed6
Two changes lost in rebase resurrected.
2012-10-17 12:13:49 +02:00
Linus Nordberg
19ab7b1639
Rename reserved C identifiers.
2012-10-17 10:54:53 +02:00
Karsten Loesing
1f849f9181
Minor tweaks to nils' v4 vs v6 bridge usage code.
2012-10-17 10:54:53 +02:00
Karsten Loesing
c03e3d66a9
Minor tweaks and comments to nils' geoip v6 code.
2012-10-17 10:54:52 +02:00
nils
31e224173b
Include statistics as to how many connections are IPv4 versus IPv6
2012-10-17 10:54:52 +02:00
nils
abb886014e
Add GeoIP database for IPv6 addresses
2012-10-17 10:54:52 +02:00
nils
167363403b
Rename address family specific IPv4 geoip functions in preparation for IPv6 support
2012-10-17 10:54:17 +02:00
Andrea Shepard
94a0309909
Merge branch 'bug7087_2' of ssh://git-rw.torproject.org/user/andrea/tor
2012-10-15 13:04:55 -07:00
Andrea Shepard
ac227cf587
Close and free channel_tls_listener correctly in channel_tls_free_all()
2012-10-15 12:22:20 -07:00
Nick Mathewson
907db008ab
Move the circuit build timeout code into its own file.
2012-10-15 14:50:55 -04:00
Nick Mathewson
9e9edf71f7
Split code for entry guards and bridges into a new module.
2012-10-15 14:28:23 -04:00
Nick Mathewson
f38fb29502
whitesapce fix
2012-10-15 11:22:53 -04:00
Nick Mathewson
9f83142591
Merge remote-tracking branch 'public/bug1031'
2012-10-15 11:20:48 -04:00
Andrea Shepard
99057014ba
Add debug logging to channel_listener_free()/channel_listener_force_free()
2012-10-15 07:56:35 -07:00
Nick Mathewson
469b847c70
Fix a long line
2012-10-15 10:55:52 -04:00
Markus Teich
5a959163d3
fixed differing returntype in definition and declaration of dirserv_add_extrainfo
2012-10-15 10:53:11 -04:00
Andrea Shepard
4da2864308
Merge branch 'bug7087' of git://git.torproject.org/user/andrea/tor
2012-10-15 07:22:33 -07:00
Andrea Shepard
3894ca1508
Add debug logging for channel_free() and channel_force_free()
2012-10-15 06:46:23 -07:00
Andrea Shepard
9ef286ec8f
Correctly clear cmux policies and free cmux in channel_free() and channel_force_free()
2012-10-15 06:32:44 -07:00
Nick Mathewson
0d946e1773
Merge remote-tracking branch 'arma/bug7029'
2012-10-14 23:06:43 -04:00
Roger Dingledine
38b7947386
fix trivial typo
2012-10-13 18:34:24 -04:00
Nick Mathewson
2b10e99eb0
Try refactoring channel list to use HT_ and LIST_ stuff directly
2012-10-12 20:16:43 -04:00
Nick Mathewson
7c9954a02a
Use SIMPLEQ, not smartlist_t, for channel cell queues.
...
This lets us use fewer memory allocations, and avoid O(n^2) iterations
2012-10-12 17:58:01 -04:00
Nick Mathewson
56c0baa523
Rename all reserved C identifiers we defined
...
For everything we declare that starts with _, make it end with _ instead.
This is a machine-generated patch. To make it, start by getting the
list of reserved identifiers using:
git ls-tree -r --name-only HEAD | grep '\.[ch]$' | \
xargs ctags --c-kinds=defglmpstuvx -o - | grep '^_' | \
cut -f 1 | sort| uniq
You might need gnu ctags.
Then pipe the output through this script:
==============================
use strict;
BEGIN { print "#!/usr/bin/perl -w -i -p\n\n"; }
chomp;
next if (
/^__attribute__/ or
/^__func__/ or
/^_FILE_OFFSET_BITS/ or
/^_FORTIFY_SOURCE/ or
/^_GNU_SOURCE/ or
/^_WIN32/ or
/^_DARWIN_UNLIMITED/ or
/^_FILE_OFFSET_BITS/ or
/^_LARGEFILE64_SOURCE/ or
/^_LFS64_LARGEFILE/ or
/^__cdecl/ or
/^__attribute__/ or
/^__func__/ or
/^_WIN32_WINNT/);
my $ident = $_;
my $better = $ident;
$better =~ s/^_//;
$better = "${better}_";
print "s/(?<![A-Za-z0-9_])$ident(?![A-Za-z0-9_])/$better/g;\n";
==============================
Then run the resulting script on all the files you want to change.
(That is, all the C except that in src/ext.) The resulting script was:
==============================
s/(?<![A-Za-z0-9_])_address(?![A-Za-z0-9_])/address_/g;
s/(?<![A-Za-z0-9_])_aes_fill_buf(?![A-Za-z0-9_])/aes_fill_buf_/g;
s/(?<![A-Za-z0-9_])_AllowInvalid(?![A-Za-z0-9_])/AllowInvalid_/g;
s/(?<![A-Za-z0-9_])_AP_CONN_STATE_MAX(?![A-Za-z0-9_])/AP_CONN_STATE_MAX_/g;
s/(?<![A-Za-z0-9_])_AP_CONN_STATE_MIN(?![A-Za-z0-9_])/AP_CONN_STATE_MIN_/g;
s/(?<![A-Za-z0-9_])_assert_cache_ok(?![A-Za-z0-9_])/assert_cache_ok_/g;
s/(?<![A-Za-z0-9_])_A_UNKNOWN(?![A-Za-z0-9_])/A_UNKNOWN_/g;
s/(?<![A-Za-z0-9_])_base(?![A-Za-z0-9_])/base_/g;
s/(?<![A-Za-z0-9_])_BridgePassword_AuthDigest(?![A-Za-z0-9_])/BridgePassword_AuthDigest_/g;
s/(?<![A-Za-z0-9_])_buffer_stats_compare_entries(?![A-Za-z0-9_])/buffer_stats_compare_entries_/g;
s/(?<![A-Za-z0-9_])_chan_circid_entries_eq(?![A-Za-z0-9_])/chan_circid_entries_eq_/g;
s/(?<![A-Za-z0-9_])_chan_circid_entry_hash(?![A-Za-z0-9_])/chan_circid_entry_hash_/g;
s/(?<![A-Za-z0-9_])_check_no_tls_errors(?![A-Za-z0-9_])/check_no_tls_errors_/g;
s/(?<![A-Za-z0-9_])_c_hist_compare(?![A-Za-z0-9_])/c_hist_compare_/g;
s/(?<![A-Za-z0-9_])_circ(?![A-Za-z0-9_])/circ_/g;
s/(?<![A-Za-z0-9_])_circuit_get_global_list(?![A-Za-z0-9_])/circuit_get_global_list_/g;
s/(?<![A-Za-z0-9_])_circuit_mark_for_close(?![A-Za-z0-9_])/circuit_mark_for_close_/g;
s/(?<![A-Za-z0-9_])_CIRCUIT_PURPOSE_C_MAX(?![A-Za-z0-9_])/CIRCUIT_PURPOSE_C_MAX_/g;
s/(?<![A-Za-z0-9_])_CIRCUIT_PURPOSE_MAX(?![A-Za-z0-9_])/CIRCUIT_PURPOSE_MAX_/g;
s/(?<![A-Za-z0-9_])_CIRCUIT_PURPOSE_MIN(?![A-Za-z0-9_])/CIRCUIT_PURPOSE_MIN_/g;
s/(?<![A-Za-z0-9_])_CIRCUIT_PURPOSE_OR_MAX(?![A-Za-z0-9_])/CIRCUIT_PURPOSE_OR_MAX_/g;
s/(?<![A-Za-z0-9_])_CIRCUIT_PURPOSE_OR_MIN(?![A-Za-z0-9_])/CIRCUIT_PURPOSE_OR_MIN_/g;
s/(?<![A-Za-z0-9_])_cmp_int_strings(?![A-Za-z0-9_])/cmp_int_strings_/g;
s/(?<![A-Za-z0-9_])_compare_cached_resolves_by_expiry(?![A-Za-z0-9_])/compare_cached_resolves_by_expiry_/g;
s/(?<![A-Za-z0-9_])_compare_digests(?![A-Za-z0-9_])/compare_digests_/g;
s/(?<![A-Za-z0-9_])_compare_digests256(?![A-Za-z0-9_])/compare_digests256_/g;
s/(?<![A-Za-z0-9_])_compare_dir_src_ents_by_authority_id(?![A-Za-z0-9_])/compare_dir_src_ents_by_authority_id_/g;
s/(?<![A-Za-z0-9_])_compare_duration_idx(?![A-Za-z0-9_])/compare_duration_idx_/g;
s/(?<![A-Za-z0-9_])_compare_int(?![A-Za-z0-9_])/compare_int_/g;
s/(?<![A-Za-z0-9_])_compare_networkstatus_v2_published_on(?![A-Za-z0-9_])/compare_networkstatus_v2_published_on_/g;
s/(?<![A-Za-z0-9_])_compare_old_routers_by_identity(?![A-Za-z0-9_])/compare_old_routers_by_identity_/g;
s/(?<![A-Za-z0-9_])_compare_orports(?![A-Za-z0-9_])/compare_orports_/g;
s/(?<![A-Za-z0-9_])_compare_pairs(?![A-Za-z0-9_])/compare_pairs_/g;
s/(?<![A-Za-z0-9_])_compare_routerinfo_by_id_digest(?![A-Za-z0-9_])/compare_routerinfo_by_id_digest_/g;
s/(?<![A-Za-z0-9_])_compare_routerinfo_by_ip_and_bw(?![A-Za-z0-9_])/compare_routerinfo_by_ip_and_bw_/g;
s/(?<![A-Za-z0-9_])_compare_signed_descriptors_by_age(?![A-Za-z0-9_])/compare_signed_descriptors_by_age_/g;
s/(?<![A-Za-z0-9_])_compare_string_ptrs(?![A-Za-z0-9_])/compare_string_ptrs_/g;
s/(?<![A-Za-z0-9_])_compare_strings_for_pqueue(?![A-Za-z0-9_])/compare_strings_for_pqueue_/g;
s/(?<![A-Za-z0-9_])_compare_strs(?![A-Za-z0-9_])/compare_strs_/g;
s/(?<![A-Za-z0-9_])_compare_tor_version_str_ptr(?![A-Za-z0-9_])/compare_tor_version_str_ptr_/g;
s/(?<![A-Za-z0-9_])_compare_vote_rs(?![A-Za-z0-9_])/compare_vote_rs_/g;
s/(?<![A-Za-z0-9_])_compare_votes_by_authority_id(?![A-Za-z0-9_])/compare_votes_by_authority_id_/g;
s/(?<![A-Za-z0-9_])_compare_without_first_ch(?![A-Za-z0-9_])/compare_without_first_ch_/g;
s/(?<![A-Za-z0-9_])_connection_free(?![A-Za-z0-9_])/connection_free_/g;
s/(?<![A-Za-z0-9_])_connection_mark_and_flush(?![A-Za-z0-9_])/connection_mark_and_flush_/g;
s/(?<![A-Za-z0-9_])_connection_mark_for_close(?![A-Za-z0-9_])/connection_mark_for_close_/g;
s/(?<![A-Za-z0-9_])_connection_mark_unattached_ap(?![A-Za-z0-9_])/connection_mark_unattached_ap_/g;
s/(?<![A-Za-z0-9_])_connection_write_to_buf_impl(?![A-Za-z0-9_])/connection_write_to_buf_impl_/g;
s/(?<![A-Za-z0-9_])_ConnLimit(?![A-Za-z0-9_])/ConnLimit_/g;
s/(?<![A-Za-z0-9_])_CONN_TYPE_MAX(?![A-Za-z0-9_])/CONN_TYPE_MAX_/g;
s/(?<![A-Za-z0-9_])_CONN_TYPE_MIN(?![A-Za-z0-9_])/CONN_TYPE_MIN_/g;
s/(?<![A-Za-z0-9_])_CONTROL_CONN_STATE_MAX(?![A-Za-z0-9_])/CONTROL_CONN_STATE_MAX_/g;
s/(?<![A-Za-z0-9_])_CONTROL_CONN_STATE_MIN(?![A-Za-z0-9_])/CONTROL_CONN_STATE_MIN_/g;
s/(?<![A-Za-z0-9_])_CPUWORKER_STATE_MAX(?![A-Za-z0-9_])/CPUWORKER_STATE_MAX_/g;
s/(?<![A-Za-z0-9_])_CPUWORKER_STATE_MIN(?![A-Za-z0-9_])/CPUWORKER_STATE_MIN_/g;
s/(?<![A-Za-z0-9_])_crypto_dh_get_dh(?![A-Za-z0-9_])/crypto_dh_get_dh_/g;
s/(?<![A-Za-z0-9_])_crypto_global_initialized(?![A-Za-z0-9_])/crypto_global_initialized_/g;
s/(?<![A-Za-z0-9_])_crypto_new_pk_from_rsa(?![A-Za-z0-9_])/crypto_new_pk_from_rsa_/g;
s/(?<![A-Za-z0-9_])_crypto_pk_get_evp_pkey(?![A-Za-z0-9_])/crypto_pk_get_evp_pkey_/g;
s/(?<![A-Za-z0-9_])_crypto_pk_get_rsa(?![A-Za-z0-9_])/crypto_pk_get_rsa_/g;
s/(?<![A-Za-z0-9_])_DIR_CONN_STATE_MAX(?![A-Za-z0-9_])/DIR_CONN_STATE_MAX_/g;
s/(?<![A-Za-z0-9_])_DIR_CONN_STATE_MIN(?![A-Za-z0-9_])/DIR_CONN_STATE_MIN_/g;
s/(?<![A-Za-z0-9_])_DIR_PURPOSE_MAX(?![A-Za-z0-9_])/DIR_PURPOSE_MAX_/g;
s/(?<![A-Za-z0-9_])_DIR_PURPOSE_MIN(?![A-Za-z0-9_])/DIR_PURPOSE_MIN_/g;
s/(?<![A-Za-z0-9_])_dirreq_map_get(?![A-Za-z0-9_])/dirreq_map_get_/g;
s/(?<![A-Za-z0-9_])_dirreq_map_put(?![A-Za-z0-9_])/dirreq_map_put_/g;
s/(?<![A-Za-z0-9_])_dns_randfn(?![A-Za-z0-9_])/dns_randfn_/g;
s/(?<![A-Za-z0-9_])_dummy(?![A-Za-z0-9_])/dummy_/g;
s/(?<![A-Za-z0-9_])_edge(?![A-Za-z0-9_])/edge_/g;
s/(?<![A-Za-z0-9_])_END_CIRC_REASON_MAX(?![A-Za-z0-9_])/END_CIRC_REASON_MAX_/g;
s/(?<![A-Za-z0-9_])_END_CIRC_REASON_MIN(?![A-Za-z0-9_])/END_CIRC_REASON_MIN_/g;
s/(?<![A-Za-z0-9_])_EOF(?![A-Za-z0-9_])/EOF_/g;
s/(?<![A-Za-z0-9_])_ERR(?![A-Za-z0-9_])/ERR_/g;
s/(?<![A-Za-z0-9_])_escaped_val(?![A-Za-z0-9_])/escaped_val_/g;
s/(?<![A-Za-z0-9_])_evdns_log(?![A-Za-z0-9_])/evdns_log_/g;
s/(?<![A-Za-z0-9_])_evdns_nameserver_add_impl(?![A-Za-z0-9_])/evdns_nameserver_add_impl_/g;
s/(?<![A-Za-z0-9_])_EVENT_MAX(?![A-Za-z0-9_])/EVENT_MAX_/g;
s/(?<![A-Za-z0-9_])_EVENT_MIN(?![A-Za-z0-9_])/EVENT_MIN_/g;
s/(?<![A-Za-z0-9_])_ExcludeExitNodesUnion(?![A-Za-z0-9_])/ExcludeExitNodesUnion_/g;
s/(?<![A-Za-z0-9_])_EXIT_CONN_STATE_MAX(?![A-Za-z0-9_])/EXIT_CONN_STATE_MAX_/g;
s/(?<![A-Za-z0-9_])_EXIT_CONN_STATE_MIN(?![A-Za-z0-9_])/EXIT_CONN_STATE_MIN_/g;
s/(?<![A-Za-z0-9_])_EXIT_PURPOSE_MAX(?![A-Za-z0-9_])/EXIT_PURPOSE_MAX_/g;
s/(?<![A-Za-z0-9_])_EXIT_PURPOSE_MIN(?![A-Za-z0-9_])/EXIT_PURPOSE_MIN_/g;
s/(?<![A-Za-z0-9_])_extrainfo_free(?![A-Za-z0-9_])/extrainfo_free_/g;
s/(?<![A-Za-z0-9_])_find_by_keyword(?![A-Za-z0-9_])/find_by_keyword_/g;
s/(?<![A-Za-z0-9_])_free_cached_dir(?![A-Za-z0-9_])/free_cached_dir_/g;
s/(?<![A-Za-z0-9_])_free_cached_resolve(?![A-Za-z0-9_])/free_cached_resolve_/g;
s/(?<![A-Za-z0-9_])_free_duplicate_routerstatus_entry(?![A-Za-z0-9_])/free_duplicate_routerstatus_entry_/g;
s/(?<![A-Za-z0-9_])_free_link_history(?![A-Za-z0-9_])/free_link_history_/g;
s/(?<![A-Za-z0-9_])_geoip_compare_entries(?![A-Za-z0-9_])/geoip_compare_entries_/g;
s/(?<![A-Za-z0-9_])_geoip_compare_key_to_entry(?![A-Za-z0-9_])/geoip_compare_key_to_entry_/g;
s/(?<![A-Za-z0-9_])_hex_decode_digit(?![A-Za-z0-9_])/hex_decode_digit_/g;
s/(?<![A-Za-z0-9_])_idxplus1(?![A-Za-z0-9_])/idxplus1_/g;
s/(?<![A-Za-z0-9_])__libc_enable_secure(?![A-Za-z0-9_])/_libc_enable_secure_/g;
s/(?<![A-Za-z0-9_])_log_debug(?![A-Za-z0-9_])/log_debug_/g;
s/(?<![A-Za-z0-9_])_log_err(?![A-Za-z0-9_])/log_err_/g;
s/(?<![A-Za-z0-9_])_log_fn(?![A-Za-z0-9_])/log_fn_/g;
s/(?<![A-Za-z0-9_])_log_fn_function_name(?![A-Za-z0-9_])/log_fn_function_name_/g;
s/(?<![A-Za-z0-9_])_log_global_min_severity(?![A-Za-z0-9_])/log_global_min_severity_/g;
s/(?<![A-Za-z0-9_])_log_info(?![A-Za-z0-9_])/log_info_/g;
s/(?<![A-Za-z0-9_])_log_notice(?![A-Za-z0-9_])/log_notice_/g;
s/(?<![A-Za-z0-9_])_log_prefix(?![A-Za-z0-9_])/log_prefix_/g;
s/(?<![A-Za-z0-9_])_log_warn(?![A-Za-z0-9_])/log_warn_/g;
s/(?<![A-Za-z0-9_])_magic(?![A-Za-z0-9_])/magic_/g;
s/(?<![A-Za-z0-9_])_MALLOC_LOCK(?![A-Za-z0-9_])/MALLOC_LOCK_/g;
s/(?<![A-Za-z0-9_])_MALLOC_LOCK_INIT(?![A-Za-z0-9_])/MALLOC_LOCK_INIT_/g;
s/(?<![A-Za-z0-9_])_MALLOC_UNLOCK(?![A-Za-z0-9_])/MALLOC_UNLOCK_/g;
s/(?<![A-Za-z0-9_])_microdesc_eq(?![A-Za-z0-9_])/microdesc_eq_/g;
s/(?<![A-Za-z0-9_])_microdesc_hash(?![A-Za-z0-9_])/microdesc_hash_/g;
s/(?<![A-Za-z0-9_])_MIN_TOR_TLS_ERROR_VAL(?![A-Za-z0-9_])/MIN_TOR_TLS_ERROR_VAL_/g;
s/(?<![A-Za-z0-9_])_mm_free(?![A-Za-z0-9_])/mm_free_/g;
s/(?<![A-Za-z0-9_])_NIL(?![A-Za-z0-9_])/NIL_/g;
s/(?<![A-Za-z0-9_])_n_openssl_mutexes(?![A-Za-z0-9_])/n_openssl_mutexes_/g;
s/(?<![A-Za-z0-9_])_openssl_dynlock_create_cb(?![A-Za-z0-9_])/openssl_dynlock_create_cb_/g;
s/(?<![A-Za-z0-9_])_openssl_dynlock_destroy_cb(?![A-Za-z0-9_])/openssl_dynlock_destroy_cb_/g;
s/(?<![A-Za-z0-9_])_openssl_dynlock_lock_cb(?![A-Za-z0-9_])/openssl_dynlock_lock_cb_/g;
s/(?<![A-Za-z0-9_])_openssl_locking_cb(?![A-Za-z0-9_])/openssl_locking_cb_/g;
s/(?<![A-Za-z0-9_])_openssl_mutexes(?![A-Za-z0-9_])/openssl_mutexes_/g;
s/(?<![A-Za-z0-9_])_option_abbrevs(?![A-Za-z0-9_])/option_abbrevs_/g;
s/(?<![A-Za-z0-9_])_option_vars(?![A-Za-z0-9_])/option_vars_/g;
s/(?<![A-Za-z0-9_])_OR_CONN_STATE_MAX(?![A-Za-z0-9_])/OR_CONN_STATE_MAX_/g;
s/(?<![A-Za-z0-9_])_OR_CONN_STATE_MIN(?![A-Za-z0-9_])/OR_CONN_STATE_MIN_/g;
s/(?<![A-Za-z0-9_])_OutboundBindAddressIPv4(?![A-Za-z0-9_])/OutboundBindAddressIPv4_/g;
s/(?<![A-Za-z0-9_])_OutboundBindAddressIPv6(?![A-Za-z0-9_])/OutboundBindAddressIPv6_/g;
s/(?<![A-Za-z0-9_])_PDS_PREFER_TUNNELED_DIR_CONNS(?![A-Za-z0-9_])/PDS_PREFER_TUNNELED_DIR_CONNS_/g;
s/(?<![A-Za-z0-9_])_port(?![A-Za-z0-9_])/port_/g;
s/(?<![A-Za-z0-9_])__progname(?![A-Za-z0-9_])/_progname_/g;
s/(?<![A-Za-z0-9_])_PublishServerDescriptor(?![A-Za-z0-9_])/PublishServerDescriptor_/g;
s/(?<![A-Za-z0-9_])_remove_old_client_helper(?![A-Za-z0-9_])/remove_old_client_helper_/g;
s/(?<![A-Za-z0-9_])_rend_cache_entry_free(?![A-Za-z0-9_])/rend_cache_entry_free_/g;
s/(?<![A-Za-z0-9_])_routerlist_find_elt(?![A-Za-z0-9_])/routerlist_find_elt_/g;
s/(?<![A-Za-z0-9_])_SafeLogging(?![A-Za-z0-9_])/SafeLogging_/g;
s/(?<![A-Za-z0-9_])_SHORT_FILE_(?![A-Za-z0-9_])/SHORT_FILE__/g;
s/(?<![A-Za-z0-9_])_state_abbrevs(?![A-Za-z0-9_])/state_abbrevs_/g;
s/(?<![A-Za-z0-9_])_state_vars(?![A-Za-z0-9_])/state_vars_/g;
s/(?<![A-Za-z0-9_])_t(?![A-Za-z0-9_])/t_/g;
s/(?<![A-Za-z0-9_])_t32(?![A-Za-z0-9_])/t32_/g;
s/(?<![A-Za-z0-9_])_test_op_ip6(?![A-Za-z0-9_])/test_op_ip6_/g;
s/(?<![A-Za-z0-9_])_thread1_name(?![A-Za-z0-9_])/thread1_name_/g;
s/(?<![A-Za-z0-9_])_thread2_name(?![A-Za-z0-9_])/thread2_name_/g;
s/(?<![A-Za-z0-9_])_thread_test_func(?![A-Za-z0-9_])/thread_test_func_/g;
s/(?<![A-Za-z0-9_])_thread_test_mutex(?![A-Za-z0-9_])/thread_test_mutex_/g;
s/(?<![A-Za-z0-9_])_thread_test_start1(?![A-Za-z0-9_])/thread_test_start1_/g;
s/(?<![A-Za-z0-9_])_thread_test_start2(?![A-Za-z0-9_])/thread_test_start2_/g;
s/(?<![A-Za-z0-9_])_thread_test_strmap(?![A-Za-z0-9_])/thread_test_strmap_/g;
s/(?<![A-Za-z0-9_])_tor_calloc(?![A-Za-z0-9_])/tor_calloc_/g;
s/(?<![A-Za-z0-9_])_TOR_CHANNEL_INTERNAL(?![A-Za-z0-9_])/TOR_CHANNEL_INTERNAL_/g;
s/(?<![A-Za-z0-9_])_TOR_CIRCUITMUX_EWMA_C(?![A-Za-z0-9_])/TOR_CIRCUITMUX_EWMA_C_/g;
s/(?<![A-Za-z0-9_])_tor_free(?![A-Za-z0-9_])/tor_free_/g;
s/(?<![A-Za-z0-9_])_tor_malloc(?![A-Za-z0-9_])/tor_malloc_/g;
s/(?<![A-Za-z0-9_])_tor_malloc_zero(?![A-Za-z0-9_])/tor_malloc_zero_/g;
s/(?<![A-Za-z0-9_])_tor_memdup(?![A-Za-z0-9_])/tor_memdup_/g;
s/(?<![A-Za-z0-9_])_tor_realloc(?![A-Za-z0-9_])/tor_realloc_/g;
s/(?<![A-Za-z0-9_])_tor_strdup(?![A-Za-z0-9_])/tor_strdup_/g;
s/(?<![A-Za-z0-9_])_tor_strndup(?![A-Za-z0-9_])/tor_strndup_/g;
s/(?<![A-Za-z0-9_])_TOR_TLS_SYSCALL(?![A-Za-z0-9_])/TOR_TLS_SYSCALL_/g;
s/(?<![A-Za-z0-9_])_TOR_TLS_ZERORETURN(?![A-Za-z0-9_])/TOR_TLS_ZERORETURN_/g;
s/(?<![A-Za-z0-9_])__USE_ISOC99(?![A-Za-z0-9_])/_USE_ISOC99_/g;
s/(?<![A-Za-z0-9_])_UsingTestNetworkDefaults(?![A-Za-z0-9_])/UsingTestNetworkDefaults_/g;
s/(?<![A-Za-z0-9_])_val(?![A-Za-z0-9_])/val_/g;
s/(?<![A-Za-z0-9_])_void_for_alignment(?![A-Za-z0-9_])/void_for_alignment_/g;
==============================
2012-10-12 12:22:13 -04:00