0.20.0 change log Mining * miner: Avoid stack-use-after-return in validationinterface Block and transaction handling * log: Fix UB with bench on genesis block * feefilter: Compute the absolute fee rather than stored rate * log: Add validation interface logging * log: Add timing information to FlushStateToDisk() * O(1) OP_IF/NOTIF/ELSE/ENDIF script implementation * introduce CChainState::GetCoinsCacheSizeState * Walk pindexBestHeader back to ChainActive().Tip() if it is invalid * Remove REJECT code from CValidationState * Explain why fCheckDuplicateInputs can not be skipped and remove it * GuessVerificationProgress: cap the ratio to 1 * Templatize ValidationState instead of subclassing * node: Add reference to mempool in NodeContext * prevector: Avoid misaligned member accesses * Improve UpdateTransactionsFromBlock with Epochs * Abstract out script execution out of VerifyWitnessProgram() * Make VerifyWitnessProgram use a Span stack * serialization: prevent int overflow for big Coin::nHeight * chainparams: Bump assumed valid hash * Do not clear validationinterface entries being executed P2P protocol and network code * Remove BIP61 reject messages * Supply and use asmap to improve IP bucketing in addrman * Continue relaying transactions after they expire from mapRelay * Avoid allocating memory for addrKnown where we don't need it * tools: add PoissonNextSend method that returns mockable time * SocketHandler logs peer id for close and disconnect * Seed RNG with precision timestamps on receipt of net messages * Fix an uninitialized read in ProcessMessage(…, "tx", …) when receiving a transaction we already have * Don't allow resolving of std::string with embedded NUL characters. Add tests * Fix CNetAddr::IsRFC2544 comment + tests * config, net, test: Asmap feature refinements and functional tests * Use rolling bloom filter of recent block txs for AlreadyHave() check * Remove forcerelay of rejected txs * Fix some asmap issues * Reference instead of copy in BlockConnected range loop * Fix use-after-free in tests * Make addr relay mockable, add test * Add missing cs_vNodes lock * Hardcoded seeds update for 0.20 * Drop unknown types in getdata * Only send a getheaders for one block in an INV Wallet * Replace %w by wallet name in -walletnotify script * Remove GetDepthInMainChain dependency on locked chain interface * bumpfee: Return PSBT when wallet has privkeys disabled * Disable -fallbackfee by default * Make IsTrusted scan parents recursively * Change default address type to bech32 * Only check the hash of transactions loaded from disk * Handle duplicate fileid exception * descriptors: Introduce sortedmulti descriptor * Avoid showing GUI popups on RPC errors * Remove wallet access to some node arguments * LearnRelatedScripts only if KeepDestination * Split some CWallet functions into new LegacyScriptPubKeyMan * Make ScriptPubKeyMan an actual interface and the wallet to have multiple * Enable BnB coin selection for preset inputs and subtract fee from outputs * Various fixes and cleanup to keypool handling in LegacyScriptPubKeyMan and CWallet * Rename db log category to walletdb * Avoid showing GUI popups on RPC errors * Make -walletdir network only * Cleanup and move opportunistic and superfluous TopUp()s * Remove out of date comments for CalculateMaximumSignedTxSize * Fix when sufficient preset inputs and subtractFeeFromOutputs * Activate watchonly wallet behavior for LegacySPKM only * Document better -keypool as a look-ahead safety mechanism * Reset reused transactions cache * Improve CWallet:MarkDestinationsDirty * Get the OutputType for a descriptor * Improve LegacyScriptPubKeyMan::CanProvide script recognition * Pass in transactions and messages for signing instead of exporting the private keys * Bugfix: Wallet: Safely deal with change in the address book * descriptors: Improve descriptor cache and cache xpubs * rpc/wallet: Initialize nFeeRequired to avoid using garbage value on failure * Remove deprecated fee bumping by totalFee * Fix wallet unload race condition RPC and other APIs * Add RPC Whitelist Feature * cli: -stdinwalletpassphrase and non-echo stdin passwords * Add missing fields to wallet rpc help output * Fix bug where duplicate PSBT keys are accepted * UTXO snapshot creation * psbt: Check that various indexes and amounts are within bounds * Set default bip32derivs to true for psbt methods * improve getaddressinfo test coverage, help, code docs * cli: Add "headers" and "verificationprogress" to -getinfo * replace asserts in RPC code with CHECK_NONFATAL and add linter * Expose block height of wallet transactions * Remove unused COINBASE_FLAGS * Simplify getaddressinfo labels, deprecate previous behavior * deprecate getaddressinfo label * Remove vector copy from listtransactions * Auto-format RPCResult * Output a descriptor in createmultisig and addmultisigaddress * Update validateaddress RPCExamples to bech32 * Change RPCExamples to bech32 * Remove redundant types from descriptions * Document an RPCResult for all calls; Enforce at compile time * Add missing HelpExampleRpc for getblockfilter * Fix broken RPCExamples for waitforblock(height) * Remove final comma for last entry of fixed-size arrays/objects in RPCResult * Remove unused getbalances() code * Correctly compute redeemScript from witnessScript for signrawtransaction * Fix rpcRunLater race in walletpassphrase * Make rpc documentation not depend on call-time rpc args * Avoid initialization-order-fiasco on static CRPCCommand tables * Make verifychain default values static, not depend on global args * Do not advertise dumptxoutset as a way to flush the chainstate * Relock wallet only if most recent callback GUI * Restore RPC Console to non-wallet tray icon menu * Don't disable the sync overlay when wallet is disabled * Show addresses for "SendToSelf" transactions * Add shortcuts for tab tools * create PSBT with watch-only wallet * Change sendcoins dialogue Yes to Send * Always generate bitcoinstrings.cpp on make translate * Rename debug window * Make RPCConsole::TabTypes an enum class * Add toolTip and placeholderText to sign message fields * Remove BIP70 support * Improved tooltip for send amount field * Add placeholder text to the sign message field * Send amount placeholder value * Fix payAmount tooltip in SendCoinsEntry * Cleaning up hide button tool tip * Changed tooltip for 'Label' & 'Message' text fields to be more clear * Fix intro dialog labels when the prune button is toggled * Bugfix: GUI: Recognise NETWORK_LIMITED in formatServicesStr * Bump fee returns PSBT on clipboard for watchonly-only wallets * Remove macOS start on login code * Show watch-only balance in send screen * Disable 3rd-party tx-urls when wallet disabled * Force set nPruneSize in QSettings after the intro dialog * Move static placeholder texts to forms * Log Qt related info * Restore English translation option * Set CConnman byte counters earlier to avoid uninitialized reads * Hide HD & encryption icons when no wallet loaded * Shortcut to close ModalOverlay * Bugfix: GUI: Hide the HD/encrypt icons earlier so they get re-shown if another wallet is open * Drop PeerTableModel dependency to ClientModel * Fix unintialized WalletView::progressDialog * Pass clientmodel changes from walletframe to walletviews * Fix deprecated QCharRef usage * Throttle GUI update pace when -reindex * Fix race in WalletModel::pollBalanceChanged * Avoid Wallet::GetBalance in WalletModel::pollBalanceChanged * Bump transifex slug and update English translations for 0.20 * Display mapped AS in peers info window * Translations update pre-branch * Fix Window -> Minimize menu item * Fix leak in CoinControlDialog::updateView * Fix manual coin control with multiple wallets loaded Build system * Remove mingw linker workaround from win gitian descriptor * Use new fork of osslsigncode for windows gitian signing * Only pass --disable-dependency-tracking to packages that understand it * Bump libevent to 2.1.11 in depends * gitian: Various improvements for windows descriptor * Disable _FORTIFY_SOURCE when enable-debug * Switch to upstream libdmg-hfsplus * Remove workaround for ancient libtool * Added double quotes * Add variable printing target to Makefiles * depends macOS: point --sysroot to SDK * Fix boost mac cross build with clang 9+ * Remove OpenSSL * Update retry to current version * nsis: Write to correct filename in first place * Update univalue subtree * Update leveldb to 1.22+ * Avoid hardcoded libfaketime dir in gitian * Fix C{,XX} pickup * Set gitian arch back to amd64 * Make Travis catch unused variables * Bump minimum libc to 2.17 for release binaries * Create test utility library from src/test/util/ * Remove libanl.so.1 from ALLOWED_LIBRARIES * Fix configure report about qr * Allow export of environ symbols and work around rv64 toolchain issue * lcov: filter depends from coverage reports * Add ability to skip building qrencode * Support for S390X and POWER targets * util: Update tinyformat to upstream * Don't configure xcb_proto * Remove Qt networking features * Remove linking librt for backwards compatibility * Remove configure checks for win libraries we don't link against * Included test_bitcoin-qt in msvc build * Remove WINDOWS_BITS from build system * Set AC_PREREQ to 2.69 * Add -Wdate-time to Werror flags * Remove double LIBBITCOIN_SERVER linking * Consistent use of package variable * guix: Pin Guix using guix time-machine * pass -fno-ident in Windows gitian descriptor * Remove --large-address-aware linker flag * Don't embed a build-id when building libdmg-hfsplus * Fix behavior when ALLOW_HOST_PACKAGES unset * Add missing attributes to Win installer * Skip i686 build by default in guix and gitian * Add cov_fuzz target * Add --enable-determinism configure flag * Add Wreturn-type to Werror flags, check on more Travis machines * Remove Boost Chrono * Set minimum Automake version to 1.13 * guix: Remove now-unnecessary gcc make flag * Use git archive as source tarball * Fix libevent linking for bench_bitcoin binary * scripts: Previous_release: improve behaviour on failed download * Remove double LIBBITCOIN_SERVER from bench-Makefile * Create test_fuzz library from src/test/fuzz/fuzz.cpp * Fix boost detection for arch armv7l * gitian: Add missing automake package to gitian-win-signer.yml * Check libevent minimum version in configure script * Ensure source tarball has leading directory name Platform support * Add Android NDK support * macOS toolchain update * Increase init file stop timeout * Remove OpenSSL PRNG seeding * Update README.md with working Android targets and API levels * Only use D-Bus with Qt on linux * Set minimum supported macOS to 10.12 * Appveyor install libevent[thread] vcpkg * Remove deprecated key from macOS Info.plist * Pass -dead_strip_dylibs to ld on macOS * Don't use OpenGL in Qt on macOS * Add -bind_at_load to macOS hardened LDFLAGS * scripts: Add macho pie check to security-check.py * random: don't special case clock usage on macOS * scripts: Add macho dylib checks to symbol-check.py * msvc: Ignore msvc linker warning and update to msvc build instructions * windows: Enable heap terminate-on-corruption * logging: Enable thread_local usage on macos * Fix .gitignore policy in build_msvc directory * scripts: Add macho lazy bindings check to security-check.py * util: Fix compilation with mingw-w64 7.0.0 * Fix sysctl() detection on macOS * random: remove getentropy() fallback for macOS < 10.12 * scripts: Add pe dylib checking to symbol-check.py * scripts: Add macho tests to test-security-check.py * releases: Update with new Windows code signing certificate * Fix ASLR for bitcoin-cli on Windows Tests and QA * Build previous releases and run functional tests * Add coverage to estimaterawfee and estimatesmartfee * lint: Run the ci lint stage on mac * Add getdescriptorinfo functional test * Add wallet_implicitsegwit to test the ability to transform keys between address types * Add ASSERT_DEBUG_LOG to unit test framework * travis: Run full test suite on native macos * Use self.chain instead of 'regtest' in all current tests * add unit test for wallet watch-only methods involving PubKeys * Add generatetodescriptor RPC * Fix combine_logs.py for AppVeyor build * Show debug log on unit test failure * Seed test RNG context for each test case, print seed * ci: Use busybox utils for one build * Fix Python Docstring to include all Args * ci: Run tests on arm * Pass fuzzing inputs as constant references * Add test for loadblock option and linearize scripts * fix "tx-size-small" errors after default address change * Speed up wallet_backup by whitelisting peers * Speed up wallet_address_types by whitelisting peers * Fix bug in blockfilter_index_tests * use default address type * ci: Enable address sanitizer * Add testcase to simulate bitcoin schema in leveldb * Remove no longer needed UBSan suppressions * Add unit testing for the CompressScript function * Test serialisation as part of deserialisation fuzzing. Test round-trip equality where possible * Add RegTestingSetup to setup_common * travis: Run unit and functional tests on native arm * Skip unnecessary fuzzer initialisation. Hold ECCVerifyHandle only when needed * ci: Disable functional tests on mac host * Fix script_p2sh_tests OP_PUSHBACK2/4 missing * bench: Fix negative values and zero for -evals flag * pubkey: Assert CPubKey's ECCVerifyHandle precondition * Added TestWrapper class for interactive Python environments * Add new mempool benchmarks for a complex pool * add reason checks for non-standard txs in test_IsStandard * Fix input size assertion in wallet_bumpfee.py * Add rpc_fundrawtransaction logging * Add shrinkdebugfile=0 to regtest bitcoin.conf * Speed up fundrawtransaction test * Do not instantiate CAddrDB for static call CAddrDB::Read() * Speed up wallet_avoidreuse, add logging * add "diamond" unit test to MempoolAncestryTests * Reset global args between test suites * ci: Run non-cross-compile builds natively * TestShell: Fix typos & implement cleanups * Create new test library * wallet_importmulti: use addresses of the same type as being imported * Add missing newline in util_ChainMerge test * Add util_ArgParsing test * travis: Rework cache_err_msg * ci: Make ci system read-only on the git work tree * check custom ancestor limit in mempool_packages.py * Update valgrind suppressions * Check custom descendant limit in mempool_packages.py * Remove fragile assert_memory_usage_stable * ci: Use clang-8 for fuzzing to run on aarch64 ci systems * Add unit test for non-standard txs with too large scriptSig * Skip tests when utils haven't been compiled * Add unit test for non-standard bare multisig txs * Add bounds checks before base58 decoding * ci: Bump to clang-8 for asan build to avoid segfaults on ppc64le * Wait until mempool is loaded in wallet_abandonconflict * Add functional test for non-standard txs with too large scriptSig * Add functional test for non-standard bare multisig txs * Add unit test for non-standard txs with wrong nVersion * Add libtest_util library to msvc build configuration * ci: Add big endian platform - s390x * Move more utility functions into test utility library * Add option --valgrind to run the functional tests under Valgrind * ci: Add centos 7 build * Add unit test for leveldb creation with unicode path * Add initialization order fiasco detection in Travis * Enable tests which are incorrectly skipped when running test_runner.py --usecli * Fix bug in the descriptor parsing fuzzing harness * re-enable CLI test support by using EncodeDecimal in json.dumps() * add unit test for non-standard "scriptsig-not-pushonly" txs * ci: Fix qemu issues * ci: Update github actions ci vcpkg cache on msbuild update * Change filemode of rpc_whitelist.py * ci: Fix brew python link * Add std::to_string to list of locale dependent functions * Fix double-negative arg test * ci: Combine 32-bit build with centos 7 build * Test OP_CSV empty stack fail in feature_csv_activation.py * Fix p2p_invalid_messages failing in Python 3.8 because of warning * add unit test for non-standard txs with too large tx size * Check specific reject reasons in feature_csv_activation.py * Add p2p test for forcerelay permission * Updated appveyor job to checkout a specific vcpkg commit ID * fix fuzzing using libFuzzer on macOS * bench: Fix benchmarks filters * reset fIsBareMultisigStd after bare-multisig tests * Fix appveyor test_bitcoin build of *.raw * util: Allow scheduler to be mocked * ci: Check for submodules * Replace 'regtest' leftovers by self.chain * Set a name for CI Docker containers * Avoid hitting some known minor tinyformat issues when fuzzing strprintf(…) * Add harness which fuzzes EvalScript and VerifyScript using a fuzzed signature checker * Add --valgrind option to test/fuzz/test_runner.py for running fuzzing test cases under valgrind * ci: Run fuzz testing test cases * Transaction expiry from mempool * Remove incorrect assumptions in validation_flush_tests * Set catch_system_errors=no on boost unit tests * Add cost_of_change parameter assertions to bnb_search_test * Reduce unneeded whitelist permissions in tests * Disable mockforward scheduler unit test for now * Fix race in p2p_segwit * Make AnalyzePSBT next role calculation simple, correct * Add missing syncwithvalidationinterfacequeue * Wait for both veracks in add_p2p_connection * Bump timeouts to accomodate really slow disks * Add bad-txns-*-toolarge test cases to invalid_txs * rpc: change setmocktime check to use IsMockableChain * Check that wait_until returns if time point is in the past * Add locale fuzzer to FUZZERS_MISSING_CORPORA * fuzz: Add assert(script == decompressed_script) * Update FUZZERS_MISSING_CORPORA to enable regression fuzzing for all harnesses in master * fuzz: Add option to merge input dir to test runner * Explain why test logging should be used * Add logging to wallet_listsinceblock.py * Bumpfee test fix * Add deserialization fuzzing of SnapshotMetadata * fuzz: Add missing ECC_Start to key_io test * Add basic test for BIP 37 * Fix mining to an invalid target + ensure that a new block has the correct hash internally * Bugfix & simplify bn2vch using int.to_bytes * Don't assume presence of __builtin_mul_overflow(…) in MultiplicationOverflow(…) fuzzing harness * add executable flag for rpc_estimatefee.py * listsinceblock block height checks * ci: Only clone bitcoin-core/qa-assets when fuzzing * ci: Use homebrew addon on native macos * Add coverage for script parse error in ParseScript * Remove unsafe BOOST_TEST_MESSAGE * check that peer is connected when calling sync_* * ci: Use focal for fuzzers * add BIP37 'filterclear' test to p2p_filter.py * Remove redundant sync_with_ping after add_p2p_connection * fuzz: Avoid running over all inputs after merging them * fuzz: Add CScriptNum::getint coverage * remove rapidcheck integration and tests * Add BIP37 remote crash bug [CVE-2013-5700] test to p2p_filter.py * relax bumpfee dust_to_fee txsize an extra vbyte * fuzz: Extend descriptor fuzz test * fuzz: Extend script fuzz test * fuzz: Add process_messages harness * Add fuzzer version of randomized prevector test * skip backwards compat tests if not compiled with wallet * wallet_bumpfee assertion fixup * Use one node to avoid a race due to missing sync in rpc_signrawtransaction * Properly raise FailedToStartError when rpc shutdown before warmup finished * ci: Run unit tests sequential once * Fix unregister_all_during_call cleanup * Set -use_value_profile=1 when merging fuzz inputs * Remove enumeration of expected deserialization exceptions in ProcessMessage(…) fuzzer * Add test for conflicted wallet tx notifications * Remove const to work around compiler error on xenial Documentation * Doxygen-friendly script/descriptor.h comments * Add detailed info about Bitcoin Core files * Doxygen-friendly CuckooCache comments * move-only: Steps for "before major release branch-off" * Update bips.md for default bech32 addresses in 0.20.0 * Fix Makefile target in benchmarking.md * Add missing indexes/blockfilter/basic to doc/files.md * Fix broken bitcoin-cli examples * Add switch on enum example to developer notes * Update macdeploy README to include all files produced by make deploy * github: Add warning for bug reports * Added instructions for how to add an upsteam to forked repo * Add a note about backporting * Correct function name in ReportHardwareRand() * Describe log files + consistent paths in test READMEs * Changed miniupnp links to https * Add developer note on c_str() * Bip70 removal follow-up * Fix help-debug -checkpoints * update MSVC instructions to remove Qt OpenSSL linking * Add template for good first issues * Fix some misspellings * Add ShellCheck to lint tests dependencies * Update doc/bips.md with recent changes in master * Added regtest config for linearize script * Add some better examples for scripted diff * Remove bitness from bitcoin-qt help message and manpage * Update and improve Developer Notes * Changed MiniUPnPc link to https in dependencies.md * Change doxygen URL to doxygen.bitcoincore.org * Update release process with latest changes * Unify unix epoch time descriptions * script: Add keyserver to verify-commits readme * Rename wallet-tool references to bitcoin-wallet * Add "ci" prefix to CONTRIBUTING.md * Use recommended shebang approach in documentation code block * Fix directory path for secp256k1 subtree in developer-notes * Mention PR Club in CONTRIBUTING.md * Misc RPC help fixes * Developer notes guideline on RPCExamples addresses * Update dependencies.md * Add to Doxygen documentation guidelines * Fix improper Doxygen inline comments * Improve fuzzing docs for macOS users * Fix doxygen errors * Add missing supported rpcs to doc/descriptors.md * Add note about brew doctor * Remove PPA note from release-process.md * Minor grammatical changes and flow improvements * Add missing step in win deployment instructions * Add warning against wallet.dat re-use * Correct spelling errors in comments * interfaces: Describe and follow some code conventions * Explain rebase policy in CONTRIBUTING.md * Mention MAKE=gmake workaround when building on a BSD * Replace remaining literal BTC with CURRENCY_UNIT * Add fuzzing quickstart guides for libFuzzer and afl-fuzz * Fix nit in getblockchaininfo * Comment fix merkle.cpp * note the costs of fetching all pull requests * Update init and reduce-traffic docs for -blocksonly * Block-relay-only vs blocksonly * Explain new test logging * Update webchat URLs in README.md * Fix git add argument * Correct scripted-diff example link * Fix naming of macOS SDK and clarify version Miscellaneous * lockedpool: When possible, use madvise to avoid including sensitive information in core dumps * Merge settings one place instead of five places * On bitcoind startup, write config args to debug.log * util: Replace boost sleep with std sleep * util: Fix compilation errors in support/lockedpool.cpp * scripts: In linearize, search for next position of magic bytes rather than fail * Add some general std::vector utility functions * contrib: Bump gitian descriptors for 0.20 * scripts: Update copyright_header script to include additional files * util: Simplify path argument for cblocktreedb ctor * random: Remove call to RAND_screen() * util: Add check_nonfatal and use it in src/rpc * Replace the LogPrint function with a macro * util: Rename decodedumptime to parseiso8601datetime * Feed environment data into RNG initializers * contrib: Remove accounts from bash completion * Add assertion to randrange that input is not 0 * log: Fix log message for -par=1 * linter: Strip trailing / in path for git-subtree-check * scripts: Search for first block file for linearize-data with some block files pruned * scripts: Lint gitian descriptors with shellcheck * util: Disallow network-qualified command line options * random: mark RandAddPeriodic and SeedPeriodic as noexcept * Fix CPUID subleaf iteration * util: Make schedulebatchpriority advisory only * util: Remove unwanted fields from bitcoin-cli -getinfo * script: Fixed wget call in gitian-build.py * Make env data logging optional * util: Don't allow base58 decoding of non-base58 strings. add base58 tests * util: Change getwarnings parameter to bool * util: Don't allow base32/64-decoding or parsemoney(…) on strings with embedded nul characters. add tests * scripts: Read suspicious hosts from a file instead of hardcoding * util: Avoid potential uninitialized read in formatiso8601datetime(int64_t) by checking gmtime_s/gmtime_r return value * Fix a violation of C++ standard rules where unions are used for type-punning * util: Fail to parse empty string in parsemoney * util: Fail to parse whitespace-only strings in parsemoney(…) * util: Helpexamplerpc formatting * Fix missing header in sync.h * script: Fix script_err_sig_pushonly error string * util: Limit decimal range of numbers parsescript accepts * init: Replace URL_WEBSITE with PACKAGE_URL * Remove PID file at the very end * Avoid non-trivial global constants in SHA-NI code * Do not expose and consider -logthreadnames when it does not work
20 lines
875 B
C++
20 lines
875 B
C++
$NetBSD: patch-src_netbase.cpp,v 1.4 2020/07/12 21:02:12 adam Exp $
|
|
|
|
It is unclear why this patch exists. NetBSD 6 and 7 have AI_ADDRCONFIG,
|
|
although NetBSD 5 does not. Arguably upstream should have an autoconf
|
|
test instead. This is not known to be reported upstream.
|
|
|
|
--- src/netbase.cpp.orig 2020-06-02 07:43:04.000000000 +0000
|
|
+++ src/netbase.cpp
|
|
@@ -96,7 +96,11 @@ bool static LookupIntern(const std::stri
|
|
// If we don't allow lookups, then use the AI_NUMERICHOST flag for
|
|
// getaddrinfo to only decode numerical network addresses and suppress
|
|
// hostname lookups.
|
|
+#ifdef AI_ADDRCONFIG
|
|
aiHint.ai_flags = fAllowLookup ? AI_ADDRCONFIG : AI_NUMERICHOST;
|
|
+#else
|
|
+ aiHint.ai_flags = fAllowLookup ? 0 : AI_NUMERICHOST;
|
|
+#endif
|
|
struct addrinfo *aiRes = nullptr;
|
|
int nErr = getaddrinfo(name.c_str(), nullptr, &aiHint, &aiRes);
|
|
if (nErr)
|