bitcoin/src
Ryan Ofsky 16a6174613
Merge bitcoin/bitcoin#29904: refactor: Use our own implementation of urlDecode
992c714451 common: Don't terminate on null character in UrlDecode (Fabian Jahr)
099fa57151 scripted-diff: Modernize name of urlDecode function and param (Fabian Jahr)
8f39aaae41 refactor: Remove hooking code for urlDecode (Fabian Jahr)
650d43ec15 refactor: Replace libevent use in urlDecode with our own code (Fabian Jahr)
46bc6c2aaa test: Add unit tests for urlDecode (Fabian Jahr)

Pull request description:

  Fixes #29654 (as a side-effect)

  Removing dependencies is a general goal of the project and the xz backdoor has been an additional wake up call recently. Libevent shows many of the same symptoms, few maintainers and slow releases. While libevent can not be removed completely over night we should start removing it’s usage where it's possible, ideally with the end goal to removing it completely.

  This is a pretty easy win in that direction. The [`evhttp_uridecode` function from libevent](e0a4574ba2/http.c (L3542)) we were using in `urlDecode` could be easily emulated in fewer LOC. This also ports the [applicable test vectors over from libevent](https://github.com/libevent/libevent/blob/master/test/regress_http.c#L3430).

ACKs for top commit:
  achow101:
    ACK 992c714451
  theStack:
    Code-review ACK 992c714451
  maflcko:
    ACK 992c714451 👈
  stickies-v:
    ACK 992c714451

Tree-SHA512: 78f76ae7ab3b6710eab2aaac20f55eb0da7803e057eaa6220e865f328666a5399ef1a479702aaf630b2f974ad3aa15e2b6adac9c11bc8c3d4be21e8af1667fea
2024-04-25 13:02:43 -04:00
..
bench refactor, bench, fuzz: Drop unneeded `UCharCast` calls 2024-04-06 15:46:53 +01:00
common Merge bitcoin/bitcoin#29904: refactor: Use our own implementation of urlDecode 2024-04-25 13:02:43 -04:00
compat
config
consensus
crc32c
crypto Change MAC_OSX macro to __APPLE__ in crypto package 2024-04-09 11:21:57 +02:00
index Fix #29767, set m_synced = true after Commit() 2024-04-01 14:13:06 +11:00
init
interfaces wallet: return and display signer error 2024-04-16 17:47:43 +02:00
ipc
kernel Merge bitcoin/bitcoin#29691: Change Luke Dashjr seed to dashjr-list-of-p2p-nodes.us 2024-04-08 17:36:12 +02:00
leveldb
logging
minisketch Update minisketch subtree to latest master 2024-04-12 14:27:45 +02:00
node [clang-tidy] Enable the misc-no-recursion check 2024-04-07 14:04:45 +01:00
policy Avoid explicitly computing diagram; compare based on chunks 2024-04-22 09:36:36 -04:00
primitives
qt Merge bitcoin/bitcoin#29904: refactor: Use our own implementation of urlDecode 2024-04-25 13:02:43 -04:00
rpc [rpc, bugfix] Enforce maximum value for setmocktime 2024-04-15 09:51:06 +01:00
script sign: don't assume we are parsing a sane Miniscript 2024-04-22 18:24:35 +02:00
secp256k1 Update secp256k1 subtree to latest master 2024-04-04 12:05:16 +01:00
support
test Merge bitcoin/bitcoin#29904: refactor: Use our own implementation of urlDecode 2024-04-25 13:02:43 -04:00
univalue test: Fix failing univalue float test 2024-04-16 16:35:12 +02:00
util Merge bitcoin/bitcoin#29757: feefrac: avoid explicitly computing diagram; compare based on chunks 2024-04-24 16:51:56 +01:00
wallet Merge bitcoin/bitcoin#29904: refactor: Use our own implementation of urlDecode 2024-04-25 13:02:43 -04:00
zmq zmq: accept unix domain socket address for notifier 2024-04-16 14:14:37 -04:00
.bear-tidy-config
.clang-format
.clang-tidy [clang-tidy] Enable the misc-no-recursion check 2024-04-07 14:04:45 +01:00
Makefile.am Merge bitcoin/bitcoin#29904: refactor: Use our own implementation of urlDecode 2024-04-25 13:02:43 -04:00
Makefile.bench.include bench: basic block filter index initial sync 2024-03-12 09:30:42 -03:00
Makefile.crc32c.include
Makefile.leveldb.include
Makefile.minisketch.include build: remove minisketch clz check 2024-04-12 14:28:34 +02:00
Makefile.qt.include
Makefile.qt_locale.include
Makefile.qttest.include
Makefile.test.include test: Add unit tests for urlDecode 2024-04-24 22:21:06 +02:00
Makefile.test_fuzz.include
Makefile.test_util.include
Makefile.univalue.include
addrdb.cpp addrman: drop /*deterministic=*/ comment 2024-03-23 15:33:47 +01:00
addrdb.h
addresstype.cpp
addresstype.h
addrman.cpp
addrman.h
addrman_impl.h
arith_uint256.cpp
arith_uint256.h
attributes.h
banman.cpp
banman.h
base58.cpp
base58.h
bech32.cpp
bech32.h
bip324.cpp
bip324.h
bitcoin-chainstate.cpp node: Make translations of fatal errors consistent 2024-03-21 16:40:22 +01:00
bitcoin-cli-res.rc
bitcoin-cli.cpp Merge bitcoin/bitcoin#29904: refactor: Use our own implementation of urlDecode 2024-04-25 13:02:43 -04:00
bitcoin-tx-res.rc
bitcoin-tx.cpp
bitcoin-util-res.rc
bitcoin-util.cpp
bitcoin-wallet-res.rc
bitcoin-wallet.cpp refactor: Remove hooking code for urlDecode 2024-04-24 23:23:38 +02:00
bitcoind-res.rc
bitcoind.cpp refactor: Remove hooking code for urlDecode 2024-04-24 23:23:38 +02:00
blockencodings.cpp refactor: Simplify `extra_txn` to be a vec of CTransactionRef instead of a vec of pair<Wtxid, CTransactionRef> 2024-04-06 19:17:20 +01:00
blockencodings.h refactor: Simplify `extra_txn` to be a vec of CTransactionRef instead of a vec of pair<Wtxid, CTransactionRef> 2024-04-06 19:17:20 +01:00
blockfilter.cpp
blockfilter.h
chain.cpp
chain.h assumeutxo: Remove BLOCK_ASSUMED_VALID flag 2024-03-18 11:28:40 -05:00
chainparams.cpp
chainparams.h
chainparamsbase.cpp
chainparamsbase.h
chainparamsseeds.h seeds: Update testnet seeds 2024-03-04 19:53:30 -05:00
checkqueue.h
clientversion.cpp
clientversion.h
coins.cpp
coins.h
compressor.cpp
compressor.h
core_io.h
core_memusage.h
core_read.cpp rpc: Reword SighashFromStr error message 2024-04-15 10:01:15 +02:00
core_write.cpp
cuckoocache.h doc: fix some typos 2024-03-26 16:51:46 +00:00
dbwrapper.cpp
dbwrapper.h
deploymentinfo.cpp
deploymentinfo.h
deploymentstatus.cpp
deploymentstatus.h
dummywallet.cpp
external_signer.cpp external_signer: replace boost::process with cpp-subprocess 2024-03-27 14:16:37 +00:00
external_signer.h
flatfile.cpp scripted-diff: Replace error() with LogError() 2024-03-11 13:49:37 +01:00
flatfile.h
hash.cpp
hash.h
headerssync.cpp
headerssync.h
httprpc.cpp
httprpc.h
httpserver.cpp
httpserver.h
i2p.cpp Merge bitcoin/bitcoin#27375: net: support unix domain sockets for -proxy and -onion 2024-03-13 06:53:07 -04:00
i2p.h
indirectmap.h
init.cpp zmq: accept unix domain socket address for notifier 2024-04-16 14:14:37 -04:00
init.h
key.cpp
key.h
key_io.cpp
key_io.h
logging.cpp
logging.h Merge bitcoin/bitcoin#29419: log: deduplicate category names and improve logging.cpp 2024-04-02 10:47:05 -04:00
mapport.cpp
mapport.h
memusage.h
merkleblock.cpp [clang-tidy] Enable the misc-no-recursion check 2024-04-07 14:04:45 +01:00
merkleblock.h
net.cpp net: Decrease nMaxIPs when learning from DNS seeds 2024-04-11 14:43:30 +02:00
net.h
net_permissions.cpp
net_permissions.h
net_processing.cpp refactor: Simplify `extra_txn` to be a vec of CTransactionRef instead of a vec of pair<Wtxid, CTransactionRef> 2024-04-06 19:17:20 +01:00
net_processing.h
net_types.cpp
net_types.h
netaddress.cpp
netaddress.h
netbase.cpp netbase: clean up Proxy logging 2024-04-16 10:24:02 -04:00
netbase.h
netgroup.cpp
netgroup.h
netmessagemaker.h
noui.cpp node: Use log levels in noui_ThreadSafeMessageBox 2024-03-21 16:41:16 +01:00
noui.h
outputtype.cpp
outputtype.h
pow.cpp
pow.h
prevector.h
protocol.cpp
protocol.h
psbt.cpp
psbt.h
pubkey.cpp
pubkey.h
random.cpp
random.h
randomenv.cpp Drop Windows Socket dependency for `randomenv.cpp` 2024-04-02 14:29:24 +01:00
randomenv.h
rest.cpp rest: read raw block in rest_block and deserialize for json 2024-03-12 12:48:04 -04:00
rest.h
reverse_iterator.h
scheduler.cpp
scheduler.h
serialize.h
signet.cpp
signet.h
span.h
streams.cpp
streams.h
sync.cpp
sync.h
threadsafety.h
timedata.cpp
timedata.h
tinyformat.h
torcontrol.cpp
torcontrol.h
txdb.cpp
txdb.h
txmempool.cpp Avoid explicitly computing diagram; compare based on chunks 2024-04-22 09:36:36 -04:00
txmempool.h Avoid explicitly computing diagram; compare based on chunks 2024-04-22 09:36:36 -04:00
txorphanage.cpp
txorphanage.h
txrequest.cpp
txrequest.h
uint256.cpp
uint256.h
undo.h
validation.cpp Merge bitcoin/bitcoin#29726: assumeutxo: Fix -reindex before snapshot was validated 2024-04-16 13:03:23 -04:00
validation.h Merge bitcoin/bitcoin#29648: Remove libbitcoinconsensus 2024-04-01 17:53:31 +02:00
validationinterface.cpp
validationinterface.h
versionbits.cpp
versionbits.h
walletinitinterface.h
warnings.cpp
warnings.h