diff options
| author | Gavin Andresen <[email protected]> | 2010-12-16 11:36:47 -0500 |
|---|---|---|
| committer | Gavin Andresen <[email protected]> | 2010-12-16 11:36:47 -0500 |
| commit | 55c43da5d8606f7abd22ee7af290cf10bb865f6a (patch) | |
| tree | a22f32914f658d3dd713995ebc05bb45cee1bbd7 /irc.cpp | |
| parent | Merge remote branch 'refs/remotes/svn/trunk' into svn (diff) | |
| parent | New RPC command: listaccounts. New RPC setting -rpctimeout. And listtransac... (diff) | |
| download | discoin-55c43da5d8606f7abd22ee7af290cf10bb865f6a.tar.xz discoin-55c43da5d8606f7abd22ee7af290cf10bb865f6a.zip | |
Merge remote branch 'refs/remotes/svn/trunk' into svn
Diffstat (limited to 'irc.cpp')
| -rw-r--r-- | irc.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
@@ -5,6 +5,7 @@ #include "headers.h" int nGotIRCAddresses = 0; +bool fGotExternalIP = false; void ThreadIRCSeed2(void* parg); @@ -223,6 +224,8 @@ bool GetIPFromIRC(SOCKET hSocket, string strMyName, unsigned int& ipRet) } else { + // Hybrid IRC used by lfnet always returns IP when you userhost yourself, + // but in case another IRC is ever used this should work. printf("GetIPFromIRC() got userhost %s\n", strHost.c_str()); if (fUseProxy) return false; @@ -327,14 +330,15 @@ void ThreadIRCSeed2(void* parg) } Sleep(500); - // Get my external IP from IRC server + // Get our external IP from the IRC server and re-nick before joining the channel CAddress addrFromIRC; if (GetIPFromIRC(hSocket, strMyName, addrFromIRC.ip)) { - // Just using it as a backup for now printf("GetIPFromIRC() returned %s\n", addrFromIRC.ToStringIP().c_str()); - if (addrFromIRC.IsRoutable() && !fUseProxy && !addrLocalHost.IsRoutable()) + if (!fUseProxy && addrFromIRC.IsRoutable()) { + // IRC lets you to re-nick + fGotExternalIP = true; addrLocalHost.ip = addrFromIRC.ip; strMyName = EncodeAddress(addrLocalHost); Send(hSocket, strprintf("NICK %s\r", strMyName.c_str()).c_str()); |