Код:
дифференциал --git а / б / main.cpp main.cpp
Индекс b7dfd9f..cb4fad6 100644
--- а / main.cpp
+++ б / main.cpp
@@ -2290,6 +2290,10 @@ BOOL ProcessMessage (CNode * pfrom, строка strCommand, CDataStream& vRecv)
возвращает истину;
}
+ // стесняться и не посылают версию, пока мы не услышим
+ если (pfrom->fInbound)
+ pfrom->PushVersion ();
+
pfrom->fClient =! (pfrom->nServices & NODE_NETWORK);
AddTimeData (pfrom->addr.ip, Ntime);
дифференциал --git а / net.h б / net.h
Индекс f070816..12e415b 100644
--- а / net.h
+++ б / net.h
@@ -571,14 +571,9 @@ общественности:
fGetAddr = ложь;
vfSubscribe.assign (256, ложь);
- // Поместить сообщение версии
- /// когда NTP реализована, изменение только NTime = GetAdjustedTime ()
- Int64 Ntime = (fInbound GetAdjustedTime (): GetTime ());
- CAddress addrYou = (fUseProxy? CAddress ("0.0.0.0"): Адр);
- CAddress addrMe = (fUseProxy? CAddress ("0.0.0.0"): AddrLocalHost);
- RAND_bytes ((неподписанные символ *)&nLocalHostNonce, SizeOf (nLocalHostNonce));
- PushMessage ("версия", Версия, nLocalServices, NTime, addrYou, addrMe,
- nLocalHostNonce, строка (pszSubVer), nBestHeight);
+ // стесняться и не посылают версию, пока мы не услышим
+ если (! fInbound)
+ PushVersion ();
}
~ CNode ()
@@ -735,6 +730,19 @@ общественности:
+ аннулированию PushVersion ()
+ {
+ /// когда NTP реализована, изменение только NTime = GetAdjustedTime ()
+ Int64 Ntime = (fInbound GetAdjustedTime (): GetTime ());
+ CAddress addrYou = (fUseProxy? CAddress ("0.0.0.0"): Адр);
+ CAddress addrMe = (fUseProxy? CAddress ("0.0.0.0"): AddrLocalHost);
+ RAND_bytes ((неподписанные символ *)&nLocalHostNonce, SizeOf (nLocalHostNonce));
+ PushMessage ("версия", Версия, nLocalServices, NTime, addrYou, addrMe,
+ nLocalHostNonce, строка (pszSubVer), nBestHeight);
+ }
+
+
+
недействительным PushMessage (Const символ * pszCommand)
{
Я заметил, что переменная nLocalHostNonce используется для обнаружения подключения к Ourself. Но я не уверен, что это работает, потому что мы (повторно) рандомизация nLocalHostNonce на входящем соединении, прежде чем мы сравниваем с входящей версией сообщением. Таким образом, даже если мы подключаемся к Ourself, nLocalHostNonce не будет соответствовать. Застенчивый патч должен исправить это.