Mercurial > hg > bitcoin
changeset 3099:5d16ac447d50 draft
Merge pull request #1501 from fanquake/master
QT to Qt
author | Wladimir J. van der Laan <laanwj@gmail.com> |
---|---|
date | Mon, 25 Jun 2012 06:49:59 -0700 |
parents | 411582ccad38 (diff) b2ffb5406fb0 (current diff) |
children | 0b91c4c21d69 d9b532167e18 b364429d59ec |
files | |
diffstat | 26 files changed, 825 insertions(+), 180 deletions(-) [+] |
line wrap: on
line diff
index c40917d78c512ac13414b0d9e92c59f57e6a9c77..275b041d2059ece19e1a4ade74b32654ab3a2c56 GIT binary patch literal 7322 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
index a52a5deb1b6c4691bb7073fc819080f66df6d2f2..ffa09bb4ad276c2380686a7e1619d18dce71c8a1 GIT binary patch literal 109468 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�%A2oaII_2~`sI;xDbCD&d}J{R=`ke;fqAeDOlh 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 T6-49abIBbUbOKDrD|G)4k+SFg
new file mode 100644 --- /dev/null +++ b/doc/Tor.txt @@ -0,0 +1,96 @@ +TOR SUPPORT IN BITCOIN +====================== + +It is possible to run Bitcoin as a Tor hidden service, and connect to such services. + +The following assumes you have a Tor proxy running on port 9050. Many distributions +default to having a SOCKS proxy listening on port 9050, but others may not. +In particular, the Tor Browser Bundle defaults to listening on a random port. See +https://www.torproject.org/docs/faq.html.en#TBBSocksPort for how to properly +configure Tor. + + +1. Run bitcoin behind a Tor proxy +--------------------------------- + +The first step is running Bitcoin behind a Tor proxy. This will already make all +outgoing connections be anonimized, but more is possible. + +-socks=5 SOCKS5 supports connecting-to-hostname, which can be used instead + of doing a (leaking) local DNS lookup. SOCKS5 is the default, + but SOCKS4 does not support this. (SOCKS4a does, but isn't + implemented). + +-proxy=ip:port Set the proxy server. If SOCKS5 is selected (default), this proxy + server will be used to try to reach .onion addresses as well. + +-tor=ip:port Set the proxy server to use for tor hidden services. You do not + need to set this if it's the same as -proxy. You can use -notor + to explicitly disable access to hidden service. + +-dnsseed DNS seeds are not resolved directly when a SOCKS5 proxy server is + set. Rather, a short-lived proxy connection to the dns seed + hostname is attempted, and peer addresses are requested. + +-listen When using -proxy, listening is disabled by default. If you want + to run a hidden service (see next section), you'll need to enable + it explicitly. + +-connect=X When behing a Tor proxy, you can specify .onion addresses instead +-addnode=X of IP addresses or hostnames in these parameters. It requires +-seednode=X SOCKS5. In Tor mode, such addresses can also be exchanged with + other P2P nodes. + +In a typical situation, this suffices to run behind a Tor proxy: + + ./bitcoin -proxy=127.0.0.1:9050 + + +2. Run a bitcoin hidden server +------------------------------ + +If you configure your Tor system accordingly, it is possible to make your node also +reachable from the Tor network. Add these lines to your /etc/tor/torrc (or equivalent +config file): + + HiddenServiceDir /var/lib/tor/bitcoin-service/ + HiddenServicePort 8333 127.0.0.1:8333 + +The directory can be different of course, but (both) 8333's should be equal to your +bitcoind's P2P listen port (8333 by default). + +-externalip=X You can tell bitcoin about its publically reachable address using + this option, and this can be a .onion address. Given the above + configuration, you can find your onion address in + /var/lib/tor/bitcoin-service/hostname. Onion addresses are given + preference for your node to advertize itself with, for connections + coming from unroutable addresses (such as 127.0.0.1, where the + Tor proxy typically runs). + +-listen You'll need to enable listening for incoming connections, as this + is off by default behind a proxy. + +-discover When -externalip is specified, no attempt is made to discover local + IPv4 or IPv6 addresses. If you want to run a dual stack, reachable + from both Tor and IPv4 (or IPv6), you'll need to either pass your + other addresses using -externalip, or explicitly enable -discover. + Note that both addresses of a dual-stack system may be easily + linkable using traffic analysis. + +In a typical situation, where you're only reachable via Tor, this should suffice: + + ./bitcoind -proxy=127.0.0.1:9050 -externalip=57qr3yd1nyntf5k.onion -listen + +(obviously replace the Onion address with your own). If you don't care too much +about hiding your node, and want to be reachable on IPv4 as well, additionally +specify: + + ./bitcoind ... -discover + +and open port 8333 on your firewall (or use -upnp). + +If you only want to use Tor to reach onion addresses, but not use it as a proxy +for normal IPv4/IPv6 communication, use: + + ./bitcoin -tor=127.0.0.1:9050 -externalip=57qr3yd1nyntf5k.onion -discover +
--- a/src/bignum.h +++ b/src/bignum.h @@ -122,16 +122,30 @@ return (n > (unsigned long)std::numeric_limits<int>::max() ? std::numeric_limits<int>::min() : -(int)n); } - void setint64(int64 n) + void setint64(int64 sn) { - unsigned char pch[sizeof(n) + 6]; + unsigned char pch[sizeof(sn) + 6]; unsigned char* p = pch + 4; - bool fNegative = false; - if (n < (int64)0) + bool fNegative; + uint64 n; + + if (sn < (int64)0) { + // We negate in 2 steps to avoid signed subtraction overflow, + // i.e. -(-2^63), which is an undefined operation and causes SIGILL + // when compiled with -ftrapv. + // + // Note that uint64_t n = sn, when sn is an int64_t, is a + // well-defined operation and n will be equal to sn + 2^64 when sn + // is negative. + n = sn; n = -n; fNegative = true; + } else { + n = sn; + fNegative = false; } + bool fLeadingZeroes = true; for (int i = 0; i < 8; i++) {
--- a/src/bitcoinrpc.cpp +++ b/src/bitcoinrpc.cpp @@ -2194,6 +2194,23 @@ } } +Value getrawmempool(const Array& params, bool fHelp) +{ + if (fHelp || params.size() != 0) + throw runtime_error( + "getrawmempool\n" + "Returns all transaction ids in memory pool."); + + vector<uint256> vtxid; + mempool.queryHashes(vtxid); + + Array a; + BOOST_FOREACH(const uint256& hash, vtxid) + a.push_back(hash.ToString()); + + return a; +} + Value getblockhash(const Array& params, bool fHelp) { if (fHelp || params.size() != 1) @@ -2317,6 +2334,7 @@ { "sendfrom", &sendfrom, false }, { "sendmany", &sendmany, false }, { "addmultisigaddress", &addmultisigaddress, false }, + { "getrawmempool", &getrawmempool, true }, { "getblock", &getblock, false }, { "getblockhash", &getblockhash, false }, { "gettransaction", &gettransaction, false },
--- a/src/checkpoints.cpp +++ b/src/checkpoints.cpp @@ -25,14 +25,11 @@ boost::assign::map_list_of ( 11111, uint256("0x0000000069e244f73d78e8fd29ba2fd2ed618bd6fa2ee92559f542fdb26e7c1d")) ( 33333, uint256("0x000000002dd5588a74784eaa7ab0507a18ad16a236e7b1ce69f00d7ddfb5d0a6")) - ( 68555, uint256("0x00000000001e1b4903550a0b96e9a9405c8a95f387162e4944e8d9fbe501cd6a")) - ( 70567, uint256("0x00000000006a49b14bcf27462068f1264c961f11fa2e0eddd2be0791e1d4124a")) ( 74000, uint256("0x0000000000573993a3c9e41ce34471c079dcf5f52a0e824a81e7f953b8661a20")) (105000, uint256("0x00000000000291ce28027faea320c8d2b054b2e0fe44a773f3eefb151d6bdc97")) - (118000, uint256("0x000000000000774a7f8a7a12dc906ddb9e17e75d684f15e00f8767f9e8f36553")) (134444, uint256("0x00000000000005b12ffd4cd315cd34ffd4a594f430ac814c91184a0d42d2b0fe")) - (140700, uint256("0x000000000000033b512028abb90e1626d8b346fd0ed598ac0a3c371138dce2bd")) (168000, uint256("0x000000000000099e61ea72015e79632f216fe6cb33d7899acb35b75c8303b763")) + (185333, uint256("0x00000000000002334c71b8706940c20348af897a9cfc0f1a6dab0d14d4ceb815")) ; static MapCheckpoints mapCheckpointsTestnet =
--- a/src/db.cpp +++ b/src/db.cpp @@ -404,66 +404,6 @@ return Exists(make_pair(string("tx"), hash)); } -bool CTxDB::ReadOwnerTxes(uint160 hash160, int nMinHeight, vector<CTransaction>& vtx) -{ - assert(!fClient); - vtx.clear(); - - // Get cursor - Dbc* pcursor = GetCursor(); - if (!pcursor) - return false; - - unsigned int fFlags = DB_SET_RANGE; - loop - { - // Read next record - CDataStream ssKey(SER_DISK, CLIENT_VERSION); - if (fFlags == DB_SET_RANGE) - ssKey << string("owner") << hash160 << CDiskTxPos(0, 0, 0); - CDataStream ssValue(SER_DISK, CLIENT_VERSION); - int ret = ReadAtCursor(pcursor, ssKey, ssValue, fFlags); - fFlags = DB_NEXT; - if (ret == DB_NOTFOUND) - break; - else if (ret != 0) - { - pcursor->close(); - return false; - } - - // Unserialize - string strType; - uint160 hashItem; - CDiskTxPos pos; - int nItemHeight; - - try { - ssKey >> strType >> hashItem >> pos; - ssValue >> nItemHeight; - } - catch (std::exception &e) { - return error("%s() : deserialize error", __PRETTY_FUNCTION__); - } - - // Read transaction - if (strType != "owner" || hashItem != hash160) - break; - if (nItemHeight >= nMinHeight) - { - vtx.resize(vtx.size()+1); - if (!vtx.back().ReadFromDisk(pos)) - { - pcursor->close(); - return false; - } - } - } - - pcursor->close(); - return true; -} - bool CTxDB::ReadDiskTx(uint256 hash, CTransaction& tx, CTxIndex& txindex) { assert(!fClient);
--- a/src/db.h +++ b/src/db.h @@ -307,7 +307,6 @@ bool AddTxIndex(const CTransaction& tx, const CDiskTxPos& pos, int nHeight); bool EraseTxIndex(const CTransaction& tx); bool ContainsTx(uint256 hash); - bool ReadOwnerTxes(uint160 hash160, int nHeight, std::vector<CTransaction>& vtx); bool ReadDiskTx(uint256 hash, CTransaction& tx, CTxIndex& txindex); bool ReadDiskTx(uint256 hash, CTransaction& tx); bool ReadDiskTx(COutPoint outpoint, CTransaction& tx, CTxIndex& txindex);
--- a/src/init.cpp +++ b/src/init.cpp @@ -222,6 +222,7 @@ " -timeout=<n> " + _("Specify connection timeout (in milliseconds)") + "\n" + " -proxy=<ip:port> " + _("Connect through socks proxy") + "\n" + " -socks=<n> " + _("Select the version of socks proxy to use (4-5, default: 5)") + "\n" + + " -tor=<ip:port> " + _("Use proxy to reach tor hidden services (default: same as -proxy)") + "\n" " -dns " + _("Allow DNS lookups for -addnode, -seednode and -connect") + "\n" + " -port=<port> " + _("Listen for connections on <port> (default: 8333 or testnet: 18333)") + "\n" + " -maxconnections=<n> " + _("Maintain at most <n> connections to peers (default: 125)") + "\n" + @@ -229,12 +230,12 @@ " -connect=<ip> " + _("Connect only to the specified node(s)") + "\n" + " -seednode=<ip> " + _("Connect to a node to retrieve peer addresses, and disconnect") + "\n" + " -externalip=<ip> " + _("Specify your own public address") + "\n" + - " -onlynet=<net> " + _("Only connect to nodes in network <net> (IPv4 or IPv6)") + "\n" + + " -onlynet=<net> " + _("Only connect to nodes in network <net> (IPv4, IPv6 or Tor)") + "\n" + " -discover " + _("Discover own IP address (default: 1 when listening and no -externalip)") + "\n" + " -irc " + _("Find peers using internet relay chat (default: 0)") + "\n" + " -listen " + _("Accept connections from outside (default: 1 if no -proxy or -connect)") + "\n" + " -bind=<addr> " + _("Bind to given address. Use [host]:port notation for IPv6") + "\n" + - " -dnsseed " + _("Find peers using DNS lookup (default: 1)") + "\n" + + " -dnsseed " + _("Find peers using DNS lookup (default: 1 unless -connect)") + "\n" + " -banscore=<n> " + _("Threshold for disconnecting misbehaving peers (default: 100)") + "\n" + " -bantime=<n> " + _("Number of seconds to keep misbehaving peers from reconnecting (default: 86400)") + "\n" + " -maxreceivebuffer=<n> " + _("Maximum per-connection receive buffer, <n>*1000 bytes (default: 10000)") + "\n" + @@ -255,7 +256,8 @@ " -daemon " + _("Run in the background as a daemon and accept commands") + "\n" + #endif " -testnet " + _("Use the test network") + "\n" + - " -debug " + _("Output extra debugging information") + "\n" + + " -debug " + _("Output extra debugging information. Implies all other -debug* options") + "\n" + + " -debugnet " + _("Output extra network debugging information") + "\n" + " -logtimestamps " + _("Prepend debug output with timestamp") + "\n" + " -printtoconsole " + _("Send trace/debug info to console instead of debug.log file") + "\n" + #ifdef WIN32 @@ -358,6 +360,13 @@ // ********************************************************* Step 3: parameter-to-internal-flags fDebug = GetBoolArg("-debug"); + + // -debug implies fDebug* + if (fDebug) + fDebugNet = true; + else + fDebugNet = GetBoolArg("-debugnet"); + bitdb.SetDetach(GetBoolArg("-detachdb", false)); #if !defined(WIN32) && !defined(QT_GUI) @@ -469,8 +478,10 @@ } } + CService addrProxy; + bool fProxy = false; if (mapArgs.count("-proxy")) { - CService addrProxy = CService(mapArgs["-proxy"], 9050); + addrProxy = CService(mapArgs["-proxy"], 9050); if (!addrProxy.IsValid()) return InitError(strprintf(_("Invalid -proxy address: '%s'"), mapArgs["-proxy"].c_str())); @@ -483,6 +494,20 @@ #endif SetNameProxy(addrProxy, nSocksVersion); } + fProxy = true; + } + + // -tor can override normal proxy, -notor disables tor entirely + if (!(mapArgs.count("-tor") && mapArgs["-tor"] == "0") && (fProxy || mapArgs.count("-tor"))) { + CService addrOnion; + if (!mapArgs.count("-tor")) + addrOnion = addrProxy; + else + addrOnion = CService(mapArgs["-tor"], 9050); + if (!addrOnion.IsValid()) + return InitError(strprintf(_("Invalid -tor address: '%s'"), mapArgs["-tor"].c_str())); + SetProxy(NET_TOR, addrOnion, 5); + SetReachable(NET_TOR); } // see Step 2: parameter interactions for more information about these @@ -613,7 +638,7 @@ if (GetBoolArg("-upgradewallet", fFirstRun)) { int nMaxVersion = GetArg("-upgradewallet", 0); - if (nMaxVersion == 0) // the -walletupgrade without argument case + if (nMaxVersion == 0) // the -upgradewallet without argument case { printf("Performing wallet upgrade to %i\n", FEATURE_LATEST); nMaxVersion = CLIENT_VERSION;
--- a/src/key.cpp +++ b/src/key.cpp @@ -129,6 +129,8 @@ void CKey::Reset() { fCompressedPubKey = false; + if (pkey != NULL) + EC_KEY_free(pkey); pkey = EC_KEY_new_by_curve_name(NID_secp256k1); if (pkey == NULL) throw key_error("CKey::CKey() : EC_KEY_new_by_curve_name failed"); @@ -137,6 +139,7 @@ CKey::CKey() { + pkey = NULL; Reset(); }
--- a/src/main.cpp +++ b/src/main.cpp @@ -180,8 +180,8 @@ // at most 500 megabytes of orphans: if (pvMsg->size() > 5000) { + printf("ignoring large orphan tx (size: %u, hash: %s)\n", pvMsg->size(), hash.ToString().substr(0,10).c_str()); delete pvMsg; - printf("ignoring large orphan tx (size: %u, hash: %s)\n", pvMsg->size(), hash.ToString().substr(0,10).c_str()); return false; } @@ -652,7 +652,15 @@ return true; } - +void CTxMemPool::queryHashes(std::vector<uint256>& vtxid) +{ + vtxid.clear(); + + LOCK(cs); + vtxid.reserve(mapTx.size()); + for (map<uint256, CTransaction>::iterator mi = mapTx.begin(); mi != mapTx.end(); ++mi) + vtxid.push_back((*mi).first); +} @@ -1317,8 +1325,7 @@ // This logic is not necessary for memory pool transactions, as AcceptToMemoryPool // already refuses previously-known transaction id's entirely. // This rule applies to all blocks whose timestamp is after March 15, 2012, 0:00 UTC. - // On testnet it is enabled as of februari 20, 2012, 0:00 UTC. - if (pindex->nTime > 1331769600 || (fTestNet && pindex->nTime > 1329696000)) + if (pindex->nTime > 1331769600) { BOOST_FOREACH(CTransaction& tx, vtx) { @@ -1332,8 +1339,8 @@ } } - // BIP16 didn't become active until Apr 1 2012 (Feb 15 on testnet) - int64 nBIP16SwitchTime = fTestNet ? 1329264000 : 1333238400; + // BIP16 didn't become active until Apr 1 2012 + int64 nBIP16SwitchTime = 1333238400; bool fStrictPayToScriptHash = (pindex->nTime >= nBIP16SwitchTime); //// issue here: it doesn't know the version @@ -2419,7 +2426,7 @@ pfrom->fSuccessfullyConnected = true; - printf("version message: version %d, blocks=%d\n", pfrom->nVersion, pfrom->nStartingHeight); + printf("receive version message: version %d, blocks=%d, us=%s, them=%s, peer=%s\n", pfrom->nVersion, pfrom->nStartingHeight, addrMe.ToString().c_str(), addrFrom.ToString().c_str(), pfrom->addr.ToString().c_str()); cPeerBlockCounts.input(pfrom->nStartingHeight); } @@ -2475,7 +2482,7 @@ static uint256 hashSalt; if (hashSalt == 0) hashSalt = GetRandHash(); - int64 hashAddr = addr.GetHash(); + uint64 hashAddr = addr.GetHash(); uint256 hashRand = hashSalt ^ (hashAddr<<32) ^ ((GetTime()+hashAddr)/(24*60*60)); hashRand = Hash(BEGIN(hashRand), END(hashRand)); multimap<uint256, CNode*> mapMix; @@ -3143,7 +3150,8 @@ const CInv& inv = (*pto->mapAskFor.begin()).second; if (!AlreadyHave(txdb, inv)) { - printf("sending getdata: %s\n", inv.ToString().c_str()); + if (fDebugNet) + printf("sending getdata: %s\n", inv.ToString().c_str()); vGetData.push_back(inv); if (vGetData.size() >= 1000) {
--- a/src/main.h +++ b/src/main.h @@ -1604,6 +1604,7 @@ bool fCheckInputs, bool* pfMissingInputs); bool addUnchecked(CTransaction &tx); bool remove(CTransaction &tx); + void queryHashes(std::vector<uint256>& vtxid); unsigned long size() {
--- a/src/mruset.h +++ b/src/mruset.h @@ -51,7 +51,7 @@ size_type max_size(size_type s) { if (s) - while (queue.size() >= s) + while (queue.size() > s) { set.erase(queue.front()); queue.pop_front();
--- a/src/net.cpp +++ b/src/net.cpp @@ -206,6 +206,14 @@ } } +void SetReachable(enum Network net, bool fFlag) +{ + LOCK(cs_mapLocalHost); + vfReachable[net] = fFlag; + if (net == NET_IPV6 && fFlag) + vfReachable[NET_IPV4] = true; +} + // learn a new local address bool AddLocal(const CService& addr, int nScore) { @@ -228,9 +236,7 @@ info.nScore = nScore; info.nPort = addr.GetPort() + (fAlready ? 1 : 0); } - enum Network net = addr.GetNetwork(); - vfReachable[net] = true; - if (net == NET_IPV6) vfReachable[NET_IPV4] = true; + SetReachable(addr.GetNetwork()); } AdvertizeLocal(); @@ -543,6 +549,7 @@ CAddress addrYou = (addr.IsRoutable() && !IsProxy(addr) ? addr : CAddress(CService("0.0.0.0",0))); CAddress addrMe = GetLocalAddress(&addr); RAND_bytes((unsigned char*)&nLocalHostNonce, sizeof(nLocalHostNonce)); + printf("send version message: version %d, blocks=%d, us=%s, them=%s, peer=%s\n", PROTOCOL_VERSION, nBestHeight, addrMe.ToString().c_str(), addrYou.ToString().c_str(), addr.ToString().c_str()); PushMessage("version", PROTOCOL_VERSION, nLocalServices, nTime, addrYou, addrMe, nLocalHostNonce, FormatSubVersion(CLIENT_NAME, CLIENT_VERSION, std::vector<string>()), nBestHeight); }
--- a/src/net.h +++ b/src/net.h @@ -64,6 +64,7 @@ bool IsLocal(const CService& addr); bool GetLocal(CService &addr, const CNetAddr *paddrPeer = NULL); bool IsReachable(const CNetAddr &addr); +void SetReachable(enum Network net, bool fFlag = true); CAddress GetLocalAddress(const CNetAddr *paddrPeer = NULL); @@ -296,7 +297,8 @@ // We're using mapAskFor as a priority queue, // the key is the earliest time the request can be sent int64& nRequestTime = mapAlreadyAskedFor[inv]; - printf("askfor %s %"PRI64d"\n", inv.ToString().c_str(), nRequestTime); + if (fDebugNet) + printf("askfor %s %"PRI64d"\n", inv.ToString().c_str(), nRequestTime); // Make sure not to reuse time indexes to keep things in the same order int64 nNow = (GetTime() - 1) * 1000000;
--- a/src/netbase.cpp +++ b/src/netbase.cpp @@ -33,9 +33,39 @@ return NET_UNROUTABLE; } +void SplitHostPort(std::string in, int &portOut, std::string &hostOut) { + size_t colon = in.find_last_of(':'); + // if a : is found, and it either follows a [...], or no other : is in the string, treat it as port separator + bool fHaveColon = colon != in.npos; + bool fBracketed = fHaveColon && (in[0]=='[' && in[colon-1]==']'); // if there is a colon, and in[0]=='[', colon is not 0, so in[colon-1] is safe + bool fMultiColon = fHaveColon && (in.find_last_of(':',colon-1) != in.npos); + if (fHaveColon && (colon==0 || fBracketed || !fMultiColon)) { + char *endp = NULL; + int n = strtol(in.c_str() + colon + 1, &endp, 10); + if (endp && *endp == 0 && n >= 0) { + in = in.substr(0, colon); + if (n > 0 && n < 0x10000) + portOut = n; + } + } + if (in.size()>0 && in[0] == '[' && in[in.size()-1] == ']') + hostOut = in.substr(1, in.size()-2); + else + hostOut = in; +} + bool static LookupIntern(const char *pszName, std::vector<CNetAddr>& vIP, unsigned int nMaxSolutions, bool fAllowLookup) { vIP.clear(); + + { + CNetAddr addr; + if (addr.SetSpecial(std::string(pszName))) { + vIP.push_back(addr); + return true; + } + } + struct addrinfo aiHint; memset(&aiHint, 0, sizeof(struct addrinfo)); @@ -44,19 +74,17 @@ #ifdef WIN32 # ifdef USE_IPV6 aiHint.ai_family = AF_UNSPEC; - aiHint.ai_flags = fAllowLookup ? 0 : AI_NUMERICHOST; # else aiHint.ai_family = AF_INET; +# endif aiHint.ai_flags = fAllowLookup ? 0 : AI_NUMERICHOST; -# endif #else # ifdef USE_IPV6 aiHint.ai_family = AF_UNSPEC; - aiHint.ai_flags = AI_ADDRCONFIG | (fAllowLookup ? 0 : AI_NUMERICHOST); # else aiHint.ai_family = AF_INET; - aiHint.ai_flags = AI_ADDRCONFIG | (fAllowLookup ? 0 : AI_NUMERICHOST); # endif + aiHint.ai_flags = fAllowLookup ? AI_ADDRCONFIG : AI_NUMERICHOST; #endif struct addrinfo *aiRes = NULL; int nErr = getaddrinfo(pszName, NULL, &aiHint, &aiRes); @@ -114,36 +142,11 @@ if (pszName[0] == 0) return false; int port = portDefault; - char psz[256]; - char *pszHost = psz; - strlcpy(psz, pszName, sizeof(psz)); - char* pszColon = strrchr(psz+1,':'); - char *pszPortEnd = NULL; - int portParsed = pszColon ? strtoul(pszColon+1, &pszPortEnd, 10) : 0; - if (pszColon && pszPortEnd && pszPortEnd[0] == 0) - { - if (psz[0] == '[' && pszColon[-1] == ']') - { - pszHost = psz+1; - pszColon[-1] = 0; - } - else - pszColon[0] = 0; - if (port >= 0 && port <= USHRT_MAX) - port = portParsed; - } - else - { - if (psz[0] == '[' && psz[strlen(psz)-1] == ']') - { - pszHost = psz+1; - psz[strlen(psz)-1] = 0; - } - - } + std::string hostname = ""; + SplitHostPort(std::string(pszName), port, hostname); std::vector<CNetAddr> vIP; - bool fRet = LookupIntern(pszHost, vIP, nMaxSolutions, fAllowLookup); + bool fRet = LookupIntern(hostname.c_str(), vIP, nMaxSolutions, fAllowLookup); if (!fRet) return false; vAddr.resize(vIP.size()); @@ -496,22 +499,9 @@ bool ConnectSocketByName(CService &addr, SOCKET& hSocketRet, const char *pszDest, int portDefault, int nTimeout) { - string strDest(pszDest); + string strDest; int port = portDefault; - - // split hostname and port - size_t colon = strDest.find_last_of(':'); - if (colon != strDest.npos) { - char *endp = NULL; - int n = strtol(pszDest + colon + 1, &endp, 10); - if (endp && *endp == 0 && n >= 0) { - strDest = strDest.substr(0, colon); - if (n > 0 && n < 0x10000) - port = n; - } - } - if (strDest[0] == '[' && strDest[strDest.size()-1] == ']') - strDest = strDest.substr(1, strDest.size()-2); + SplitHostPort(string(pszDest), port, strDest); SOCKET hSocket = INVALID_SOCKET; CService addrResolved(CNetAddr(strDest, fNameLookup && !nameproxyInfo.second), port); @@ -549,6 +539,32 @@ memcpy(ip, ipIn.ip, sizeof(ip)); } +static const unsigned char pchOnionCat[] = {0xFD,0x87,0xD8,0x7E,0xEB,0x43}; +static const unsigned char pchGarliCat[] = {0xFD,0x60,0xDB,0x4D,0xDD,0xB5}; + +bool CNetAddr::SetSpecial(const std::string &strName) +{ + if (strName.size()>6 && strName.substr(strName.size() - 6, 6) == ".onion") { + std::vector<unsigned char> vchAddr = DecodeBase32(strName.substr(0, strName.size() - 6).c_str()); + if (vchAddr.size() != 16-sizeof(pchOnionCat)) + return false; + memcpy(ip, pchOnionCat, sizeof(pchOnionCat)); + for (unsigned int i=0; i<16-sizeof(pchOnionCat); i++) + ip[i + sizeof(pchOnionCat)] = vchAddr[i]; + return true; + } + if (strName.size()>11 && strName.substr(strName.size() - 11, 11) == ".oc.b32.i2p") { + std::vector<unsigned char> vchAddr = DecodeBase32(strName.substr(0, strName.size() - 11).c_str()); + if (vchAddr.size() != 16-sizeof(pchGarliCat)) + return false; + memcpy(ip, pchOnionCat, sizeof(pchGarliCat)); + for (unsigned int i=0; i<16-sizeof(pchGarliCat); i++) + ip[i + sizeof(pchGarliCat)] = vchAddr[i]; + return true; + } + return false; +} + CNetAddr::CNetAddr() { Init(); @@ -595,7 +611,7 @@ bool CNetAddr::IsIPv6() const { - return (!IsIPv4()); + return (!IsIPv4() && !IsTor() && !IsI2P()); } bool CNetAddr::IsRFC1918() const @@ -654,15 +670,13 @@ return (GetByte(15) == 0x20 && GetByte(14) == 0x01 && GetByte(13) == 0x00 && (GetByte(12) & 0xF0) == 0x10); } -bool CNetAddr::IsOnionCat() const +bool CNetAddr::IsTor() const { - static const unsigned char pchOnionCat[] = {0xFD,0x87,0xD8,0x7E,0xEB,0x43}; return (memcmp(ip, pchOnionCat, sizeof(pchOnionCat)) == 0); } -bool CNetAddr::IsGarliCat() const +bool CNetAddr::IsI2P() const { - static const unsigned char pchGarliCat[] = {0xFD,0x60,0xDB,0x4D,0xDD,0xB5}; return (memcmp(ip, pchGarliCat, sizeof(pchGarliCat)) == 0); } @@ -724,7 +738,7 @@ bool CNetAddr::IsRoutable() const { - return IsValid() && !(IsRFC1918() || IsRFC3927() || IsRFC4862() || (IsRFC4193() && !IsOnionCat() && !IsGarliCat()) || IsRFC4843() || IsLocal()); + return IsValid() && !(IsRFC1918() || IsRFC3927() || IsRFC4862() || (IsRFC4193() && !IsTor() && !IsI2P()) || IsRFC4843() || IsLocal()); } enum Network CNetAddr::GetNetwork() const @@ -735,10 +749,10 @@ if (IsIPv4()) return NET_IPV4; - if (IsOnionCat()) + if (IsTor()) return NET_TOR; - if (IsGarliCat()) + if (IsI2P()) return NET_I2P; return NET_IPV6; @@ -746,6 +760,10 @@ std::string CNetAddr::ToStringIP() const { + if (IsTor()) + return EncodeBase32(&ip[6], 10) + ".onion"; + if (IsI2P()) + return EncodeBase32(&ip[6], 10) + ".oc.b32.i2p"; CService serv(*this, 0); #ifdef USE_IPV6 struct sockaddr_storage sockaddr; @@ -758,7 +776,7 @@ if (!getnameinfo((const struct sockaddr*)&sockaddr, socklen, name, sizeof(name), NULL, 0, NI_NUMERICHOST)) return std::string(name); } - if (IsIPv4()) + if (IsIPv4()) return strprintf("%u.%u.%u.%u", GetByte(3), GetByte(2), GetByte(1), GetByte(0)); else return strprintf("%x:%x:%x:%x:%x:%x:%x:%x", @@ -847,6 +865,18 @@ vchRet.push_back(GetByte(2) ^ 0xFF); return vchRet; } + else if (IsTor()) + { + nClass = NET_TOR; + nStartByte = 6; + nBits = 4; + } + else if (IsI2P()) + { + nClass = NET_I2P; + nStartByte = 6; + nBits = 4; + } // for he.net, use /36 groups else if (GetByte(15) == 0x20 && GetByte(14) == 0x11 && GetByte(13) == 0x04 && GetByte(12) == 0x70) nBits = 36; @@ -867,10 +897,10 @@ return vchRet; } -int64 CNetAddr::GetHash() const +uint64 CNetAddr::GetHash() const { uint256 hash = Hash(&ip[0], &ip[16]); - int64 nRet; + uint64 nRet; memcpy(&nRet, &hash, sizeof(nRet)); return nRet; } @@ -880,27 +910,82 @@ printf("CNetAddr(%s)\n", ToString().c_str()); } -// for IPv6 partners: for unknown/Teredo partners: for IPv4 partners: -// 0 - unroutable // 0 - unroutable // 0 - unroutable -// 1 - teredo // 1 - teredo // 1 - ipv4 -// 2 - tunneled ipv6 // 2 - tunneled ipv6 -// 3 - ipv4 // 3 - ipv6 -// 4 - ipv6 // 4 - ipv4 +// private extensions to enum Network, only returned by GetExtNetwork, +// and only used in GetReachabilityFrom +static const int NET_UNKNOWN = NET_MAX + 0; +static const int NET_TEREDO = NET_MAX + 1; +int static GetExtNetwork(const CNetAddr *addr) +{ + if (addr == NULL) + return NET_UNKNOWN; + if (addr->IsRFC4380()) + return NET_TEREDO; + return addr->GetNetwork(); +} + +/** Calculates a metric for how reachable (*this) is from a given partner */ int CNetAddr::GetReachabilityFrom(const CNetAddr *paddrPartner) const { - if (!IsValid() || !IsRoutable()) - return 0; - if (paddrPartner && paddrPartner->IsIPv4()) - return IsIPv4() ? 1 : 0; - if (IsRFC4380()) - return 1; - if (IsRFC3964() || IsRFC6052()) - return 2; - bool fRealIPv6 = paddrPartner && !paddrPartner->IsRFC4380() && paddrPartner->IsValid() && paddrPartner->IsRoutable(); - if (fRealIPv6) - return IsIPv4() ? 3 : 4; - else - return IsIPv4() ? 4 : 3; + enum Reachability { + REACH_UNREACHABLE, + REACH_DEFAULT, + REACH_TEREDO, + REACH_IPV6_WEAK, + REACH_IPV4, + REACH_IPV6_STRONG, + REACH_PRIVATE + }; + + if (!IsRoutable()) + return REACH_UNREACHABLE; + + int ourNet = GetExtNetwork(this); + int theirNet = GetExtNetwork(paddrPartner); + bool fTunnel = IsRFC3964() || IsRFC6052() || IsRFC6145(); + + switch(theirNet) { + case NET_IPV4: + switch(ourNet) { + default: return REACH_DEFAULT; + case NET_IPV4: return REACH_IPV4; + } + case NET_IPV6: + switch(ourNet) { + default: return REACH_DEFAULT; + case NET_TEREDO: return REACH_TEREDO; + case NET_IPV4: return REACH_IPV4; + case NET_IPV6: return fTunnel ? REACH_IPV6_WEAK : REACH_IPV6_STRONG; // only prefer giving our IPv6 address if it's not tunneled + } + case NET_TOR: + switch(ourNet) { + default: return REACH_DEFAULT; + case NET_IPV4: return REACH_IPV4; // Tor users can connect to IPv4 as well + case NET_TOR: return REACH_PRIVATE; + } + case NET_I2P: + switch(ourNet) { + default: return REACH_DEFAULT; + case NET_I2P: return REACH_PRIVATE; + } + case NET_TEREDO: + switch(ourNet) { + default: return REACH_DEFAULT; + case NET_TEREDO: return REACH_TEREDO; + case NET_IPV6: return REACH_IPV6_WEAK; + case NET_IPV4: return REACH_IPV4; + } + case NET_UNKNOWN: + case NET_UNROUTABLE: + default: + switch(ourNet) { + default: return REACH_DEFAULT; + case NET_TEREDO: return REACH_TEREDO; + case NET_IPV6: return REACH_IPV6_WEAK; + case NET_IPV4: return REACH_IPV4; + case NET_I2P: return REACH_PRIVATE; // assume connections from unroutable addresses are + case NET_TOR: return REACH_PRIVATE; // either from Tor/I2P, or don't care about our address + } + } } void CService::Init() @@ -1055,7 +1140,7 @@ std::string CService::ToStringIPPort() const { - if (IsIPv4()) { + if (IsIPv4() || IsTor() || IsI2P()) { return ToStringIP() + ":" + ToStringPort(); } else { return "[" + ToStringIP() + "]:" + ToStringPort();
--- a/src/netbase.h +++ b/src/netbase.h @@ -25,7 +25,7 @@ NET_TOR, NET_I2P, - NET_MAX + NET_MAX, }; extern int nConnectTimeout; @@ -44,8 +44,9 @@ explicit CNetAddr(const std::string &strIp, bool fAllowLookup = false); void Init(); void SetIP(const CNetAddr& ip); + bool SetSpecial(const std::string &strName); // for Tor and I2P addresses bool IsIPv4() const; // IPv4 mapped address (::FFFF:0:0/96, 0.0.0.0/0) - bool IsIPv6() const; // IPv6 address (not IPv4) + bool IsIPv6() const; // IPv6 address (not mapped IPv4, not Tor/I2P) bool IsRFC1918() const; // IPv4 private networks (10.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12) bool IsRFC3849() const; // IPv6 documentation address (2001:0DB8::/32) bool IsRFC3927() const; // IPv4 autoconfig (169.254.0.0/16) @@ -56,8 +57,8 @@ bool IsRFC4862() const; // IPv6 autoconfig (FE80::/64) bool IsRFC6052() const; // IPv6 well-known prefix (64:FF9B::/96) bool IsRFC6145() const; // IPv6 IPv4-translated address (::FFFF:0:0:0/96) - bool IsOnionCat() const; - bool IsGarliCat() const; + bool IsTor() const; + bool IsI2P() const; bool IsLocal() const; bool IsRoutable() const; bool IsValid() const; @@ -66,7 +67,7 @@ std::string ToString() const; std::string ToStringIP() const; int GetByte(int n) const; - int64 GetHash() const; + uint64 GetHash() const; bool GetInAddr(struct in_addr* pipv4Addr) const; std::vector<unsigned char> GetGroup() const; int GetReachabilityFrom(const CNetAddr *paddrPartner = NULL) const; @@ -133,6 +134,7 @@ }; enum Network ParseNetwork(std::string net); +void SplitHostPort(std::string in, int &portOut, std::string &hostOut); bool SetProxy(enum Network net, CService addrProxy, int nSocksVersion = 5); bool GetProxy(enum Network net, CService &addrProxy); bool IsProxy(const CNetAddr &addr);
--- a/src/qt/transactiontablemodel.cpp +++ b/src/qt/transactiontablemodel.cpp @@ -230,6 +230,8 @@ QTimer *timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(updateConfirmations())); timer->start(MODEL_UPDATE_DELAY); + + connect(walletModel->getOptionsModel(), SIGNAL(displayUnitChanged(int)), this, SLOT(updateDisplayUnit())); } TransactionTableModel::~TransactionTableModel() @@ -624,3 +626,8 @@ } } +void TransactionTableModel::updateDisplayUnit() +{ + // emit dataChanged to update Amount column with the current unit + emit dataChanged(index(0, Amount), index(priv->size()-1, Amount)); +}
--- a/src/qt/transactiontablemodel.h +++ b/src/qt/transactiontablemodel.h @@ -76,6 +76,7 @@ public slots: void updateTransaction(const QString &hash, int status); void updateConfirmations(); + void updateDisplayUnit(); friend class TransactionTablePriv; };
--- a/src/test/Checkpoints_tests.cpp +++ b/src/test/Checkpoints_tests.cpp @@ -15,20 +15,20 @@ BOOST_AUTO_TEST_CASE(sanity) { uint256 p11111 = uint256("0x0000000069e244f73d78e8fd29ba2fd2ed618bd6fa2ee92559f542fdb26e7c1d"); - uint256 p140700 = uint256("0x000000000000033b512028abb90e1626d8b346fd0ed598ac0a3c371138dce2bd"); + uint256 p134444 = uint256("0x00000000000005b12ffd4cd315cd34ffd4a594f430ac814c91184a0d42d2b0fe"); BOOST_CHECK(Checkpoints::CheckBlock(11111, p11111)); - BOOST_CHECK(Checkpoints::CheckBlock(140700, p140700)); + BOOST_CHECK(Checkpoints::CheckBlock(134444, p134444)); // Wrong hashes at checkpoints should fail: - BOOST_CHECK(!Checkpoints::CheckBlock(11111, p140700)); - BOOST_CHECK(!Checkpoints::CheckBlock(140700, p11111)); + BOOST_CHECK(!Checkpoints::CheckBlock(11111, p134444)); + BOOST_CHECK(!Checkpoints::CheckBlock(134444, p11111)); // ... but any hash not at a checkpoint should succeed: - BOOST_CHECK(Checkpoints::CheckBlock(11111+1, p140700)); - BOOST_CHECK(Checkpoints::CheckBlock(140700+1, p11111)); + BOOST_CHECK(Checkpoints::CheckBlock(11111+1, p134444)); + BOOST_CHECK(Checkpoints::CheckBlock(134444+1, p11111)); - BOOST_CHECK(Checkpoints::GetTotalBlocksEstimate() >= 140700); + BOOST_CHECK(Checkpoints::GetTotalBlocksEstimate() >= 134444); } BOOST_AUTO_TEST_SUITE_END()
new file mode 100644 --- /dev/null +++ b/src/test/base32_tests.cpp @@ -0,0 +1,20 @@ +#include <boost/test/unit_test.hpp> + +#include "util.h" + +BOOST_AUTO_TEST_SUITE(base32_tests) + +BOOST_AUTO_TEST_CASE(base32_testvectors) +{ + static const std::string vstrIn[] = {"","f","fo","foo","foob","fooba","foobar"}; + static const std::string vstrOut[] = {"","my======","mzxq====","mzxw6===","mzxw6yq=","mzxw6ytb","mzxw6ytboi======"}; + for (unsigned int i=0; i<sizeof(vstrIn)/sizeof(vstrIn[0]); i++) + { + std::string strEnc = EncodeBase32(vstrIn[i]); + BOOST_CHECK(strEnc == vstrOut[i]); + std::string strDec = DecodeBase32(vstrOut[i]); + BOOST_CHECK(strDec == vstrIn[i]); + } +} + +BOOST_AUTO_TEST_SUITE_END()
new file mode 100644 --- /dev/null +++ b/src/test/bignum_tests.cpp @@ -0,0 +1,125 @@ +#include <boost/test/unit_test.hpp> +#include <limits> + +#include "bignum.h" +#include "util.h" + +BOOST_AUTO_TEST_SUITE(bignum_tests) + +// Unfortunately there's no standard way of preventing a function from being +// inlined, so we define a macro for it. +// +// You should use it like this: +// NOINLINE void function() {...} +#if defined(__GNUC__) +// This also works and will be defined for any compiler implementing gcc +// extensions, such as clang and icc. +#define NOINLINE __attribute__((noinline)) +#elif defined(_MSC_VER) +#define NOINLINE __declspec(noinline) +#else +// We give out a warning because it impacts the correctness of one bignum test. +#warning You should define NOINLINE for your compiler. +#define NOINLINE +#endif + +// For the following test case, it is useful to use additional tools. +// +// The simplest one to use is the compiler flag -ftrapv, which detects integer +// overflows and similar errors. However, due to optimizations and compilers +// taking advantage of undefined behavior sometimes it may not actually detect +// anything. +// +// You can also use compiler-based stack protection to possibly detect possible +// stack buffer overruns. +// +// For more accurate diagnostics, you can use an undefined arithmetic operation +// detector such as the clang-based tool: +// +// "IOC: An Integer Overflow Checker for C/C++" +// +// Available at: http://embed.cs.utah.edu/ioc/ +// +// It might also be useful to use Google's AddressSanitizer to detect +// stack buffer overruns, which valgrind can't currently detect. + +// Let's force this code not to be inlined, in order to actually +// test a generic version of the function. This increases the chance +// that -ftrapv will detect overflows. +NOINLINE void mysetint64(CBigNum& num, int64 n) +{ + num.setint64(n); +} + +// For each number, we do 2 tests: one with inline code, then we reset the +// value to 0, then the second one with a non-inlined function. +BOOST_AUTO_TEST_CASE(bignum_setint64) +{ + int64 n; + + { + n = 0; + CBigNum num(n); + BOOST_CHECK(num.ToString() == "0"); + num.setulong(0); + BOOST_CHECK(num.ToString() == "0"); + mysetint64(num, n); + BOOST_CHECK(num.ToString() == "0"); + } + { + n = 1; + CBigNum num(n); + BOOST_CHECK(num.ToString() == "1"); + num.setulong(0); + BOOST_CHECK(num.ToString() == "0"); + mysetint64(num, n); + BOOST_CHECK(num.ToString() == "1"); + } + { + n = -1; + CBigNum num(n); + BOOST_CHECK(num.ToString() == "-1"); + num.setulong(0); + BOOST_CHECK(num.ToString() == "0"); + mysetint64(num, n); + BOOST_CHECK(num.ToString() == "-1"); + } + { + n = 5; + CBigNum num(n); + BOOST_CHECK(num.ToString() == "5"); + num.setulong(0); + BOOST_CHECK(num.ToString() == "0"); + mysetint64(num, n); + BOOST_CHECK(num.ToString() == "5"); + } + { + n = -5; + CBigNum num(n); + BOOST_CHECK(num.ToString() == "-5"); + num.setulong(0); + BOOST_CHECK(num.ToString() == "0"); + mysetint64(num, n); + BOOST_CHECK(num.ToString() == "-5"); + } + { + n = std::numeric_limits<int64>::min(); + CBigNum num(n); + BOOST_CHECK(num.ToString() == "-9223372036854775808"); + num.setulong(0); + BOOST_CHECK(num.ToString() == "0"); + mysetint64(num, n); + BOOST_CHECK(num.ToString() == "-9223372036854775808"); + } + { + n = std::numeric_limits<int64>::max(); + CBigNum num(n); + BOOST_CHECK(num.ToString() == "9223372036854775807"); + num.setulong(0); + BOOST_CHECK(num.ToString() == "0"); + mysetint64(num, n); + BOOST_CHECK(num.ToString() == "9223372036854775807"); + } +} + +BOOST_AUTO_TEST_SUITE_END()
--- a/src/test/multisig_tests.cpp +++ b/src/test/multisig_tests.cpp @@ -235,7 +235,7 @@ BOOST_CHECK(ExtractDestinations(s, whichType, addrs, nRequired)); BOOST_CHECK(addrs[0] == keyaddr[0]); BOOST_CHECK(addrs[1] == keyaddr[1]); - BOOST_CHECK(nRequired = 1); + BOOST_CHECK(nRequired == 1); BOOST_CHECK(IsMine(keystore, s)); BOOST_CHECK(!IsMine(emptykeystore, s)); BOOST_CHECK(!IsMine(partialkeystore, s));
new file mode 100644 --- /dev/null +++ b/src/test/netbase_tests.cpp @@ -0,0 +1,102 @@ +#include <boost/test/unit_test.hpp> + +#include <string> +#include <vector> + +#include "netbase.h" + +using namespace std; + +BOOST_AUTO_TEST_SUITE(netbase_tests) + +BOOST_AUTO_TEST_CASE(netbase_networks) +{ + BOOST_CHECK(CNetAddr("127.0.0.1").GetNetwork() == NET_UNROUTABLE); + BOOST_CHECK(CNetAddr("::1").GetNetwork() == NET_UNROUTABLE); + BOOST_CHECK(CNetAddr("8.8.8.8").GetNetwork() == NET_IPV4); + BOOST_CHECK(CNetAddr("2001::8888").GetNetwork() == NET_IPV6); + BOOST_CHECK(CNetAddr("FD87:D87E:EB43:edb1:8e4:3588:e546:35ca").GetNetwork() == NET_TOR); +} + +BOOST_AUTO_TEST_CASE(netbase_properties) +{ + BOOST_CHECK(CNetAddr("127.0.0.1").IsIPv4()); + BOOST_CHECK(CNetAddr("::FFFF:192.168.1.1").IsIPv4()); + BOOST_CHECK(CNetAddr("::1").IsIPv6()); + BOOST_CHECK(CNetAddr("10.0.0.1").IsRFC1918()); + BOOST_CHECK(CNetAddr("192.168.1.1").IsRFC1918()); + BOOST_CHECK(CNetAddr("172.31.255.255").IsRFC1918()); + BOOST_CHECK(CNetAddr("2001:0DB8::").IsRFC3849()); + BOOST_CHECK(CNetAddr("169.254.1.1").IsRFC3927()); + BOOST_CHECK(CNetAddr("2002::1").IsRFC3964()); + BOOST_CHECK(CNetAddr("FC00::").IsRFC4193()); + BOOST_CHECK(CNetAddr("2001::2").IsRFC4380()); + BOOST_CHECK(CNetAddr("2001:10::").IsRFC4843()); + BOOST_CHECK(CNetAddr("FE80::").IsRFC4862()); + BOOST_CHECK(CNetAddr("64:FF9B::").IsRFC6052()); + BOOST_CHECK(CNetAddr("FD87:D87E:EB43:edb1:8e4:3588:e546:35ca").IsTor()); + BOOST_CHECK(CNetAddr("127.0.0.1").IsLocal()); + BOOST_CHECK(CNetAddr("::1").IsLocal()); + BOOST_CHECK(CNetAddr("8.8.8.8").IsRoutable()); + BOOST_CHECK(CNetAddr("2001::1").IsRoutable()); + BOOST_CHECK(CNetAddr("127.0.0.1").IsValid()); +} + +bool static TestSplitHost(string test, string host, int port) +{ + string hostOut; + int portOut = -1; + SplitHostPort(test, portOut, hostOut); + return hostOut == host && port == portOut; +} + +BOOST_AUTO_TEST_CASE(netbase_splithost) +{ + BOOST_CHECK(TestSplitHost("www.bitcoin.org", "www.bitcoin.org", -1)); + BOOST_CHECK(TestSplitHost("[www.bitcoin.org]", "www.bitcoin.org", -1)); + BOOST_CHECK(TestSplitHost("www.bitcoin.org:80", "www.bitcoin.org", 80)); + BOOST_CHECK(TestSplitHost("[www.bitcoin.org]:80", "www.bitcoin.org", 80)); + BOOST_CHECK(TestSplitHost("127.0.0.1", "127.0.0.1", -1)); + BOOST_CHECK(TestSplitHost("127.0.0.1:8333", "127.0.0.1", 8333)); + BOOST_CHECK(TestSplitHost("[127.0.0.1]", "127.0.0.1", -1)); + BOOST_CHECK(TestSplitHost("[127.0.0.1]:8333", "127.0.0.1", 8333)); + BOOST_CHECK(TestSplitHost("::ffff:127.0.0.1", "::ffff:127.0.0.1", -1)); + BOOST_CHECK(TestSplitHost("[::ffff:127.0.0.1]:8333", "::ffff:127.0.0.1", 8333)); + BOOST_CHECK(TestSplitHost("[::]:8333", "::", 8333)); + BOOST_CHECK(TestSplitHost("::8333", "::8333", -1)); + BOOST_CHECK(TestSplitHost(":8333", "", 8333)); + BOOST_CHECK(TestSplitHost("[]:8333", "", 8333)); + BOOST_CHECK(TestSplitHost("", "", -1)); +} + +bool static TestParse(string src, string canon) +{ + CService addr; + if (!LookupNumeric(src.c_str(), addr, 65535)) + return canon == ""; + return canon == addr.ToString(); +} + +BOOST_AUTO_TEST_CASE(netbase_lookupnumeric) +{ + BOOST_CHECK(TestParse("127.0.0.1", "127.0.0.1:65535")); + BOOST_CHECK(TestParse("127.0.0.1:8333", "127.0.0.1:8333")); + BOOST_CHECK(TestParse("::ffff:127.0.0.1", "127.0.0.1:65535")); + BOOST_CHECK(TestParse("::", "[::]:65535")); + BOOST_CHECK(TestParse("[::]:8333", "[::]:8333")); + BOOST_CHECK(TestParse("[127.0.0.1]", "127.0.0.1:65535")); + BOOST_CHECK(TestParse(":::", "")); +} + +BOOST_AUTO_TEST_CASE(onioncat_test) +{ + // values from http://www.cypherpunk.at/onioncat/wiki/OnionCat + CNetAddr addr1("5wyqrzbvrdsumnok.onion"); + CNetAddr addr2("FD87:D87E:EB43:edb1:8e4:3588:e546:35ca"); + BOOST_CHECK(addr1 == addr2); + BOOST_CHECK(addr1.IsTor()); + BOOST_CHECK(addr1.ToStringIP() == "5wyqrzbvrdsumnok.onion"); + BOOST_CHECK(addr1.IsRoutable()); +} + +BOOST_AUTO_TEST_SUITE_END()
--- a/src/util.cpp +++ b/src/util.cpp @@ -58,6 +58,7 @@ map<string, string> mapArgs; map<string, vector<string> > mapMultiArgs; bool fDebug = false; +bool fDebugNet = false; bool fPrintToConsole = false; bool fPrintToDebugger = false; bool fRequestShutdown = false; @@ -702,6 +703,193 @@ return string((const char*)&vchRet[0], vchRet.size()); } +string EncodeBase32(const unsigned char* pch, size_t len) +{ + static const char *pbase32 = "abcdefghijklmnopqrstuvwxyz234567"; + + string strRet=""; + strRet.reserve((len+4)/5*8); + + int mode=0, left=0; + const unsigned char *pchEnd = pch+len; + + while (pch<pchEnd) + { + int enc = *(pch++); + switch (mode) + { + case 0: // we have no bits + strRet += pbase32[enc >> 3]; + left = (enc & 7) << 2; + mode = 1; + break; + + case 1: // we have three bits + strRet += pbase32[left | (enc >> 6)]; + strRet += pbase32[(enc >> 1) & 31]; + left = (enc & 1) << 4; + mode = 2; + break; + + case 2: // we have one bit + strRet += pbase32[left | (enc >> 4)]; + left = (enc & 15) << 1; + mode = 3; + break; + + case 3: // we have four bits + strRet += pbase32[left | (enc >> 7)]; + strRet += pbase32[(enc >> 2) & 31]; + left = (enc & 3) << 3; + mode = 4; + break; + + case 4: // we have two bits + strRet += pbase32[left | (enc >> 5)]; + strRet += pbase32[enc & 31]; + mode = 0; + } + } + + static const int nPadding[5] = {0, 6, 4, 3, 1}; + if (mode) + { + strRet += pbase32[left]; + for (int n=0; n<nPadding[mode]; n++) + strRet += '='; + } + + return strRet; +} + +string EncodeBase32(const string& str) +{ + return EncodeBase32((const unsigned char*)str.c_str(), str.size()); +} + +vector<unsigned char> DecodeBase32(const char* p, bool* pfInvalid) +{ + static const int decode32_table[256] = + { + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, 0, 1, 2, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 + }; + + if (pfInvalid) + *pfInvalid = false; + + vector<unsigned char> vchRet; + vchRet.reserve((strlen(p))*5/8); + + int mode = 0; + int left = 0; + + while (1) + { + int dec = decode32_table[(unsigned char)*p]; + if (dec == -1) break; + p++; + switch (mode) + { + case 0: // we have no bits and get 5 + left = dec; + mode = 1; + break; + + case 1: // we have 5 bits and keep 2 + vchRet.push_back((left<<3) | (dec>>2)); + left = dec & 3; + mode = 2; + break; + + case 2: // we have 2 bits and keep 7 + left = left << 5 | dec; + mode = 3; + break; + + case 3: // we have 7 bits and keep 4 + vchRet.push_back((left<<1) | (dec>>4)); + left = dec & 15; + mode = 4; + break; + + case 4: // we have 4 bits, and keep 1 + vchRet.push_back((left<<4) | (dec>>1)); + left = dec & 1; + mode = 5; + break; + + case 5: // we have 1 bit, and keep 6 + left = left << 5 | dec; + mode = 6; + break; + + case 6: // we have 6 bits, and keep 3 + vchRet.push_back((left<<2) | (dec>>3)); + left = dec & 7; + mode = 7; + break; + + case 7: // we have 3 bits, and keep 0 + vchRet.push_back((left<<5) | dec); + mode = 0; + break; + } + } + + if (pfInvalid) + switch (mode) + { + case 0: // 8n base32 characters processed: ok + break; + + case 1: // 8n+1 base32 characters processed: impossible + case 3: // +3 + case 6: // +6 + *pfInvalid = true; + break; + + case 2: // 8n+2 base32 characters processed: require '======' + if (left || p[0] != '=' || p[1] != '=' || p[2] != '=' || p[3] != '=' || p[4] != '=' || p[5] != '=' || decode32_table[(unsigned char)p[6]] != -1) + *pfInvalid = true; + break; + + case 4: // 8n+4 base32 characters processed: require '====' + if (left || p[0] != '=' || p[1] != '=' || p[2] != '=' || p[3] != '=' || decode32_table[(unsigned char)p[4]] != -1) + *pfInvalid = true; + break; + + case 5: // 8n+5 base32 characters processed: require '===' + if (left || p[0] != '=' || p[1] != '=' || p[2] != '=' || decode32_table[(unsigned char)p[3]] != -1) + *pfInvalid = true; + break; + + case 7: // 8n+7 base32 characters processed: require '=' + if (left || p[0] != '=' || decode32_table[(unsigned char)p[1]] != -1) + *pfInvalid = true; + break; + } + + return vchRet; +} + +string DecodeBase32(const string& str) +{ + vector<unsigned char> vchRet = DecodeBase32(str.c_str()); + return string((const char*)&vchRet[0], vchRet.size()); +} + bool WildcardMatch(const char* psz, const char* mask) {
--- a/src/util.h +++ b/src/util.h @@ -105,6 +105,7 @@ extern std::map<std::string, std::string> mapArgs; extern std::map<std::string, std::vector<std::string> > mapMultiArgs; extern bool fDebug; +extern bool fDebugNet; extern bool fPrintToConsole; extern bool fPrintToDebugger; extern bool fRequestShutdown; @@ -146,6 +147,10 @@ std::string DecodeBase64(const std::string& str); std::string EncodeBase64(const unsigned char* pch, size_t len); std::string EncodeBase64(const std::string& str); +std::vector<unsigned char> DecodeBase32(const char* p, bool* pfInvalid = NULL); +std::string DecodeBase32(const std::string& str); +std::string EncodeBase32(const unsigned char* pch, size_t len); +std::string EncodeBase32(const std::string& str); void ParseParameters(int argc, const char*const argv[]); bool WildcardMatch(const char* psz, const char* mask); bool WildcardMatch(const std::string& str, const std::string& mask); @@ -272,7 +277,7 @@ #else timeval t; gettimeofday(&t, NULL); - nCounter = t.tv_sec * 1000000 + t.tv_usec; + nCounter = (int64) t.tv_sec * 1000000 + t.tv_usec; #endif return nCounter; }