Merge pull request #4456 from PastaPastaPasta/develop-trivial-2021-09-24

backport trivial 17553, 18596, 15782, 16051
This commit is contained in:
UdjinM6 2021-09-28 23:58:11 +03:00 committed by GitHub
commit 2e0c51648a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 17 additions and 16 deletions

View File

@ -1,7 +1,7 @@
task: task:
name: "FreeBsd 12.0 amd64 [GOAL: install] [no depends, only system libs]" name: "FreeBsd 12.1 amd64 [GOAL: install] [no depends, only system libs]"
freebsd_instance: freebsd_instance:
image: freebsd-12-0-release-amd64 image_family: freebsd-12-1 # https://cirrus-ci.org/guide/FreeBSD/
cpu: 8 cpu: 8
memory: 8G memory: 8G
timeout_in: 60m timeout_in: 60m

View File

@ -43,7 +43,7 @@ No other options are needed, the paths are automatically configured.
Common linux dependencies: Common linux dependencies:
sudo apt-get install make automake cmake curl g++-multilib libtool binutils-gold bsdmainutils pkg-config python3 sudo apt-get install make automake cmake curl g++-multilib libtool binutils-gold bsdmainutils pkg-config python3 patch
For linux ARM cross compilation: For linux ARM cross compilation:

View File

@ -6,7 +6,9 @@
#include <sys/file.h> #include <sys/file.h>
#include <sys/utsname.h> #include <sys/utsname.h>
#else #else
#ifndef NOMINMAX
#define NOMINMAX #define NOMINMAX
#endif
#include <codecvt> #include <codecvt>
#include <windows.h> #include <windows.h>
#endif #endif

View File

@ -1999,11 +1999,9 @@ bool CWallet::DummySignTx(CMutableTransaction &txNew, const std::vector<CTxOut>
int64_t CalculateMaximumSignedTxSize(const CTransaction &tx, const CWallet *wallet, bool use_max_sig) int64_t CalculateMaximumSignedTxSize(const CTransaction &tx, const CWallet *wallet, bool use_max_sig)
{ {
std::vector<CTxOut> txouts; std::vector<CTxOut> txouts;
// Look up the inputs. We should have already checked that this transaction
// IsAllFromMe(ISMINE_SPENDABLE), so every input should already be in our
// wallet, with a valid index into the vout array, and the ability to sign.
for (const CTxIn& input : tx.vin) { for (const CTxIn& input : tx.vin) {
const auto mi = wallet->mapWallet.find(input.prevout.hash); const auto mi = wallet->mapWallet.find(input.prevout.hash);
// Can not estimate size without knowing the input details
if (mi == wallet->mapWallet.end()) { if (mi == wallet->mapWallet.end()) {
return -1; return -1;
} }
@ -2018,8 +2016,6 @@ int64_t CalculateMaximumSignedTxSize(const CTransaction &tx, const CWallet *wall
{ {
CMutableTransaction txNew(tx); CMutableTransaction txNew(tx);
if (!wallet->DummySignTx(txNew, txouts, use_max_sig)) { if (!wallet->DummySignTx(txNew, txouts, use_max_sig)) {
// This should never happen, because IsAllFromMe(ISMINE_SPENDABLE)
// implies that we can sign for every input.
return -1; return -1;
} }
return ::GetSerializeSize(txNew, SER_NETWORK, PROTOCOL_VERSION); return ::GetSerializeSize(txNew, SER_NETWORK, PROTOCOL_VERSION);

View File

@ -101,23 +101,26 @@ class AuthServiceProxy():
if os.name == 'nt': if os.name == 'nt':
# Windows somehow does not like to re-use connections # Windows somehow does not like to re-use connections
# TODO: Find out why the connection would disconnect occasionally and make it reusable on Windows # TODO: Find out why the connection would disconnect occasionally and make it reusable on Windows
# Avoid "ConnectionAbortedError: [WinError 10053] An established connection was aborted by the software in your host machine"
self._set_conn() self._set_conn()
try: try:
self.__conn.request(method, path, postdata, headers) self.__conn.request(method, path, postdata, headers)
return self._get_response() return self._get_response()
except http.client.BadStatusLine as e: except (BrokenPipeError, ConnectionResetError):
if e.line == "''": # if connection was closed, try again # Python 3.5+ raises BrokenPipeError when the connection was reset
# ConnectionResetError happens on FreeBSD
self.__conn.close()
self.__conn.request(method, path, postdata, headers)
return self._get_response()
except OSError as e:
retry = (
'[WinError 10053] An established connection was aborted by the software in your host machine' in str(e))
if retry:
self.__conn.close() self.__conn.close()
self.__conn.request(method, path, postdata, headers) self.__conn.request(method, path, postdata, headers)
return self._get_response() return self._get_response()
else: else:
raise raise
except (BrokenPipeError, ConnectionResetError):
# Python 3.5+ raises BrokenPipeError instead of BadStatusLine when the connection was reset
# ConnectionResetError happens on FreeBSD with Python 3.4
self.__conn.close()
self.__conn.request(method, path, postdata, headers)
return self._get_response()
def get_request(self, *args, **argsn): def get_request(self, *args, **argsn):
AuthServiceProxy.__id_count += 1 AuthServiceProxy.__id_count += 1