From: <pga...@vu...> - 2014-08-19 01:37:02
|
Revision: 40657 Author: pgardner Date: 2014-08-19 01:36:53 +0000 (Tue, 19 Aug 2014) Log Message: ----------- tidied up some unwanted dns resolution Modified Paths: -------------- client/trunk/azureus2/src/org/gudy/azureus2/core3/peer/impl/transport/PEPeerTransportProtocol.java client/trunk/azureus2/src/org/gudy/azureus2/core3/util/IPToHostNameResolver.java client/trunk/azureus2/src/org/gudy/azureus2/core3/util/spi/AENameServiceDescriptor.java client/trunk/azureus2/src/org/gudy/azureus2/ui/swt/views/clientstats/ClientStatsView.java client/trunk/azureus2/src/org/gudy/azureus2/ui/swt/views/tableitems/peers/ASItem.java Modified: client/trunk/azureus2/src/org/gudy/azureus2/core3/peer/impl/transport/PEPeerTransportProtocol.java =================================================================== --- client/trunk/azureus2/src/org/gudy/azureus2/core3/peer/impl/transport/PEPeerTransportProtocol.java 2014-08-18 23:24:53 UTC (rev 40656) +++ client/trunk/azureus2/src/org/gudy/azureus2/core3/peer/impl/transport/PEPeerTransportProtocol.java 2014-08-19 01:36:53 UTC (rev 40657) @@ -5096,41 +5096,44 @@ List<Integer> res = new ArrayList<Integer>(); try{ - byte[] address = InetAddress.getByName( ip ).getAddress(); - - // no IPv6 support yet - - if ( address.length == 4 ){ + if ( AENetworkClassifier.categoriseAddress( ip ) == AENetworkClassifier.AT_PUBLIC ){ - byte[] bytes = new byte[24]; + byte[] address = InetAddress.getByName( ip ).getAddress(); - System.arraycopy( address, 0, bytes, 0, 3 ); - System.arraycopy( hash, 0, bytes, 4, 20 ); - - num_required = Math.min( num_required, num_pieces ); - - while( res.size() < num_required ){ + // no IPv6 support yet + + if ( address.length == 4 ){ - bytes = new SHA1Simple().calculateHash( bytes ); + byte[] bytes = new byte[24]; - int pos = 0; - - while( pos < 20 && res.size() < num_required ){ + System.arraycopy( address, 0, bytes, 0, 3 ); + System.arraycopy( hash, 0, bytes, 4, 20 ); + + num_required = Math.min( num_required, num_pieces ); + + while( res.size() < num_required ){ - long index = (bytes[pos++] << 24 )&0xff000000L | - (bytes[pos++] << 16 )&0x00ff0000L | - (bytes[pos++] << 8 )&0x0000ff00L | - bytes[pos++]&0x000000ffL; - - Integer i = new Integer((int)( index%num_pieces )); + bytes = new SHA1Simple().calculateHash( bytes ); - if ( !res.contains(i)){ - - res.add( i ); + int pos = 0; + + while( pos < 20 && res.size() < num_required ){ + + long index = (bytes[pos++] << 24 )&0xff000000L | + (bytes[pos++] << 16 )&0x00ff0000L | + (bytes[pos++] << 8 )&0x0000ff00L | + bytes[pos++]&0x000000ffL; + + Integer i = new Integer((int)( index%num_pieces )); + + if ( !res.contains(i)){ + + res.add( i ); + } } } } - } + } }catch( Throwable e ){ Debug.out( "Fast set generation failed", e ); Modified: client/trunk/azureus2/src/org/gudy/azureus2/core3/util/IPToHostNameResolver.java =================================================================== --- client/trunk/azureus2/src/org/gudy/azureus2/core3/util/IPToHostNameResolver.java 2014-08-18 23:24:53 UTC (rev 40656) +++ client/trunk/azureus2/src/org/gudy/azureus2/core3/util/IPToHostNameResolver.java 2014-08-19 01:36:53 UTC (rev 40657) @@ -89,15 +89,23 @@ if ( listener != null ){ - try{ - InetAddress addr = InetAddress.getByName( req.getIP()); + String ip = req.getIP(); + + if ( AENetworkClassifier.categoriseAddress( ip ) == AENetworkClassifier.AT_PUBLIC ){ + + try{ + InetAddress addr = InetAddress.getByName( ip ); + + req.getListener().IPResolutionComplete( addr.getHostName(), true ); + + }catch( Throwable e ){ - req.getListener().IPResolutionComplete( addr.getHostName(), true ); + req.getListener().IPResolutionComplete( ip, false ); - }catch( Throwable e ){ + } + }else{ - req.getListener().IPResolutionComplete( req.getIP(), false ); - + req.getListener().IPResolutionComplete( ip, true ); } } }catch( Throwable e ){ Modified: client/trunk/azureus2/src/org/gudy/azureus2/core3/util/spi/AENameServiceDescriptor.java =================================================================== --- client/trunk/azureus2/src/org/gudy/azureus2/core3/util/spi/AENameServiceDescriptor.java 2014-08-18 23:24:53 UTC (rev 40656) +++ client/trunk/azureus2/src/org/gudy/azureus2/core3/util/spi/AENameServiceDescriptor.java 2014-08-19 01:36:53 UTC (rev 40657) @@ -27,8 +27,21 @@ import sun.net.spi.nameservice.*; import sun.net.spi.nameservice.dns.*; +/* + * This proxy is controlled by the setting in ConfigurationManager + * + * System.setProperty("sun.net.spi.nameservice.provider.1","dns,aednsproxy"); + * + * and also requires META-INF/services/sun.net.spi.nameservice.NameServiceDescriptor to contain the text + * + * org.gudy.azureus2.core3.util.spi.AENameServiceDescriptor + * + * On OSX you will need to do the following to get things to compile: + * + * Windows -> Preferences -> Java -> Compiler -> Errors/Warnings -> Deprecated and restricted API -> Forbidden reference (access rules): -> change to warning + * + */ - public class AENameServiceDescriptor implements NameServiceDescriptor Modified: client/trunk/azureus2/src/org/gudy/azureus2/ui/swt/views/clientstats/ClientStatsView.java =================================================================== --- client/trunk/azureus2/src/org/gudy/azureus2/ui/swt/views/clientstats/ClientStatsView.java 2014-08-18 23:24:53 UTC (rev 40656) +++ client/trunk/azureus2/src/org/gudy/azureus2/ui/swt/views/clientstats/ClientStatsView.java 2014-08-19 01:36:53 UTC (rev 40657) @@ -27,7 +27,6 @@ import org.eclipse.swt.SWT; import org.eclipse.swt.layout.*; import org.eclipse.swt.widgets.*; - import org.gudy.azureus2.core3.download.DownloadManager; import org.gudy.azureus2.core3.download.DownloadManagerPeerListener; import org.gudy.azureus2.core3.download.DownloadManagerState; @@ -35,6 +34,7 @@ import org.gudy.azureus2.core3.peer.PEPeer; import org.gudy.azureus2.core3.peer.PEPeerListener; import org.gudy.azureus2.core3.peer.PEPeerManager; +import org.gudy.azureus2.core3.util.AddressUtils; import org.gudy.azureus2.core3.util.DisplayFormatters; import org.gudy.azureus2.core3.util.FileUtil; import org.gudy.azureus2.core3.util.SystemTime; @@ -588,7 +588,7 @@ InetAddress ip = peer.getAlternativeIPv6(); if (ip == null) { try { - ip = InetAddress.getByName(peer.getIp()); + ip = AddressUtils.getByName(peer.getIp()); } catch (UnknownHostException e) { } } Modified: client/trunk/azureus2/src/org/gudy/azureus2/ui/swt/views/tableitems/peers/ASItem.java =================================================================== --- client/trunk/azureus2/src/org/gudy/azureus2/ui/swt/views/tableitems/peers/ASItem.java 2014-08-18 23:24:53 UTC (rev 40656) +++ client/trunk/azureus2/src/org/gudy/azureus2/ui/swt/views/tableitems/peers/ASItem.java 2014-08-19 01:36:53 UTC (rev 40657) @@ -25,6 +25,7 @@ import java.net.InetAddress; import org.gudy.azureus2.core3.peer.PEPeer; +import org.gudy.azureus2.core3.util.AENetworkClassifier; import com.aelitis.azureus.core.networkmanager.admin.*; @@ -68,27 +69,32 @@ peer.setUserData( ASItem.class, text ); - try{ - NetworkAdmin.getSingleton().lookupASN( - InetAddress.getByName( peer.getIp()), - new NetworkAdminASNListener() - { - public void - success( - NetworkAdminASN asn ) - { - peer.setUserData( ASItem.class, asn.getAS() + " - " + asn.getASName()); - } - - public void - failed( - NetworkAdminException error ) - { - } - }); - - }catch( Throwable e ){ - } + String peer_ip = peer.getIp(); + + if ( AENetworkClassifier.categoriseAddress( peer_ip ) == AENetworkClassifier.AT_PUBLIC ){ + + try{ + NetworkAdmin.getSingleton().lookupASN( + InetAddress.getByName( peer_ip ), + new NetworkAdminASNListener() + { + public void + success( + NetworkAdminASN asn ) + { + peer.setUserData( ASItem.class, asn.getAS() + " - " + asn.getASName()); + } + + public void + failed( + NetworkAdminException error ) + { + } + }); + + }catch( Throwable e ){ + } + } } } |