linphone-iphone/p2pproxy/dependencies-src/jstun-src-0.7.1/de/javawi/jstun/test/DiscoveryInfo.java
aymeric 2b8200409c Initial import
git-svn-id: svn+ssh://svn.savannah.nongnu.org/linphone/trunk@1 3f6dc0c8-ddfe-455d-9043-3cd528dc4637
2008-09-04 15:47:34 +00:00

153 lines
3.6 KiB
Java

/*
* This file is part of JSTUN.
*
* Copyright (c) 2005 Thomas King <king@t-king.de> - All rights
* reserved.
*
* This software is licensed under either the GNU Public License (GPL),
* or the Apache 2.0 license. Copies of both license agreements are
* included in this distribution.
*/
package de.javawi.jstun.test;
import java.net.*;
public class DiscoveryInfo {
private InetAddress testIP;
private boolean error = false;
private int errorResponseCode = 0;
private String errorReason;
private boolean openAccess = false;
private boolean blockedUDP = false;
private boolean fullCone = false;
private boolean restrictedCone = false;
private boolean portRestrictedCone = false;
private boolean symmetric = false;
private boolean symmetricUDPFirewall = false;
private InetAddress publicIP;
public DiscoveryInfo(InetAddress testIP) {
this.testIP = testIP;
}
public boolean isError() {
return error;
}
public void setError(int responseCode, String reason) {
this.error = true;
this.errorResponseCode = responseCode;
this.errorReason = reason;
}
public boolean isOpenAccess() {
if (error) return false;
return openAccess;
}
public void setOpenAccess() {
this.openAccess = true;
}
public boolean isBlockedUDP() {
if (error) return false;
return blockedUDP;
}
public void setBlockedUDP() {
this.blockedUDP = true;
}
public boolean isFullCone() {
if (error) return false;
return fullCone;
}
public void setFullCone() {
this.fullCone = true;
}
public boolean isPortRestrictedCone() {
if (error) return false;
return portRestrictedCone;
}
public void setPortRestrictedCone() {
this.portRestrictedCone = true;
}
public boolean isRestrictedCone() {
if (error) return false;
return restrictedCone;
}
public void setRestrictedCone() {
this.restrictedCone = true;
}
public boolean isSymmetric() {
if (error) return false;
return symmetric;
}
public void setSymmetric() {
this.symmetric = true;
}
public boolean isSymmetricUDPFirewall() {
if (error) return false;
return symmetricUDPFirewall;
}
public void setSymmetricUDPFirewall() {
this.symmetricUDPFirewall = true;
}
public InetAddress getPublicIP() {
return publicIP;
}
public InetAddress getLocalIP() {
return testIP;
}
public void setPublicIP(InetAddress publicIP) {
this.publicIP = publicIP;
}
public String toString() {
StringBuffer sb = new StringBuffer();
sb.append("Network interface: ");
try {
sb.append(NetworkInterface.getByInetAddress(testIP).getName());
} catch (SocketException se) {
sb.append("unknown");
}
sb.append("\n");
sb.append("Local IP address: ");
sb.append(testIP.getHostAddress());
sb.append("\n");
if (error) {
sb.append(errorReason + " - Responsecode: " + errorResponseCode);
return sb.toString();
}
sb.append("Result: ");
if (openAccess) sb.append("Open access to the Internet.\n");
if (blockedUDP) sb.append("Firewall blocks UDP.\n");
if (fullCone) sb.append("Full Cone NAT handles connections.\n");
if (restrictedCone) sb.append("Restricted Cone NAT handles connections.\n");
if (portRestrictedCone) sb.append("Port restricted Cone NAT handles connections.\n");
if (symmetric) sb.append("Symmetric Cone NAT handles connections.\n");
if (symmetricUDPFirewall) sb.append ("Symmetric UDP Firewall handles connections.\n");
if (!openAccess && !blockedUDP && !fullCone && !restrictedCone && !portRestrictedCone && !symmetric && !symmetricUDPFirewall) sb.append("unkown\n");
sb.append("Public IP address: ");
if (publicIP != null) {
sb.append(publicIP.getHostAddress());
} else {
sb.append("unknown");
}
sb.append("\n");
return sb.toString();
}
}