bitcoin/src/util
Vasil Dimov 102867c587
net: change CNetAddr::ip to have flexible size
Before this change `CNetAddr::ip` was a fixed-size array of 16 bytes,
not being able to store larger addresses (e.g. TORv3) and encoded
smaller ones as 16-byte IPv6 addresses.

Change its type to `prevector`, so that it can hold larger addresses and
do not disguise non-IPv6 addresses as IPv6. So the IPv4 address
`1.2.3.4` is now encoded as `01020304` instead of
`00000000000000000000FFFF01020304`.

Rename `CNetAddr::ip` to `CNetAddr::m_addr` because it is not an "IP" or
"IP address" (TOR addresses are not IP addresses).

In order to preserve backward compatibility with serialization (where
e.g. `1.2.3.4` is serialized as `00000000000000000000FFFF01020304`)
introduce `CNetAddr` dedicated legacy serialize/unserialize methods.

Adjust `CSubNet` accordingly. Still use `CSubNet::netmask[]` of fixed 16
bytes, but use the first 4 for IPv4 (not the last 4). Only allow
subnetting for IPv4 and IPv6.

Co-authored-by: Carl Dong <contact@carldong.me>
2020-08-24 21:50:59 +02:00
..
asmap.cpp refactor: Rework asmap Interpret to avoid ptrdiff_t 2020-05-09 00:20:00 -07:00
asmap.h Add asmap sanity checker 2020-04-08 16:26:06 -07:00
bip32.cpp scripted-diff: Bump copyright headers 2020-04-16 13:33:09 -04:00
bip32.h scripted-diff: Bump copyright headers 2020-04-16 13:33:09 -04:00
bytevectorhash.cpp blockfilter: Use unordered_set instead of set in blockfilter. 2018-11-05 09:30:56 -08:00
bytevectorhash.h blockfilter: Use unordered_set instead of set in blockfilter. 2018-11-05 09:30:56 -08:00
check.h util: Make Assert work with any value 2020-07-11 15:02:07 +02:00
error.cpp Improve TransactionErrorString messages. 2020-06-18 23:32:59 -07:00
error.h refactor: Error message bilingual_str consistency 2020-06-09 15:39:44 +02:00
fees.cpp rpc/wallet: add two explicit modes to estimate_mode 2020-06-24 16:01:37 +09:00
fees.h fees: add FeeModes doc helper function 2020-06-24 15:52:05 +09:00
golombrice.h tests: Add fuzzing harness for Golomb-Rice coding (GolombRiceEncode/GolombRiceDecode) 2020-04-20 14:57:48 +00:00
macros.h refactor: consolidate PASTE macros 2019-09-25 10:56:00 -04:00
memory.h scripted-diff: Move util files to separate directory. 2018-11-04 22:46:07 -08:00
message.cpp Move direct calls to MessageSign into new SignMessage functions in CWallet and ScriptPubKeyMan 2020-03-09 11:16:20 -04:00
message.h Move direct calls to MessageSign into new SignMessage functions in CWallet and ScriptPubKeyMan 2020-03-09 11:16:20 -04:00
moneystr.cpp scripted-diff: Bump copyright headers 2020-04-16 13:33:09 -04:00
moneystr.h scripted-diff: Bump copyright headers 2020-04-16 13:33:09 -04:00
rbf.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
rbf.h scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
ref.h Add util::Ref class as temporary alternative for c++17 std::any 2020-05-13 16:20:13 -04:00
settings.cpp Add <datadir>/settings.json persistent settings storage. 2020-07-11 05:41:12 -04:00
settings.h Add <datadir>/settings.json persistent settings storage. 2020-07-11 05:41:12 -04:00
spanparsing.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
spanparsing.h scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
strencodings.cpp net: change CNetAddr::ip to have flexible size 2020-08-24 21:50:59 +02:00
strencodings.h net: change CNetAddr::ip to have flexible size 2020-08-24 21:50:59 +02:00
string.cpp util: Add Join helper to join a list of strings 2019-08-20 16:51:41 -04:00
string.h util: Enhance Join() 2020-05-10 18:00:19 +03:00
system.cpp Merge #19614: util: use HAVE_FDATASYNC to determine fdatasync() use 2020-08-05 17:33:42 +02:00
system.h [util] add RunCommandParseJSON 2020-07-31 13:38:10 +02:00
threadnames.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
threadnames.h scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
time.cpp scripted-diff: Bump copyright headers 2020-04-16 13:33:09 -04:00
time.h util: Add count_microseconds helper 2020-06-19 07:25:35 -04:00
translation.h refactor: Fix unreachable code in init arg checks 2020-06-02 06:20:04 +10:00
ui_change_type.h wallet: Do not include server symbols 2020-06-27 11:39:09 -04:00
url.cpp scripted-diff: Bump copyright of files changed in 2019 2019-12-30 10:42:20 +13:00
url.h scripted-diff: Bump copyright headers 2020-04-16 13:33:09 -04:00
vector.h Add some general std::vector utility functions 2019-10-16 08:56:57 -07:00