teor
1c92d7f388
test/addr: test that tor_lookup_hostname() handles IPv4 addresses
...
And that it fails on IPv6 and host:port, and does something sensible with
host.
Tests for 30721.
2019-06-26 09:55:37 -04:00
teor
60ce431c54
test/addr: Add some ambiguous IPv6 cases to test_addr_parse()
...
Test some strings which could be parsed as IPv6 addresses,
or as IPv6:port strings.
Additional tests for 30721.
2019-06-26 09:55:37 -04:00
teor
2dbde3617f
test/addr: Increase coverage in test_addr_parse()
...
Do as many tests as possible for each input string.
Then remove some redundant test cases.
Cleanup after 30721.
2019-06-26 09:55:37 -04:00
teor
5a3770dc6c
test/addr: Stop repeating so much code in test_addr_parse()
...
Cleanup after 30721.
2019-06-26 09:55:37 -04:00
teor
1d3d6bf6b1
test/addr: Add unit tests for the fixes in 30721
2019-06-26 09:55:37 -04:00
teor
adb8538e7b
address/resolve: Require square brackets on IPv6 address:ports
...
When parsing addreses via Tor's internal address:port parsing and
DNS lookup APIs, require IPv6 addresses with ports to have square
brackets.
But allow IPv6 addresses without ports, whether or not they have
square brackets.
Fixes bug 30721; bugfix on 0.2.1.5-alpha.
2019-06-26 09:55:37 -04:00
teor
308d300213
address/resolve: try harder to avoid returning uninitialised data
...
Cleanup after 30721.
2019-06-26 09:55:37 -04:00
teor
fb93646c1c
resolve: split sub-functions out of tor_addr_lookup()
...
And remove the practracker exception for tor_addr_lookup().
Cleanup after 30721.
2019-06-26 09:55:37 -04:00
teor
29cf64c838
resolve: refactor address family logic in tor_addr_lookup()
...
Cleanup after 30721.
2019-06-26 09:55:37 -04:00
teor
cd1de99468
resolve: consistently parse IP addresses in square brackets
...
When parsing addreses via Tor's internal DNS lookup API:
* reject IPv4 addresses in square brackets (with or without a port),
* accept IPv6 addresses in square brackets (with or without a port), and
* accept IPv6 addresses without square brackets, as long as they have no port.
This change completes the work started in 23082, making address parsing
consistent between tor's internal DNS lookup and address parsing APIs.
Fixes bug 30721; bugfix on 0.2.1.5-alpha.
2019-06-26 09:55:36 -04:00
Nick Mathewson
c2a326d34f
Merge branch 'maint-0.4.1'
...
"ours" to avoid the 0.4.1 version of #30871 .
2019-06-26 09:50:12 -04:00
Nick Mathewson
0fe9657c8c
Merge remote-tracking branch 'tor-github/pr/1119'
2019-06-26 09:50:00 -04:00
Nick Mathewson
648d5df628
Merge remote-tracking branch 'tor-github/pr/1118' into maint-0.4.1
2019-06-26 09:49:40 -04:00
Nick Mathewson
167dd097e0
Merge remote-tracking branch 'tor-github/pr/1127'
2019-06-26 09:40:01 -04:00
George Kadianakis
72ef4f43d5
Merge branch 'tor-github/pr/1142'
2019-06-26 10:57:24 +03:00
George Kadianakis
7edd01a29b
Merge branch 'tor-github/pr/1109'
2019-06-26 10:56:08 +03:00
George Kadianakis
a57296da31
Merge branch 'tor-github/pr/1139'
2019-06-26 10:55:05 +03:00
George Kadianakis
fede64822d
Merge branch 'tor-github/pr/1128'
2019-06-26 10:53:34 +03:00
George Kadianakis
b2ef076e1a
Merge branch 'maint-0.4.1'
2019-06-26 10:51:50 +03:00
George Kadianakis
00acccac64
Merge branch 'tor-github/pr/1114' into maint-0.4.1
2019-06-26 10:51:12 +03:00
Nick Mathewson
e8790971f6
changes file for ticket 30914
2019-06-25 12:51:25 -04:00
Nick Mathewson
f3330d2be3
Make "invisibility" and "undumpability" properties of variables.
...
Previously, these were magical things that we detected by checking
whether a variable's name was prefixed with two or three underscores.
2019-06-25 12:51:25 -04:00
Nick Mathewson
c390efe84f
A few more test cases and unreachable lines
2019-06-25 12:51:25 -04:00
Nick Mathewson
a7835202cf
Turn several properties of types or variables into flags.
...
"unsettable" is a property of types. LINELIST_V and OBSOLETE are
unsettable, meaning that they cannot be set by name.
"contained" is a property of types. I'm hoping to find a better
name here. LINELIST_S is "contained" because it always appears
within a LINELIST_V, and as such doesn't need to be dumped ore
copied independently.
"cumulative" is a property of types. Cumulative types can appear
more than once in a torrc without causing a warning, because they
add to each other rather than replacing each other.
"obsolete" is a property of variables.
"marking fragile" is now a command that struct members can accept.
With these changes, confparse and config no longer ever need to
mention CONFIG_TYPE_XYZ values by name.
2019-06-25 12:51:25 -04:00
Nick Mathewson
a114df9a04
Add a function to make sure all values in a config object are ok
2019-06-25 12:51:25 -04:00
Nick Mathewson
b6457d4c08
Extend macros to allow flag arguments.
2019-06-25 12:51:25 -04:00
Nick Mathewson
a91ed23403
Use structvar to find the types for config vars.
2019-06-25 12:51:25 -04:00
Nick Mathewson
5b252d31ed
Add a "flags" member to config_var_t
...
Additionally, adjust the macros so that we can add new members like
this more easily.
2019-06-25 12:51:25 -04:00
Nick Mathewson
53e969c137
Use struct_var_{copy,eq} in confparse.c.
2019-06-25 12:51:25 -04:00
Nick Mathewson
c553750e32
Move responsibility for config var macros
...
The testing-only parts now live in a conftesting.h; the shared parts
of the macros live in confmacros.h
2019-06-25 12:51:25 -04:00
Nick Mathewson
59317c8a23
Use struct_magic_decl to verify magic numbers in config objects
2019-06-25 12:51:25 -04:00
Nick Mathewson
4d101b39d7
Move config_var_t info conftypes.h
2019-06-25 12:51:25 -04:00
Nick Mathewson
3a4d67cf45
Port confparse to use struct_var in place of typed_var.
...
This requires changes to config_var_t, causing corresponding changes
throughout its users.
2019-06-25 12:51:25 -04:00
Nick Mathewson
2da188667d
Add new "struct_var_" functions to manipulate struct fields.
...
These functions exist one level higher than typed_var_t. They
describe a type, a name, and an offset within a structure.
2019-06-25 12:51:25 -04:00
Taylor Yu
5612eccef8
Changes file for ticket 30889
2019-06-25 11:42:41 -05:00
Taylor Yu
5faf54970d
Fix some onion helpers
...
Fix add_onion_helper_clientauth() and add_onion_helper_keyarg() to
explicitly call the appropriate control reply abstractions instead of
allocating a string to pass to their callers.
Part of ticket 30889.
2019-06-25 11:42:34 -05:00
Taylor Yu
e5e6953be7
Make control_write_reply() mockable
...
Part of ticket 30889.
2019-06-25 11:40:44 -05:00
Taylor Yu
0dd59fdb56
Clean up some uses of low-level control replies
...
Part of ticket 30889.
2019-06-25 11:39:59 -05:00
Nick Mathewson
3644f4ab5f
Remove changes files that appeared in 0.4.1.3-alpha or earlier.
2019-06-25 11:57:08 -04:00
Nick Mathewson
3a9b41895f
Merge branch 'maint-0.4.1'
...
"ours" to avoid version bump.
2019-06-25 11:56:22 -04:00
Nick Mathewson
fe41504309
forward-port the 0.4.1.3-alpha changelog
2019-06-25 11:56:08 -04:00
Nick Mathewson
e4f66bf7ff
bump to 0.4.1.3-alpha-dev
2019-06-25 11:55:53 -04:00
teor
c131b0763e
stats: add comments about the required chunk structure in extra info files
...
These comments should prevent future instances of 30958.
And allow a larger file in practracker.
Follow up after 30958.
2019-06-25 12:30:59 +10:00
teor
2663bca392
Merge branch 'bug30958_041' into bug30958_master
2019-06-25 12:29:28 +10:00
Nick Mathewson
e16b90b88a
Partially port routerset to being a full-fledged config type again.
2019-06-24 17:52:00 -04:00
Nick Mathewson
705bda859e
Add unit tests for the unitparse.c module.
2019-06-24 17:50:43 -04:00
Nick Mathewson
f007437292
Further clarify our clarification about the type of POSINT
2019-06-24 17:50:43 -04:00
Nick Mathewson
c60a85d22a
Add a "typed_var" abstraction to implement lvalue access in C.
...
Right now, this has been done at a high level by confparse.c, but it
makes more sense to lower it.
This API is radically un-typesafe as it stands; we'll be wrapping it
in a safer API as we do #30914 and lower the struct manipulation
code as well.
Closes ticket 30864.
2019-06-24 17:50:43 -04:00
Nick Mathewson
5a2ab886ba
Add a function to append an existing line to a config line list.
...
We had an existing function to do this, but it took a pair of
strings rather than a line.
2019-06-24 15:11:57 -04:00
Nick Mathewson
458da8a80d
Move unit-parsing code to src/lib/confmgt
...
lib/confmgt is at a higher level than lib/conf, since it needs to
call down to logging and similar modules.
2019-06-24 15:11:57 -04:00