![]() |
Dash Core
0.12.2.1
P2P Digital Currency
|
#include "netbase.h"
#include "hash.h"
#include "sync.h"
#include "uint256.h"
#include "random.h"
#include "util.h"
#include "utilstrencodings.h"
#include <atomic>
#include <fcntl.h>
#include <boost/algorithm/string/case_conv.hpp>
#include <boost/algorithm/string/predicate.hpp>
Go to the source code of this file.
Classes | |
struct | ProxyCredentials |
Functions | |
static std::atomic< bool > | interruptSocks5Recv (false) |
enum Network | ParseNetwork (std::string net) |
std::string | GetNetworkName (enum Network net) |
void | SplitHostPort (std::string in, int &portOut, std::string &hostOut) |
static bool | LookupIntern (const char *pszName, std::vector< CNetAddr > &vIP, unsigned int nMaxSolutions, bool fAllowLookup) |
bool | LookupHost (const char *pszName, std::vector< CNetAddr > &vIP, unsigned int nMaxSolutions, bool fAllowLookup) |
bool | LookupHost (const char *pszName, CNetAddr &addr, bool fAllowLookup) |
bool | Lookup (const char *pszName, std::vector< CService > &vAddr, int portDefault, bool fAllowLookup, unsigned int nMaxSolutions) |
bool | Lookup (const char *pszName, CService &addr, int portDefault, bool fAllowLookup) |
CService | LookupNumeric (const char *pszName, int portDefault) |
struct timeval | MillisToTimeval (int64_t nTimeout) |
static bool | InterruptibleRecv (char *data, size_t len, int timeout, SOCKET &hSocket) |
static bool | Socks5 (const std::string &strDest, int port, const ProxyCredentials *auth, SOCKET &hSocket) |
static bool | ConnectSocketDirectly (const CService &addrConnect, SOCKET &hSocketRet, int nTimeout) |
bool | SetProxy (enum Network net, const proxyType &addrProxy) |
bool | GetProxy (enum Network net, proxyType &proxyInfoOut) |
bool | SetNameProxy (const proxyType &addrProxy) |
bool | GetNameProxy (proxyType &nameProxyOut) |
bool | HaveNameProxy () |
bool | IsProxy (const CNetAddr &addr) |
static bool | ConnectThroughProxy (const proxyType &proxy, const std::string &strDest, int port, SOCKET &hSocketRet, int nTimeout, bool *outProxyConnectionFailed) |
bool | ConnectSocket (const CService &addrDest, SOCKET &hSocketRet, int nTimeout, bool *outProxyConnectionFailed) |
bool | ConnectSocketByName (CService &addr, SOCKET &hSocketRet, const char *pszDest, int portDefault, int nTimeout, bool *outProxyConnectionFailed) |
bool | LookupSubNet (const char *pszName, CSubNet &ret) |
std::string | NetworkErrorString (int err) |
bool | CloseSocket (SOCKET &hSocket) |
bool | SetSocketNonBlocking (SOCKET &hSocket, bool fNonBlocking) |
void | InterruptSocks5 (bool interrupt) |
Variables | |
static proxyType | proxyInfo [NET_MAX] |
static proxyType | nameProxy |
static CCriticalSection | cs_proxyInfos |
int | nConnectTimeout = DEFAULT_CONNECT_TIMEOUT |
bool | fNameLookup = DEFAULT_NAME_LOOKUP |
static const int | SOCKS5_RECV_TIMEOUT = 20 * 1000 |
bool CloseSocket | ( | SOCKET & | hSocket | ) |
Close socket and set hSocket to INVALID_SOCKET
Definition at line 711 of file netbase.cpp.
Referenced by CConnman::AcceptConnection(), CConnman::BindListenPort(), CNode::CloseSocketDisconnect(), CConnman::ConnectNode(), ConnectSocketDirectly(), SetSocketNonBlocking(), Socks5(), CConnman::Stop(), and CNode::~CNode().
bool ConnectSocket | ( | const CService & | addrDest, |
SOCKET & | hSocketRet, | ||
int | nTimeout, | ||
bool * | outProxyConnectionFailed | ||
) |
Definition at line 600 of file netbase.cpp.
Referenced by CConnman::ConnectNode(), and ConnectSocketByName().
bool ConnectSocketByName | ( | CService & | addr, |
SOCKET & | hSocketRet, | ||
const char * | pszDest, | ||
int | portDefault, | ||
int | nTimeout, | ||
bool * | outProxyConnectionFailed | ||
) |
Definition at line 612 of file netbase.cpp.
Referenced by CConnman::ConnectNode().
|
static |
Definition at line 438 of file netbase.cpp.
Referenced by ConnectSocket(), and ConnectThroughProxy().
|
static |
Definition at line 575 of file netbase.cpp.
Referenced by ConnectSocket(), and ConnectSocketByName().
bool GetNameProxy | ( | proxyType & | nameProxyOut | ) |
Definition at line 553 of file netbase.cpp.
Referenced by ConnectSocketByName().
std::string GetNetworkName | ( | enum Network | net | ) |
Definition at line 51 of file netbase.cpp.
Referenced by GetNetworksInfo().
Definition at line 536 of file netbase.cpp.
Referenced by ConnectSocket(), getinfo(), GetNetworksInfo(), OptionsModel::getProxySettings(), and OptionsDialog::updateDefaultProxyNets().
bool HaveNameProxy | ( | ) |
Definition at line 561 of file netbase.cpp.
Referenced by ConnectSocketByName(), and CConnman::ThreadDNSAddressSeed().
|
static |
Read bytes from socket. This will either read the full number of bytes requested or return False on error or timeout. This function can be interrupted by calling InterruptSocks5()
data | Buffer to receive into |
len | Length of data to receive |
timeout | Timeout in milliseconds for receive operation |
Definition at line 257 of file netbase.cpp.
Referenced by Socks5().
void InterruptSocks5 | ( | bool | interrupt | ) |
Definition at line 753 of file netbase.cpp.
Referenced by CConnman::Interrupt(), and CConnman::Start().
|
static |
Referenced by InterruptibleRecv(), and InterruptSocks5().
bool IsProxy | ( | const CNetAddr & | addr | ) |
Definition at line 566 of file netbase.cpp.
bool Lookup | ( | const char * | pszName, |
std::vector< CService > & | vAddr, | ||
int | portDefault, | ||
bool | fAllowLookup, | ||
unsigned int | nMaxSolutions | ||
) |
Definition at line 200 of file netbase.cpp.
Referenced by AppInit2(), ConnectSocketByName(), CMasternodeBroadcast::Create(), Lookup(), LookupNumeric(), masternode(), and CConnman::ThreadDNSAddressSeed().
bool Lookup | ( | const char * | pszName, |
CService & | addr, | ||
int | portDefault, | ||
bool | fAllowLookup | ||
) |
Definition at line 218 of file netbase.cpp.
bool LookupHost | ( | const char * | pszName, |
std::vector< CNetAddr > & | vIP, | ||
unsigned int | nMaxSolutions, | ||
bool | fAllowLookup | ||
) |
Definition at line 177 of file netbase.cpp.
Referenced by Discover(), InitHTTPAllowList(), LookupHost(), LookupSubNet(), setban(), CConnman::Start(), CConnman::ThreadDNSAddressSeed(), and CConnman::ThreadOpenConnections().
bool LookupHost | ( | const char * | pszName, |
CNetAddr & | addr, | ||
bool | fAllowLookup | ||
) |
Definition at line 190 of file netbase.cpp.
|
static |
Definition at line 80 of file netbase.cpp.
Referenced by Lookup(), and LookupHost().
CService LookupNumeric | ( | const char * | pszName, |
int | portDefault | ||
) |
Definition at line 228 of file netbase.cpp.
Referenced by TorController::add_onion_cb(), AppInit2(), TorController::auth_cb(), CConnman::GetAddedNodeInfo(), HTTPRequest::GetPeer(), CConnman::ThreadOpenAddedConnections(), and ProxyAddressValidator::validate().
bool LookupSubNet | ( | const char * | pszName, |
CSubNet & | ret | ||
) |
Definition at line 640 of file netbase.cpp.
Referenced by AppInit2(), InitHTTPAllowList(), setban(), and RPCConsole::unbanSelectedNode().
struct timeval MillisToTimeval | ( | int64_t | nTimeout | ) |
Convert milliseconds to a struct timeval for e.g. select.
Definition at line 238 of file netbase.cpp.
Referenced by ConnectSocketDirectly(), TorController::disconnected_cb(), and InterruptibleRecv().
std::string NetworkErrorString | ( | int | err | ) |
Return readable error string for a network error code
Definition at line 694 of file netbase.cpp.
Referenced by CConnman::AcceptConnection(), CConnman::BindListenPort(), ConnectSocketDirectly(), CConnman::SocketSendData(), CConnman::Stop(), and CConnman::ThreadSocketHandler().
enum Network ParseNetwork | ( | std::string | net | ) |
Definition at line 43 of file netbase.cpp.
Referenced by AppInit2().
bool SetNameProxy | ( | const proxyType & | addrProxy | ) |
Definition at line 545 of file netbase.cpp.
Referenced by AppInit2().
Definition at line 527 of file netbase.cpp.
Referenced by AppInit2(), and TorController::auth_cb().
bool SetSocketNonBlocking | ( | SOCKET & | hSocket, |
bool | fNonBlocking | ||
) |
Disable or enable blocking-mode for a socket
Definition at line 724 of file netbase.cpp.
Referenced by CConnman::BindListenPort(), and ConnectSocketDirectly().
|
static |
Connect using SOCKS5 (as described in RFC1928)
Definition at line 303 of file netbase.cpp.
Referenced by ConnectThroughProxy().
void SplitHostPort | ( | std::string | in, |
int & | portOut, | ||
std::string & | hostOut | ||
) |
Definition at line 61 of file netbase.cpp.
Referenced by ConnectSocketByName(), HTTPBindAddresses(), Lookup(), and CMasternodeConfig::read().
|
static |
Definition at line 35 of file netbase.cpp.
Referenced by GetNameProxy(), GetProxy(), HaveNameProxy(), IsProxy(), SetNameProxy(), and SetProxy().
bool fNameLookup = DEFAULT_NAME_LOOKUP |
Definition at line 37 of file netbase.cpp.
Referenced by AppInit2(), and ConnectSocketByName().
|
static |
Definition at line 34 of file netbase.cpp.
Referenced by ConnectSocketByName(), GetNameProxy(), HaveNameProxy(), and SetNameProxy().
int nConnectTimeout = DEFAULT_CONNECT_TIMEOUT |
Definition at line 36 of file netbase.cpp.
Referenced by AppInit2(), and CConnman::ConnectNode().
Definition at line 33 of file netbase.cpp.
Referenced by GetProxy(), IsProxy(), and SetProxy().
|
static |
Definition at line 40 of file netbase.cpp.
Referenced by Socks5().