{"push_id":561380536,"size":16,"distinct_size":16,"ref":"refs/heads/master","head":"9384424173f648beb9ac56f8713766d2c388075e","before":"5da492b9e5de6c6bc9db18cca910f2b3578b194a","commits":[{"sha":"59373f9bdf513f09a20d71eca424d34dd9018989","author":{"email":"40fa37ec00c761c7dbb6ebdee6d4a260b922f5f4@mail.i2p","name":"zzz"},"message":"UPnP:\n  - Rescan for devices periodically and when reachability changes (tickets #661, #959)\n  - Don't put \"I2P\" in registered protocol name\n  - Add uptime to UPnP info\n  - HTML escaping\n  - Remove static log on Android\n  - Javadocs and cleanups","distinct":true,"url":"https://api.github.com/repos/i2p/i2p.i2p/commits/59373f9bdf513f09a20d71eca424d34dd9018989"},{"sha":"d5a6ac591c687523de92ba9ced56ec51c1ca9b3e","author":{"email":"40fa37ec00c761c7dbb6ebdee6d4a260b922f5f4@mail.i2p","name":"zzz"},"message":"more UPnP locking fixes","distinct":true,"url":"https://api.github.com/repos/i2p/i2p.i2p/commits/d5a6ac591c687523de92ba9ced56ec51c1ca9b3e"},{"sha":"e5801be43ed555fd55970ab8af37a02c6107ae09","author":{"email":"40fa37ec00c761c7dbb6ebdee6d4a260b922f5f4@mail.i2p","name":"zzz"},"message":"only use valid IP for geoIP","distinct":true,"url":"https://api.github.com/repos/i2p/i2p.i2p/commits/e5801be43ed555fd55970ab8af37a02c6107ae09"},{"sha":"47a012a4dd01b7e5b6d7629651caa456056d2613","author":{"email":"40fa37ec00c761c7dbb6ebdee6d4a260b922f5f4@mail.i2p","name":"zzz"},"message":"initialize blocklist sooner","distinct":true,"url":"https://api.github.com/repos/i2p/i2p.i2p/commits/47a012a4dd01b7e5b6d7629651caa456056d2613"},{"sha":"33b58f5fab141463603984433987a9444be6198b","author":{"email":"40fa37ec00c761c7dbb6ebdee6d4a260b922f5f4@mail.i2p","name":"zzz"},"message":"UPnP:\n  - Callback when device removed\n  - Consolidate callbacks\n  - Clear ignored devices after primary device removed\n    to allow one to be promoted on rescan","distinct":true,"url":"https://api.github.com/repos/i2p/i2p.i2p/commits/33b58f5fab141463603984433987a9444be6198b"},{"sha":"06edb9f2a6749b0cf68cbb1e736a8bc2fdb3c024","author":{"email":"40fa37ec00c761c7dbb6ebdee6d4a260b922f5f4@mail.i2p","name":"zzz"},"message":"Router: Stub out capabilities P and X (ticket #1447)","distinct":true,"url":"https://api.github.com/repos/i2p/i2p.i2p/commits/06edb9f2a6749b0cf68cbb1e736a8bc2fdb3c024"},{"sha":"5bf515441ee23545e04de39ef3e5dc51044f15a5","author":{"email":"40fa37ec00c761c7dbb6ebdee6d4a260b922f5f4@mail.i2p","name":"zzz"},"message":"Router: Ensure nonzero tunnel IDs","distinct":true,"url":"https://api.github.com/repos/i2p/i2p.i2p/commits/5bf515441ee23545e04de39ef3e5dc51044f15a5"},{"sha":"17939036bcd68d66193bbf61d8759e6618eae513","author":{"email":"40fa37ec00c761c7dbb6ebdee6d4a260b922f5f4@mail.i2p","name":"zzz"},"message":"move comparators to their own class","distinct":true,"url":"https://api.github.com/repos/i2p/i2p.i2p/commits/17939036bcd68d66193bbf61d8759e6618eae513"},{"sha":"86b45ab1e5ecfeaa0ba13c958fcf2e2486b8ed33","author":{"email":"40fa37ec00c761c7dbb6ebdee6d4a260b922f5f4@mail.i2p","name":"zzz"},"message":"SSU: Fix replaceExternalAddress churn when firewalled,\ncaused by change in 0.9.17 removing IP/port from published address\nwhen firewalled. We must now keep a local unpublished address\nalso, containing the detected IP/port.","distinct":true,"url":"https://api.github.com/repos/i2p/i2p.i2p/commits/86b45ab1e5ecfeaa0ba13c958fcf2e2486b8ed33"},{"sha":"175806115b27ecd4b651240f060933ff520d7e1f","author":{"email":"40fa37ec00c761c7dbb6ebdee6d4a260b922f5f4@mail.i2p","name":"zzz"},"message":"SSU:\n - Sort introducers in router address, so we won't force a republish\ndue to a different ordering of the same introducers\n- Don't publish an address if we need introducers but don't have any,\nso the user won't see a 'firewalled with inbound NTCP enabled' message","distinct":true,"url":"https://api.github.com/repos/i2p/i2p.i2p/commits/175806115b27ecd4b651240f060933ff520d7e1f"},{"sha":"84cf531f5f38ef6d10ef349408e9c6e146faeb2f","author":{"email":"40fa37ec00c761c7dbb6ebdee6d4a260b922f5f4@mail.i2p","name":"zzz"},"message":"SSU: Fix transition from firewalled to non-firewalled","distinct":true,"url":"https://api.github.com/repos/i2p/i2p.i2p/commits/84cf531f5f38ef6d10ef349408e9c6e146faeb2f"},{"sha":"381dbc4b4a41f6be1304f6b8b0022749986c1f27","author":{"email":"40fa37ec00c761c7dbb6ebdee6d4a260b922f5f4@mail.i2p","name":"zzz"},"message":"Proxy error page tweaks","distinct":true,"url":"https://api.github.com/repos/i2p/i2p.i2p/commits/381dbc4b4a41f6be1304f6b8b0022749986c1f27"},{"sha":"0671785ab292ef2764ad9d0ab8140b15bb64b1ca","author":{"email":"40fa37ec00c761c7dbb6ebdee6d4a260b922f5f4@mail.i2p","name":"zzz"},"message":"NTCP: Throttle event pumper if looping too fast (tickets #551, #1075, #1411)\nThis is just a simple workaround, root cause unknown.\nMay need tuning.","distinct":true,"url":"https://api.github.com/repos/i2p/i2p.i2p/commits/0671785ab292ef2764ad9d0ab8140b15bb64b1ca"},{"sha":"03f4ebbe356e652bb52df7f7cf587404a568c61d","author":{"email":"40fa37ec00c761c7dbb6ebdee6d4a260b922f5f4@mail.i2p","name":"zzz"},"message":"add throttle stat","distinct":true,"url":"https://api.github.com/repos/i2p/i2p.i2p/commits/03f4ebbe356e652bb52df7f7cf587404a568c61d"},{"sha":"4936f0821289bbbd7eed786b7e6a0d33f18b08ae","author":{"email":"40fa37ec00c761c7dbb6ebdee6d4a260b922f5f4@mail.i2p","name":"zzz"},"message":"Console: Don't display invalid IPv6 addresses as options on /confignet","distinct":true,"url":"https://api.github.com/repos/i2p/i2p.i2p/commits/4936f0821289bbbd7eed786b7e6a0d33f18b08ae"},{"sha":"9384424173f648beb9ac56f8713766d2c388075e","author":{"email":"40fa37ec00c761c7dbb6ebdee6d4a260b922f5f4@mail.i2p","name":"zzz"},"message":"disable floodfill in laptop mode","distinct":true,"url":"https://api.github.com/repos/i2p/i2p.i2p/commits/9384424173f648beb9ac56f8713766d2c388075e"}]}