mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-01-18 22:35:39 +01:00
This introduces CNetAddr and CService, respectively wrapping an
(IPv6) IP address and an IP+port combination. This functionality used
to be part of CAddress, which also contains network flags and
connection attempt information. These extra fields are however not
always necessary.
These classes, along with logic for creating connections and doing
name lookups, are moved to netbase.{h,cpp}, which does not depend on
headers.h.
Furthermore, CNetAddr is mostly IPv6-ready, though IPv6
functionality is not yet enabled for the application itself.
95 lines
1.9 KiB
C++
95 lines
1.9 KiB
C++
// Copyright (c) 2009-2010 Satoshi Nakamoto
|
|
// Copyright (c) 2011 The Bitcoin developers
|
|
// Distributed under the MIT/X11 software license, see the accompanying
|
|
// file license.txt or http://www.opensource.org/licenses/mit-license.php.
|
|
|
|
#ifdef _MSC_VER
|
|
#pragma warning(disable:4786)
|
|
#pragma warning(disable:4804)
|
|
#pragma warning(disable:4805)
|
|
#pragma warning(disable:4717)
|
|
#endif
|
|
#ifdef _WIN32_WINNT
|
|
#undef _WIN32_WINNT
|
|
#endif
|
|
#define _WIN32_WINNT 0x0501
|
|
#ifdef _WIN32_IE
|
|
#undef _WIN32_IE
|
|
#endif
|
|
#define _WIN32_IE 0x0400
|
|
#define WIN32_LEAN_AND_MEAN 1
|
|
|
|
// Include boost/foreach here as it defines __STDC_LIMIT_MACROS on some systems.
|
|
#include <boost/foreach.hpp>
|
|
|
|
#if (defined(__unix__) || defined(unix)) && !defined(USG)
|
|
#include <sys/param.h> // to get BSD define
|
|
#endif
|
|
#ifdef MAC_OSX
|
|
#ifndef BSD
|
|
#define BSD 1
|
|
#endif
|
|
#endif
|
|
#include <openssl/buffer.h>
|
|
#include <openssl/ecdsa.h>
|
|
#include <openssl/evp.h>
|
|
#include <openssl/rand.h>
|
|
#include <openssl/sha.h>
|
|
#include <openssl/ripemd.h>
|
|
#include <db_cxx.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <time.h>
|
|
#include <math.h>
|
|
#include <float.h>
|
|
#include <assert.h>
|
|
#include <iostream>
|
|
#include <sstream>
|
|
#include <string>
|
|
#include <vector>
|
|
#include <list>
|
|
#include <deque>
|
|
#include <map>
|
|
|
|
#ifdef WIN32
|
|
#include <windows.h>
|
|
#include <winsock2.h>
|
|
#include <mswsock.h>
|
|
#include <shlobj.h>
|
|
#include <shlwapi.h>
|
|
#include <io.h>
|
|
#include <process.h>
|
|
#include <malloc.h>
|
|
#else
|
|
#include <sys/time.h>
|
|
#include <sys/resource.h>
|
|
#include <sys/socket.h>
|
|
#include <sys/stat.h>
|
|
#include <arpa/inet.h>
|
|
#include <netdb.h>
|
|
#include <unistd.h>
|
|
#include <errno.h>
|
|
#include <net/if.h>
|
|
#include <ifaddrs.h>
|
|
#include <fcntl.h>
|
|
#include <signal.h>
|
|
#endif
|
|
#ifdef BSD
|
|
#include <netinet/in.h>
|
|
#endif
|
|
|
|
|
|
#pragma hdrstop
|
|
|
|
#include "serialize.h"
|
|
#include "uint256.h"
|
|
#include "util.h"
|
|
#include "bignum.h"
|
|
#include "base58.h"
|
|
#include "main.h"
|
|
#ifdef QT_GUI
|
|
#include "qtui.h"
|
|
#else
|
|
#include "noui.h"
|
|
#endif
|