From 816ed0cf64cf4a7f205b261424d5326c7e09b3cf Mon Sep 17 00:00:00 2001 From: Thomas Hofer Date: Tue, 16 Oct 2007 09:28:37 +0000 Subject: [PATCH] removed two unneeded files --- ...#NetworkAddressManagerServiceImpl.java.1.6 | 562 ------------------ .../sip/communicator/impl/netaddr/.cvsignore | 0 2 files changed, 562 deletions(-) delete mode 100644 src/net/java/sip/communicator/impl/netaddr/.#NetworkAddressManagerServiceImpl.java.1.6 delete mode 100644 src/net/java/sip/communicator/impl/netaddr/.cvsignore diff --git a/src/net/java/sip/communicator/impl/netaddr/.#NetworkAddressManagerServiceImpl.java.1.6 b/src/net/java/sip/communicator/impl/netaddr/.#NetworkAddressManagerServiceImpl.java.1.6 deleted file mode 100644 index 7ef72a987..000000000 --- a/src/net/java/sip/communicator/impl/netaddr/.#NetworkAddressManagerServiceImpl.java.1.6 +++ /dev/null @@ -1,562 +0,0 @@ -/* - * SIP Communicator, the OpenSource Java VoIP and Instant Messaging client. - * - * Distributable under LGPL license. - * See terms of license at gnu.org. - */ -package net.java.sip.communicator.impl.netaddr; - -import java.net.*; -import java.util.Enumeration; - -import net.java.sip.communicator.util.*; -import net.java.stun4j.client.SimpleAddressDetector; -import net.java.stun4j.StunAddress; -import net.java.stun4j.StunException; -import net.java.sip.communicator.service.netaddr.*; -import net.java.sip.communicator.service.configuration.event.*; -import net.java.sip.communicator.service.configuration.*; - - - - - -/** - * - * @author Emil Ivov - */ -public class NetworkAddressManagerServiceImpl - implements NetworkAddressManagerService, PropertyChangeListener -{ - private static Logger logger = Logger.getLogger(NetworkAddressManagerServiceImpl.class); - - // General properties for the Network Address Manager - private static final String PROP_STUN_SERVER_ADDRESS - = "net.java.sip.communicator.STUN_SERVER_ADDRESS"; - private static final String PROP_STUN_SERVER_PORT - = "net.java.sip.communicator.STUN_SERVER_PORT"; - private static final String PROP_PREF_IPV6 - = "java.net.preferIPv6Addresses"; - private static final String PROP_PREF_IPV4 - = "java.net.preferIPv4Stack"; - private static final String PROP_PREFERRED_NET_ADDRESS - = "net.java.sip.communicator.common.PREFERRED_NETWORK_ADDRESS"; - private static final String PROP_PREFERRED_NET_IFACE - = "net.java.sip.communicator.common.PREFERRED_NETWORK_INTERFACE"; - - //reference to the bundles used in this class - private ConfigurationService configurationService = null; - private NetworkAddressManagerService networkAddressManagerService= null; - - - private SimpleAddressDetector detector = null; - private boolean useStun = true; - private static final int RANDOM_PORT = 55055; - private static final String WINDOWS_AUTO_CONFIGURED_ADDRESS_PREFIX = "169"; - - - - /** - * When - * - */ - public void propertyChange(PropertyChangeEvent event) - { - try - { - logger.logEntry(); - if(event.getPropertyName()==PROP_STUN_SERVER_ADDRESS) - { - logger.debug(PROP_STUN_SERVER_ADDRESS + "Change state"); - //Do an action - start(); - - } - else if(event.getPropertyName()==PROP_STUN_SERVER_PORT) - { - logger.debug(PROP_STUN_SERVER_PORT + "Change state"); - //Do an action - start(); - - } - else - { - logger.debug("Something Change state but it is " - +"not determine what !"); - start(); - } - } - finally - { - logger.logExit(); - } - } - - - /** - * The constructor nothing to do now, because we don't have access to the - * Configuration service yet - */ - public NetworkAddressManagerServiceImpl() - { - - // put a listener on propertyStunServerAddress and - //propertyStunServerPort properties - // set them to null il tey doesn't exist - - } - - /** - * get a reference to the configuration service - * and add listeners on propertyStunServerAddress and propertyStunServerPort - * @param configuration ConfigurationService reference to the bundle - * configuration service - */ - protected void setConfigurationService(ConfigurationService configuration) - { - configurationService = configuration; - - try - { - logger.logEntry(); - configurationService.addPropertyChangeListener( - PROP_STUN_SERVER_ADDRESS,this); - configurationService.addPropertyChangeListener( - PROP_STUN_SERVER_PORT,this); - configurationService.addPropertyChangeListener( - PROP_PREF_IPV6,this); - configurationService.addPropertyChangeListener( - PROP_PREF_IPV4,this); - } - catch(Exception e) - { - logger.error("NetworkAddressManagerServiceImpl " - +"problem on listem properties : "+ e); - } - - - - - finally - { - logger.logExit(); - } - } - - /** - * Initializes the address manager and any underlying libs. - * - */ - public void start() - { - try - { - logger.logEntry(); - // init stun - //InetAddress stunAddressStr = null; - String stunAddressStr = null; - int port = -1; - - try - { - stunAddressStr =(String) configurationService.getProperty( - PROP_STUN_SERVER_ADDRESS); - Integer portItr =(Integer) configurationService.getProperty( - PROP_STUN_SERVER_PORT); - - // in case the user prefers ipv6 addresses we don't want - // to use stun - boolean preferIPv6Addresses ; - if(configurationService.getProperty(PROP_PREF_IPV6) == null - || (((Boolean)configurationService.getProperty( - PROP_PREF_IPV6)).booleanValue())==false) - { - preferIPv6Addresses = false; - } - else - { - preferIPv6Addresses = true; - } - - if (stunAddressStr == null - || portItr == null - || preferIPv6Addresses) - { - useStun = false; - - //don't throw an exception as this is most probably the user - //that doesn't want stun - //throw new Exception("STUN address or port were null"); - return; - } - else - useStun = true; - - port = portItr.intValue(); - - } - catch (Throwable ex) - { - logger.error("Failed to init STUN service and it will " - +"stay disabled. Error was:",ex); - useStun = false; - } - try - { - detector = new SimpleAddressDetector( - new StunAddress(stunAddressStr,port)); - } - catch(Exception e) - { - logger.debug("can't create the StunDetector ! "+e); - } - - if (logger.isDebugEnabled()) - logger.debug("Created a STUN Address detector for the " - +"following STUN server: " - + stunAddressStr + ":" + port); - try { - detector.start(); - logger.debug("STUN server started;"); - } - catch (StunException ex) { - logger.error( - "Failed to start the STUN Address Detector at address:" - +stunAddressStr + ":" + port, ex); - detector = null; - useStun = false; - } - } - finally - { - logger.logExit(); - } - } - - - - /** - * - * @return an InetAddress instance representing the local host or null - * if no IP address for the host could be found - */ - public InetAddress getLocalHost() - { - return getLocalHost(true); - } - - - /** - * Returns a localhostAddress. - * - * @param anyAddressIsAccepted is 0.0.0.0 accepted as a return value. - * @return the address that was detected the address of the localhost. - */ - public InetAddress getLocalHost(boolean anyAddressIsAccepted) - { - try - { - logger.logEntry(); - // (though InetAddress itself is not really mobile but in case it - //gets fixed). - InetAddress localHost = null; - InetAddress mappedAddress = null; - InetAddress linkLocalAddress = null; - InetAddress publicAddress = null; - String selectedInterface = null; - - boolean preferIPv4Stack ; - if(configurationService.getProperty(PROP_PREF_IPV4) == null - || (((Boolean)configurationService. - getProperty(PROP_PREF_IPV4)).booleanValue())==false) - { - preferIPv4Stack = false; - } - else - { - preferIPv4Stack = true; - } - - - try - { - if (logger.isDebugEnabled()) - { - logger.debug("------------- NAMImpl.getLocalHost-----"); - logger.debug("propertyIPv4Stack=" - + configurationService.getProperty(PROP_PREF_IPV4)); - logger.debug("propertyStunServerAddress = " - + configurationService.getProperty( - PROP_STUN_SERVER_ADDRESS)); - logger.debug("propertyStunServerPort = " - + configurationService.getProperty( - PROP_STUN_SERVER_PORT)); - logger.debug("propertIpV6Pref = " - + configurationService.getProperty(PROP_PREF_IPV6)); - logger.debug("Use Stun :: "+useStun); - logger.debug("------------------------------"); - } - - - //check whether we have a public address that matches one of - //the local interfaces if not - return the first one that - //is not the loopback - try - { - //retrieve a STUN binding if possible - if (useStun) - { - StunAddress stunMappedAddress = - queryStunServer(RANDOM_PORT); - - if(stunMappedAddress == null) - { - mappedAddress = null; - } - else - { - mappedAddress = queryStunServer(RANDOM_PORT). - getSocketAddress().getAddress(); - } - return mappedAddress; - } - } - catch (Exception ex) - { - logger.error("manager.useStun error .. " - +"continuing without", ex); - } - - Enumeration localIfaces = - NetworkInterface.getNetworkInterfaces(); - - //interfaces loop - interfaces_loop: - while (localIfaces.hasMoreElements()) - { - NetworkInterface iFace = - (NetworkInterface) localIfaces.nextElement(); - Enumeration addresses = iFace.getInetAddresses(); - - //addresses loop - while (addresses.hasMoreElements()) { - InetAddress address = - (InetAddress) addresses.nextElement(); - //ignore link local addresses - if (!address.isAnyLocalAddress() - && !address.isLinkLocalAddress() - && !address.isLoopbackAddress() - && !isWindowsAutoConfiguredIPv4Address(address)) { - if (mappedAddress != null - && mappedAddress.equals(address)) { - if (logger.isDebugEnabled()) - logger.debug("Returninng localhost: Mapped " - + "address = Public address = " - + address); - //the address matches the one seen by the STUN - //server no doubt that it's a working public - //address. - - return address; - } - else if (isLinkLocalIPv4Address(address)) - { - if (logger.isDebugEnabled()) - logger.debug("Found Linklocal ipv4 address " - + address); - linkLocalAddress = address; - } - else { - if (logger.isDebugEnabled()) - logger.debug("Found public address " - + address); - - String preferredAddr = - (String)configurationService.getProperty( - PROP_PREFERRED_NET_ADDRESS); - String preferredIface = - (String)configurationService.getProperty( - PROP_PREFERRED_NET_IFACE); - - - if (// bail out if we already have the address - // chosen by the user - ( publicAddress != null - && preferredAddr!= null - && preferredAddr.equals( - publicAddress.getHostAddress())) - //bail out if we already have an address on - //an interface chosen by the user - || (publicAddress != null - && selectedInterface != null - && preferredIface != null - && preferredIface.equals( - selectedInterface)) - //in case we have an ipv4 addr and don't - //want to change it for an ipv6 - || (publicAddress != null - && publicAddress instanceof Inet4Address - && address instanceof Inet6Address - && preferIPv4Stack) - //in case we have an ipv6 addr and don't - //want to change it for an ipv4 - || (publicAddress != null - && publicAddress instanceof Inet6Address - && address instanceof Inet4Address - && !preferIPv4Stack) - ) - { - continue; - } - publicAddress = address; - selectedInterface = iFace.getDisplayName(); - } - } - }//addresses loop - }//interfaces loop - if (publicAddress != null) { - logger.debug("Returning public address");//debug - return publicAddress; - } - if (linkLocalAddress != null) { - logger.debug("Returning link local address");//debug - return linkLocalAddress; - } - if (anyAddressIsAccepted) - localHost = new InetSocketAddress(RANDOM_PORT).getAddress(); - else - localHost = InetAddress.getLocalHost(); - } - catch (Exception ex) { - logger.error("Failed to create localhost address, returning " - + "the any address (0.0.0.0)", ex); - //get the address part of an InetSocketAddress for a random port. - localHost = new InetSocketAddress(RANDOM_PORT).getAddress(); - } - if (logger.isDebugEnabled()) - logger.debug("Returning localhost address=" + localHost); - return localHost; - } - finally - { - logger.logExit(); - } - } - - - /** - * Determines whether the address is the result of windows auto configuration. - * (i.e. One that is in the 169.254.0.0 network) - * @param add the address to inspect - * @return true if the address is autoconfigured by windows, false otherwise. - */ - private static boolean isWindowsAutoConfiguredIPv4Address(InetAddress add) - { - return (add.getAddress()[0] & 0xFF) == 169 - && (add.getAddress()[1] & 0xFF) == 254; - } - - /** - * The method quesries a Stun server for a binding for the specified port. - * @param port the port from which a STUN message - * @return StunAddress - */ - private StunAddress queryStunServer(int port) - { - - - try{ - logger.logEntry(); - StunAddress mappedAddress = null; - if (detector != null && useStun) { - try { - mappedAddress = detector.getMappingFor(port); - if (logger.isDebugEnabled()) - logger.debug("For port:" - + port + "a Stun server returned the " - +"following mapping [" + mappedAddress); - } - catch (StunException ex) { - logger.error( - "Failed to retrive mapped address port:" +port, ex); - } - } - return mappedAddress; - } - finally{ - logger.logExit(); - } - } - - - - /** - * Determines whether the address is an IPv4 link local address. IPv4 link - * local addresses are those in the following networks: - * - * 10.0.0.0 to 10.255.255.255 - * 172.16.0.0 to 172.31.255.255 - * 192.168.0.0 to 192.168.255.255 - * - * @param add the address to inspect - * @return true if add is a link local ipv4 address and false if not. - */ - private static boolean isLinkLocalIPv4Address(InetAddress add) - { - if(add instanceof Inet4Address) - { - byte address[] = add.getAddress(); - if ( (address[0] & 0xFF) == 10) - return true; - if ( (address[0] & 0xFF) == 172 - && (address[1] & 0xFF) >= 16 && address[1] <= 31) - return true; - if ( (address[0] & 0xFF) == 192 - && (address[1] & 0xFF) == 168) - return true; - return false; - } - return false; - } - - - - /** - * Tries to obtain a mapped/public address for the specified port. - * - * @param port the port whose mapping we are interested in. - * @return a public address corresponding to the specified port or null - * if all attempts to retrieve such an address have failed. - */ - public InetSocketAddress getPublicAddressFor(int port) - { - try { - logger.logEntry(); - if (!useStun) { - logger.debug( - "Stun is disabled, skipping mapped address recovery."); - return new InetSocketAddress(getLocalHost(), port); - } - StunAddress mappedAddress = queryStunServer(port); - InetSocketAddress result = null; - if (mappedAddress != null) - result = mappedAddress.getSocketAddress(); - else { - //Apparently STUN failed. Let's try to temporarily disble it - //and use algorithms in getLocalHost(). ... We should probably - //eveng think about completely disabling stun, and not only - //temporarily. - //Bug report - John J. Barton - IBM - InetAddress localHost = getLocalHost(false); - result = new InetSocketAddress(localHost, port); - } - if (logger.isDebugEnabled()) - logger.debug("Returning mapping for port:" - + port +" as follows: " + result); - return result; - } - finally { - logger.logExit(); - } - } -} diff --git a/src/net/java/sip/communicator/impl/netaddr/.cvsignore b/src/net/java/sip/communicator/impl/netaddr/.cvsignore deleted file mode 100644 index e69de29bb..000000000