mirror of
https://github.com/dashpay/dash.git
synced 2024-12-25 20:12:57 +01:00
Merge pull request #4456 from PastaPastaPasta/develop-trivial-2021-09-24
backport trivial 17553, 18596, 15782, 16051
This commit is contained in:
commit
2e0c51648a
@ -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
|
||||||
|
@ -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:
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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);
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user