Merge pull request #268 from svost/CloseSocket
author0xDEADFACE <masmfan@gmail.com>
Wed, 3 Feb 2016 07:45:26 +0000 (07:45 +0000)
committer0xDEADFACE <masmfan@gmail.com>
Wed, 3 Feb 2016 07:45:26 +0000 (07:45 +0000)
Add CloseSocket (bitcoin@43f510d37d680ca4347878d2fb6f8b97b54e7611)

20 files changed:
contrib/docker_builder/README.md [new file with mode: 0644]
contrib/docker_builder/dockerfile [new file with mode: 0644]
doc/crosscompiling_building Windows binary under Unix.txt
src/addrman.cpp
src/base58.h
src/bitcoinrpc.h
src/checkpoints.h
src/db.cpp
src/kernelrecord.cpp
src/main.cpp
src/main.h
src/makefile.mingw
src/net.h
src/netbase.cpp
src/netbase.h
src/ntp.cpp
src/protocol.h
src/script.h
src/serialize.h
src/version.cpp

diff --git a/contrib/docker_builder/README.md b/contrib/docker_builder/README.md
new file mode 100644 (file)
index 0000000..7526439
--- /dev/null
@@ -0,0 +1,29 @@
+# Dockerfile for building novacoin binaries.
+
+Now, you can build your own novacoin files on all systems with docker and do it easy without installing depends on your system.
+
+## How:
+
+### Build docker image
+
+```
+sudo docker build .
+```
+
+### Run docker container
+
+Builder will return HASH of image
+Example:
+Successfully built 9bbff825d50f
+
+```
+sudo docker run -it -v ~/path/to/novacoin/folder:/novacoin 9bbff825d50f
+```
+
+If your system uses SELINUX you may use --privileged=true key
+
+```
+sudo docker run --privileged=true -it -v ~/development/novacoin:/novacoin 9bbff825d50f
+```
+
+See novacoin-qt file in used novacoin folder and novacoind file in src subfolder.
\ No newline at end of file
diff --git a/contrib/docker_builder/dockerfile b/contrib/docker_builder/dockerfile
new file mode 100644 (file)
index 0000000..cce3771
--- /dev/null
@@ -0,0 +1,38 @@
+FROM ubuntu:latest
+
+# Install deps
+RUN apt-get update -y              \
+ &&  apt-get install -y             \
+  qt4-qmake                    \
+  libqt4-dev                   \
+  build-essential              \
+  libboost-dev                 \
+  libboost-system-dev          \
+  libboost-filesystem-dev      \
+  libboost-program-options-dev \ 
+  libboost-thread-dev          \
+  libssl-dev                   \
+  libdb++-dev                  \
+  libqrencode-dev              \
+  wget                         \
+  pkg-config                   \
+  libpng3-dev
+                         
+
+RUN wget http://fukuchi.org/works/qrencode/qrencode-3.4.4.tar.gz; tar zxf ./qrencode-3.4.4.tar.gz 
+WORKDIR /qrencode-3.4.4
+RUN ./configure --enable-static; \ 
+  make; \
+  make install
+
+VOLUME /novacoin
+
+WORKDIR /novacoin
+
+ENTRYPOINT qmake USE_O3=1 USE_ASM=1 RELEASE=1 && \
+ make && \
+ cd src && \
+ make -f makefile.unix USE_O3=1 USE_ASM=1 STATIC=1 && \
+ strip novacoind
+
index 54bc8c9..5c0a38e 100644 (file)
 
 2.1) gcc
  cd /home/<ваше имя>/mxe
- make gcc zlib
+ make gcc zlib libpng
 
 Проверка того, что установка gcc прошла успешно:
 В папке /home/<ваше имя>/mxe/usr/bin должен появиться файл i686-w64-mingw32.static-gcc и i686-w64-mingw32.static-g++
 И при запуске ./i686-w64-mingw32.static-gcc -v должно выдаваться
 ......
 Thread model: win32
-gcc version 4.9.2 (GCC)
+gcc version 4.9.3 (GCC)
 
-В папке /home/<ваше имя>/mxe/usr/i686-w64-mingw32.static/lib должен быть файл:
+В папке /home/<ваше имя>/mxe/usr/i686-w64-mingw32.static/lib должны быть файлы:
 libz.a
+libpng.a
 
 2.2) Openssl
  
@@ -67,31 +68,13 @@ libdb.a
 libdb_cxx.a
 
 2.5) qrencode
--Скачайте http://download.sourceforge.net/libpng/libpng-1.6.15.tar.gz?download
--Распакуйте в домашнюю папку
--Откройте терминал
-
- export PATH=/home/<ваше имя>/mxe/usr/bin:$PATH
- cd /home/<ваше имя>/libpng-1.6.15
- ./configure --host=i686-w64-mingw32.static --disable-shared
- make
- cp .libs/libpng16.a .libs/libpng.a
-
-Проверка что libpng собралась успешно:
-в папке /home/<ваше имя>/libpng-1.6.15/.libs должен быть файл:
-libpng.a
-
 -Скачайте http://fukuchi.org/works/qrencode/qrencode-3.4.4.tar.gz
 -Распакуйте в домашнюю папку
--Откройте терминал
+-Откройте терминал:
+
  export PATH=/home/<ваше имя>/mxe/usr/bin:$PATH
  cd /home/<ваше имя>/qrencode-3.4.4
-
- LIBS="../libpng-1.6.15/.libs/libpng.a ../mxe/usr/i686-w64-mingw32.static/lib/libz.a" \
- png_CFLAGS="-I../libpng-1.6.15" \
- png_LIBS="-L../libpng-1.6.15/.libs" \
  ./configure --host=i686-w64-mingw32.static --enable-static --disable-shared --without-tools
-
  make
 
 Проверка что qrencode успешно собралась:
@@ -114,7 +97,7 @@ Qt 4
 
 -Должно появиться в ответ
 QMake version 2.01a
-Using Qt version 4.8.6 in /home/<ваше имя>/mxe/usr/i686-w64-mingw32.static/qt/lib
+Using Qt version 4.8.7 in /home/<ваше имя>/mxe/usr/i686-w64-mingw32.static/qt/lib
 
 Qt 5
 -Откройте терминал
@@ -131,7 +114,7 @@ Qt 5
 
 -Должно появиться в ответ
 QMake version 3.0
-Using Qt version 5.4.0 in /home/<ваше имя>/mxe/usr/i686-w64-mingw32.static/qt5/lib
+Using Qt version 5.5.1 in /home/<ваше имя>/mxe/usr/i686-w64-mingw32.static/qt5/lib
 
 3. Компиляция
 
@@ -150,16 +133,14 @@ CXX=$(CROSS)g++
 -Поменяйте текущие INCLUDEPATHS, LIBPATHS, LIBS на:
 
 BOOST_SUFFIX?=-mt
+BOOST_THREAD_LIB_SUFFIX?=_win32-mt
 
 INCLUDEPATHS= \
  -I"$(CURDIR)" \
- -I"/home/<ваше имя>/mxe/usr/i686-w64-mingw32.static/include" \
- -I"/home/<ваше имя>/" \
  -I"/home/<ваше имя>/db-6.0.20/build_unix" \
  
 LIBPATHS= \
  -L"$(CURDIR)/leveldb" \
- -L"/home/<ваше имя>/mxe/usr/i686-w64-mingw32.static/lib" \
  -L"/home/<ваше имя>/db-6.0.20/build_unix" \
 
 LIBS= \
@@ -168,14 +149,13 @@ LIBS= \
   -l boost_system$(BOOST_SUFFIX) \
   -l boost_filesystem$(BOOST_SUFFIX) \
   -l boost_program_options$(BOOST_SUFFIX) \
-  -l boost_thread$(BOOST_SUFFIX) \
+  -l boost_thread$(BOOST_THREAD_LIB_SUFFIX) \
   -l boost_chrono$(BOOST_SUFFIX) \
   -l db_cxx \
   -l ssl \
   -l crypto \
-  -l z
--Поменяйте LDFLAGS=-Wl,--dynamicbase -Wl,--nxcompat на 
-LDFLAGS=-Wl,--dynamicbase -Wl,--nxcompat -Wl,--large-address-aware -static
+  -l z \
+  -l pthread
 
 -Поменяйте в последних строчках makefile.mingw
 g++ -c $(CFLAGS) -o $@ $<
@@ -203,19 +183,27 @@ cd leveldb; make; cd ..
 на 
 cd leveldb; TARGET_OS=NATIVE_WINDOWS make CROSS=i686-w64-mingw32.static- libleveldb.a libmemenv.a; cd ..
 
-Ещё измените
-obj/txdb-leveldb.o: leveldb/libleveldb.lib
+Если вы хотите использовать BerkeleyDB как базу блоков, то просто удалите строчку USE_LEVELDB:=1
+
+Измените
+clean:
+       -del /Q novacoind.exe
+       -del /Q obj\*
+       -del /Q crypto\scrypt\asm\obj\*
+
 на
-obj/txdb-leveldb.o: leveldb/libleveldb.a
 
-Если вы хотите использовать BerkeleyDB как базу блоков, то просто удалите строчку USE_LEVELDB:=1
+clean:
+       -rm novacoind.exe
+       -rm obj/*
+       -rm crypto/scrypt/asm/obj/*
 
 -Сохраните измененный файл makefile.mingw
 
 -Откройте терминал
 cd /home/<ваше имя>/novacoin/src
 export PATH=/home/<ваше имя>/mxe/usr/bin:$PATH
-make CROSS=i686-w64-mingw32.static- -f makefile.mingw
+make -j n CROSS=i686-w64-mingw32.static- -f makefile.mingw (вместо n количество ядер вашего процессора, которые вы хотите выделить под сборку)
 strip novacoind.exe
 
 
@@ -231,7 +219,7 @@ libboost_thread_win32-mt.a(thread.o): duplicate section `.rdata$_ZTVN5boost16exc
 -Откройте терминал и выполните следующие команды:
 export PATH=/home/<ваше имя>/mxe/usr/bin:$PATH
 cd /home/<ваше имя>/novacoin/src/leveldb
-TARGET_OS=NATIVE_WINDOWS make CROSS=i686-w64-mingw32.static- libleveldb.a libmemenv.a;
+TARGET_OS=NATIVE_WINDOWS make CROSS=i686-w64-mingw32.static- libleveldb.a libmemenv.a
 
 -Откройте файл /home/<ваше имя>/novacoin/novacoin-qt.pro в текстовом редакторе(при написании инструкции использовался Pluma 1.8.1)
 -Ниже 
@@ -241,12 +229,9 @@ TARGET_OS=NATIVE_WINDOWS make CROSS=i686-w64-mingw32.static- libleveldb.a libmem
 замените прописанные пути к зависимостям на
 
 BOOST_LIB_SUFFIX=-mt
-BOOST_INCLUDE_PATH=/home/<ваше имя>/mxe/usr/i686-w64-mingw32.static/include
-BOOST_LIB_PATH=/home/<ваше имя>/mxe/usr/i686-w64-mingw32.static/lib
+BOOST_THREAD_LIB_SUFFIX=_win32-mt
 BDB_INCLUDE_PATH=/home/<ваше имя>/db-6.0.20/build_unix
-BDB_LIB_PATH=//home/<ваше имя>/db-6.0.20/build_unix
-OPENSSL_INCLUDE_PATH=/home/<ваше имя>/mxe/usr/i686-w64-mingw32.static/include
-OPENSSL_LIB_PATH=/home/<ваше имя>/mxe/usr/i686-w64-mingw32.static/lib
+BDB_LIB_PATH=/home/<ваше имя>/db-6.0.20/build_unix
 QRENCODE_INCLUDE_PATH=/home/<ваше имя>/qrencode-3.4.4
 QRENCODE_LIB_PATH=/home/<ваше имя>/qrencode-3.4.4/.libs
 
@@ -271,16 +256,6 @@ win32:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]\\lrelease.exe
 на
 win32:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease
 
-Измените
-LIBS += -lboost_system$$BOOST_LIB_SUFFIX -lboost_filesystem$$BOOST_LIB_SUFFIX -lboost_program_options$$BOOST_LIB_SUFFIX -lboost_thread$$BOOST_THREAD_LIB_SUFFIX
-на
-LIBS += -lboost_system$$BOOST_LIB_SUFFIX -lboost_filesystem$$BOOST_LIB_SUFFIX -lboost_program_options$$BOOST_LIB_SUFFIX -lboost_thread_win32$$BOOST_THREAD_LIB_SUFFIX
-
-Измените
-windows:LIBS += -lboost_chrono$$BOOST_LIB_SUFFIX -Wl,-Bstatic -lpthread -Wl,-Bdynamic
-на
-windows:LIBS += -lboost_chrono$$BOOST_LIB_SUFFIX
-
 -Сохраните измененный файл novacoin-qt.pro
 -Откройте терминал и выполните следующие команды
 
index 6676f62..ed17c39 100644 (file)
@@ -43,13 +43,13 @@ bool CAddrInfo::IsTerrible(int64_t nNow) const
     if (nTime > nNow + 10*60) // came in a flying DeLorean
         return true;
 
-    if (nTime==0 || nNow-nTime > ADDRMAN_HORIZON_DAYS*86400) // not seen in over a month
+    if (nTime==0 || nNow-nTime > ADDRMAN_HORIZON_DAYS*nOneDay) // not seen in over a month
         return true;
 
     if (nLastSuccess==0 && nAttempts>=ADDRMAN_RETRIES) // tried three times and never a success
         return true;
 
-    if (nNow-nLastSuccess > ADDRMAN_MIN_FAIL_DAYS*86400 && nAttempts>=ADDRMAN_MAX_FAILURES) // 10 successive failures in the last week
+    if (nNow-nLastSuccess > ADDRMAN_MIN_FAIL_DAYS*nOneDay && nAttempts>=ADDRMAN_MAX_FAILURES) // 10 successive failures in the last week
         return true;
 
     return false;
index 9a4085d..b8a0e45 100644 (file)
@@ -102,7 +102,7 @@ public:
         PUBKEY_ADDRESS = 8,
         SCRIPT_ADDRESS = 20,
         PUBKEY_ADDRESS_TEST = 111,
-        SCRIPT_ADDRESS_TEST = 196,
+        SCRIPT_ADDRESS_TEST = 196
     };
 
     bool Set(const CKeyID &id);
index ad64a84..dcf0863 100644 (file)
@@ -27,7 +27,7 @@ enum HTTPStatusCode
     HTTP_UNAUTHORIZED          = 401,
     HTTP_FORBIDDEN             = 403,
     HTTP_NOT_FOUND             = 404,
-    HTTP_INTERNAL_SERVER_ERROR = 500,
+    HTTP_INTERNAL_SERVER_ERROR = 500
 };
 
 // Bitcoin RPC error codes
@@ -63,7 +63,7 @@ enum RPCErrorCode
     RPC_WALLET_PASSPHRASE_INCORRECT = -14, // The wallet passphrase entered was incorrect
     RPC_WALLET_WRONG_ENC_STATE      = -15, // Command given in wrong wallet encryption state (encrypting an encrypted wallet etc.)
     RPC_WALLET_ENCRYPTION_FAILED    = -16, // Failed to encrypt the wallet
-    RPC_WALLET_ALREADY_UNLOCKED     = -17, // Wallet is already unlocked
+    RPC_WALLET_ALREADY_UNLOCKED     = -17  // Wallet is already unlocked
 };
 
 json_spirit::Object JSONRPCError(int code, const std::string& message);
index 135838d..347b2d0 100644 (file)
@@ -8,7 +8,8 @@
 #include "util.h"
 #include "net.h"
 
-#define CHECKPOINT_MAX_SPAN (60 * 60) // max 1 hour before latest block
+// max 1 hour before latest block
+static const int64_t CHECKPOINT_MAX_SPAN = nOneHour;
 
 #ifdef WIN32
 #undef STRICT
index d857cf0..5005e69 100644 (file)
@@ -226,7 +226,7 @@ bool CDBEnv::Salvage(std::string strFile, bool fAggressive,
     while (!strDump.eof() && keyHex != "DATA=END")
     {
         getline(strDump, keyHex);
-        if (keyHex != "DATA_END")
+        if (keyHex != "DATA=END")
         {
             getline(strDump, valueHex);
             vResult.push_back(make_pair(ParseHex(keyHex),ParseHex(valueHex)));
index bf05268..a9a2e8e 100644 (file)
@@ -47,7 +47,7 @@ vector<KernelRecord> KernelRecord::decomposeOutput(const CWallet *wallet, const
                 CTxDestination address;
                 std::string addrStr;
 
-                uint64_t coinAge = max( (txOut.nValue * nDayWeight) / (COIN * 86400), (int64_t)0);
+                uint64_t coinAge = max( (txOut.nValue * nDayWeight) / (COIN * nOneDay), 0LL);
 
                 if (ExtractDestination(txOut.scriptPubKey, address))
                 {
@@ -75,7 +75,7 @@ std::string KernelRecord::getTxID()
 
 int64_t KernelRecord::getAge() const
 {
-    return (GetAdjustedTime() - nTime) / 86400;
+    return (GetAdjustedTime() - nTime) / nOneDay;
 }
 
 uint64_t KernelRecord::getCoinDay() const
@@ -84,7 +84,7 @@ uint64_t KernelRecord::getCoinDay() const
     if( nWeight <  0)
         return 0;
     nWeight = min(nWeight, (int64_t)nStakeMaxAge);
-    uint64_t coinAge = (nValue * nWeight ) / (COIN * 86400);
+    uint64_t coinAge = (nValue * nWeight ) / (COIN * nOneDay);
     return coinAge;
 }
 
@@ -94,7 +94,7 @@ int64_t KernelRecord::getPoSReward(int nBits, int minutes)
     int64_t nWeight = GetAdjustedTime() - nTime + minutes * 60;
     if( nWeight <  nStakeMinAge)
         return 0;
-    uint64_t coinAge = (nValue * nWeight ) / (COIN * 86400);
+    uint64_t coinAge = (nValue * nWeight ) / (COIN * nOneDay);
     PoSReward = GetProofOfStakeReward(coinAge, nBits, GetAdjustedTime() + minutes * 60);
     return PoSReward;
 }
@@ -107,7 +107,7 @@ double KernelRecord::getProbToMintStake(double difficulty, int timeOffset) const
     //uint64_t coinAge = max(nValue * dayWeight / COIN, (int64_t)0);
     //return target * coinAge / pow(static_cast<double>(2), 256);
     int64_t Weight = (min((GetAdjustedTime() - nTime) + timeOffset, (int64_t)(nStakeMinAge+nStakeMaxAge)) - nStakeMinAge);
-    uint64_t coinAge = max(nValue * Weight / (COIN * 86400), (int64_t)0);
+    uint64_t coinAge = max(nValue * Weight / (COIN * nOneDay), 0LL);
     return coinAge / (pow(static_cast<double>(2),32) * difficulty);
 }
 
@@ -124,13 +124,13 @@ double KernelRecord::getProbToMintWithinNMinutes(double difficulty, int minutes)
         // Probabilities for the first d days
         for(i = 0; i < d; i++)
         {
-            timeOffset = i * 86400;
-            p = pow(1 - getProbToMintStake(difficulty, timeOffset), 86400);
+            timeOffset = i * nOneDay;
+            p = pow(1 - getProbToMintStake(difficulty, timeOffset), nOneDay);
             prob *= p;
         }
 
         // Probability for the m minutes of the last day
-        timeOffset = d * 86400;
+        timeOffset = d * nOneDay;
         p = pow(1 - getProbToMintStake(difficulty, timeOffset), 60 * m);
         prob *= p;
 
index f6adb17..3cf5d0d 100644 (file)
@@ -7,7 +7,6 @@
 #include "checkpoints.h"
 #include "db.h"
 #include "txdb.h"
-#include "net.h"
 #include "init.h"
 #include "ui_interface.h"
 #include "checkqueue.h"
index 5ecc490..8bc6a7d 100644 (file)
@@ -427,7 +427,7 @@ enum GetMinFee_mode
 {
     GMF_BLOCK,
     GMF_RELAY,
-    GMF_SEND,
+    GMF_SEND
 };
 
 typedef std::map<uint256, std::pair<CTxIndex, CTransaction> > MapPrevTx;
@@ -1176,7 +1176,7 @@ public:
     {
         BLOCK_PROOF_OF_STAKE = (1 << 0), // is proof-of-stake block
         BLOCK_STAKE_ENTROPY  = (1 << 1), // entropy bit for stake modifier
-        BLOCK_STAKE_MODIFIER = (1 << 2), // regenerated stake modifier
+        BLOCK_STAKE_MODIFIER = (1 << 2)  // regenerated stake modifier
     };
 
     uint64_t nStakeModifier; // hash modifier for proof-of-stake
index 67e6a0b..feacdef 100644 (file)
@@ -150,7 +150,7 @@ novacoind.exe: $(OBJS:obj/%=obj/%)
        g++ $(CFLAGS) $(LDFLAGS) -o $@ $(LIBPATHS) $^ $(LIBS)
 
 clean:
-       -del /Q novacoind
+       -del /Q novacoind.exe
        -del /Q obj\*
        -del /Q crypto\scrypt\asm\obj\*
 
index b12750c..a98a416 100644 (file)
--- a/src/net.h
+++ b/src/net.h
@@ -19,7 +19,6 @@
 
 #include "mruset.h"
 #include "netbase.h"
-#include "protocol.h"
 #include "addrman.h"
 #include "hash.h"
 
@@ -77,7 +76,7 @@ CAddress GetLocalAddress(const CNetAddr *paddrPeer = NULL);
 enum
 {
     MSG_TX = 1,
-    MSG_BLOCK,
+    MSG_BLOCK
 };
 
 class CRequestTracker
index 7cc3fb0..a9caddf 100644 (file)
@@ -359,8 +359,9 @@ bool static ConnectSocketDirectly(const CService &addrConnect, SOCKET& hSocketRe
 
     if (connect(hSocket, (struct sockaddr*)&sockaddr, len) == SOCKET_ERROR)
     {
+        int nErr = WSAGetLastError();
         // WSAEINVAL is here because some legacy version of winsock uses it
-        if (WSAGetLastError() == WSAEINPROGRESS || WSAGetLastError() == WSAEWOULDBLOCK || WSAGetLastError() == WSAEINVAL)
+        if (nErr == WSAEINPROGRESS || nErr == WSAEWOULDBLOCK || nErr == WSAEINVAL)
         {
             struct timeval timeout;
             timeout.tv_sec  = nTimeout / 1000;
index 5e63d2f..0f562ca 100644 (file)
@@ -25,7 +25,7 @@ enum Network
     NET_TOR,
     NET_I2P,
 
-    NET_MAX,
+    NET_MAX
 };
 
 extern int nConnectTimeout;
index c4f9f55..64fd46c 100644 (file)
@@ -445,7 +445,7 @@ int64_t GetNtpOffset() {
 }
 
 void ThreadNtpSamples(void* parg) {
-    const int64_t nMaxOffset = 86400; // Not a real limit, just sanity threshold.
+    const int64_t nMaxOffset = nOneDay; // Not a real limit, just sanity threshold.
 
     printf("Trying to find NTP server at localhost...\n");
 
index 75c24d8..519cdc2 100644 (file)
@@ -68,7 +68,7 @@ class CMessageHeader
 /** nServices flags */
 enum
 {
-    NODE_NETWORK = (1 << 0),
+    NODE_NETWORK = (1 << 0)
 };
 
 /** A CService with information about it as peer */
index 0b94f41..ff289a5 100644 (file)
@@ -36,7 +36,7 @@ enum
     SIGHASH_ALL = 1,
     SIGHASH_NONE = 2,
     SIGHASH_SINGLE = 3,
-    SIGHASH_ANYONECANPAY = 0x80,
+    SIGHASH_ANYONECANPAY = 0x80
 };
 
 /** Script verification flags */
@@ -47,7 +47,7 @@ enum
     SCRIPT_VERIFY_STRICTENC = (1U << 1), // enforce strict conformance to DER and SEC2 for signatures and pubkeys
     SCRIPT_VERIFY_LOW_S     = (1U << 2), // enforce low S values in signatures (depends on STRICTENC)
     SCRIPT_VERIFY_NOCACHE   = (1U << 3), // do not store results in signature cache (but do query it)
-    SCRIPT_VERIFY_NULLDUMMY = (1U << 4), // verify dummy stack item consumed by CHECKMULTISIG is of zero-length
+    SCRIPT_VERIFY_NULLDUMMY = (1U << 4)  // verify dummy stack item consumed by CHECKMULTISIG is of zero-length
 };
 
 // Strict verification:
@@ -79,7 +79,7 @@ enum txnouttype
     TX_PUBKEYHASH,
     TX_SCRIPTHASH,
     TX_MULTISIG,
-    TX_NULL_DATA,
+    TX_NULL_DATA
 };
 
 const char* GetTxnOutputType(txnouttype t);
@@ -228,7 +228,7 @@ enum opcodetype
     OP_PUBKEYHASH = 0xfd,
     OP_PUBKEY = 0xfe,
 
-    OP_INVALIDOPCODE = 0xff,
+    OP_INVALIDOPCODE = 0xff
 };
 
 const char* GetOpName(opcodetype opcode);
index f3b5a70..7eb17c8 100644 (file)
@@ -58,7 +58,7 @@ enum
 
         // modifiers
         SER_SKIPSIG = (1 << 16),
-        SER_BLOCKHEADERONLY = (1 << 17),
+        SER_BLOCKHEADERONLY = (1 << 17)
 
 };
 
index 8e74499..e5d592d 100644 (file)
@@ -18,6 +18,10 @@ const std::string CLIENT_NAME("Satoshi");
 #endif
 
 // Compiler name
+#if defined(__GNUC__) && defined(__INTEL_COMPILER)
+/*code specific to linux icc compiler*/
+#define CL_NAME   "-icc"
+#else
 #ifdef __GNUC__
 /*code for GNU C compiler */
 #define CL_NAME   "-gcc"
@@ -35,6 +39,7 @@ const std::string CLIENT_NAME("Satoshi");
 #define CL_NAME   "-genericcl"
 /*others*/
 #endif
+#endif
 
 // The following part of the code determines the CLIENT_BUILD variable.
 // Several mechanisms are used for this: