-
Notifications
You must be signed in to change notification settings - Fork 38.6k
Get ext. IP from UPnP, make sure addrMe IsRoutable() in version. #817
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
0.5.X version: TheBlueMatt@a910838 |
This fixes a potential bug where some NATs may replace the node's interal IP with its external IP in version messages, causing incorrect checksums when version messages begin being checksummed on February 14, 2012.
|
This is a good idea regardless of the NAT issue. There is no reason to leak internal non-routable addresses in version messages, and that part of the patch is clearly safe because using a proxy has the same effect (also because we don't actually do anything with that data). Using UPNP to get our external IP is also a good idea. The current dependance on centralized address identifying services is a bad one. |
|
ACK |
1 similar comment
|
ACK |
|
ACK, took me a while to setup upnp to test this. |
Get ext. IP from UPnP, make sure addrMe IsRoutable() in version.
Get ext. IP from UPnP, make sure addrMe IsRoutable() in version.
- Terrible bug which caused governance objects to have their hashes corrupted, causing objects to become invalid - More proposal -> governance name changes
* Uncache any valid coins when trimming the orphan cache * Only remove coins from the coins cache if they failed to enter the mempool However, do not remove them if the txn was an Orphan. We need to keep orphaned coins until and unless those orphans get trimmed from the orphan cache. * Update log message when checkinputs fails for a tx * fMissingInputs must be defined when calling AcceptToMemoryPool * Add UncacheTx() to Coins.cpp and use it * UnCache coins when txns are expired from the mempool * Add more detailed explanation about how vCoinsToUncache works. It's not entirely intuitive as to why the tracking happens at this point in AcceptToMemoryPoolWorker(). * Remove unnecessary if(pfMissingInputs) This clarifies the intent of the code. If we're missing inputs then this is an orphan and we don't want to uncache the coins. * Make sure to cache all coins in an orphan Some orphans may have valid inputs and one or more missing inputs. Make sure to get the valid ones into cache before returning from AcceptToMemoryPoolWorker(). * Add tests for uncaching coins Disable mocktime at end of test move txvalidationcache_tests.cpp to the original place in the Makefile Make nLastOrphanCheck and extern and use it When we use EraseOrphanByTime() in the test suite we must set the nLastOrphanCheck time also otherwise tests that run earlier can impact tests that run afterward resulting in orphans that do not get erased when they should be. * Handle pfMissingInputs if passed as a NULL. * formatting * change where *pfMissingIputs is set to false
This fixes a potential bug where some NATs may replace the node's
interal IP with its external IP in version messages, causing
incorrect checksums when version messages begin being checksummed
on February 14, 2012.