META-INF/
META-INF/MANIFEST.MF
de/
de/javawi/
de/javawi/jstun/
de/javawi/jstun/attribute/
de/javawi/jstun/attribute/ChangeRequest.class
ChangeRequest.java
package de.javawi.jstun.attribute
public de.javawi.jstun.attribute.ChangeRequest extends de.javawi.jstun.attribute.MessageAttribute {
	boolean changeIP
	boolean changePort
	public void  () 
	public boolean isChangeIP () 
	public boolean isChangePort () 
	public void setChangeIP () 
	public void setChangePort () 
	public byte[] getBytes ()  throws de.javawi.jstun.util.UtilityException 
		byte[] result
	public static de.javawi.jstun.attribute.ChangeRequest parse (byte[])  throws de.javawi.jstun.attribute.MessageAttributeParsingException 
		de.javawi.jstun.attribute.ChangeRequest cr
		int status
		de.javawi.jstun.util.UtilityException ue
		byte[] data
}

de/javawi/jstun/attribute/ChangedAddress.class
ChangedAddress.java
package de.javawi.jstun.attribute
public de.javawi.jstun.attribute.ChangedAddress extends de.javawi.jstun.attribute.MappedResponseChangedSourceAddressReflectedFrom {
	private static final org.apache.commons.logging.Log LOGGER
	public void  () 
	public static de.javawi.jstun.attribute.MessageAttribute parse (byte[])  throws de.javawi.jstun.attribute.MessageAttributeParsingException 
		byte[] data
		de.javawi.jstun.attribute.ChangedAddress ca
	static void  () 
}

de/javawi/jstun/attribute/Dummy.class
Dummy.java
package de.javawi.jstun.attribute
public de.javawi.jstun.attribute.Dummy extends de.javawi.jstun.attribute.MessageAttribute {
	int lengthValue
	public void  () 
	public void setLengthValue (int) 
		int length
	public byte[] getBytes ()  throws de.javawi.jstun.util.UtilityException 
		byte[] result
	public static de.javawi.jstun.attribute.Dummy parse (byte[]) 
		byte[] data
		de.javawi.jstun.attribute.Dummy dummy
}

de/javawi/jstun/attribute/ErrorCode.class
ErrorCode.java
package de.javawi.jstun.attribute
public de.javawi.jstun.attribute.ErrorCode extends de.javawi.jstun.attribute.MessageAttribute {
	int responseCode
	String reason
	public void  () 
	public void setResponseCode (int)  throws de.javawi.jstun.attribute.MessageAttributeException 
		int responseCode
	public int getResponseCode () 
	public java.lang.String getReason () 
	public byte[] getBytes ()  throws de.javawi.jstun.util.UtilityException 
		int length
		byte[] result
		int classHeader
		byte[] reasonArray
	public static de.javawi.jstun.attribute.ErrorCode parse (byte[])  throws de.javawi.jstun.attribute.MessageAttributeParsingException 
		byte classHeaderByte
		int classHeader
		byte numberByte
		int number
		int responseCode
		de.javawi.jstun.attribute.ErrorCode result
		de.javawi.jstun.util.UtilityException ue
		de.javawi.jstun.attribute.MessageAttributeException mae
		byte[] data
}

de/javawi/jstun/attribute/MappedAddress.class
MappedAddress.java
package de.javawi.jstun.attribute
public de.javawi.jstun.attribute.MappedAddress extends de.javawi.jstun.attribute.MappedResponseChangedSourceAddressReflectedFrom {
	private static final org.apache.commons.logging.Log LOGGER
	public void  () 
	public static de.javawi.jstun.attribute.MessageAttribute parse (byte[])  throws de.javawi.jstun.attribute.MessageAttributeParsingException 
		byte[] data
		de.javawi.jstun.attribute.MappedAddress ma
	static void  () 
}

de/javawi/jstun/attribute/MappedResponseChangedSourceAddressReflectedFrom.class
MappedResponseChangedSourceAddressReflectedFrom.java
package de.javawi.jstun.attribute
public de.javawi.jstun.attribute.MappedResponseChangedSourceAddressReflectedFrom extends de.javawi.jstun.attribute.MessageAttribute {
	int port
	de.javawi.jstun.util.Address address
	public void  () 
		de.javawi.jstun.util.UtilityException ue
	public void  (de.javawi.jstun.attribute.MessageAttributeInterface$MessageAttributeType) 
		de.javawi.jstun.attribute.MessageAttributeInterface$MessageAttributeType type
	public int getPort () 
	public de.javawi.jstun.util.Address getAddress () 
	public void setPort (int)  throws de.javawi.jstun.attribute.MessageAttributeException 
		int port
	public void setAddress (de.javawi.jstun.util.Address) 
		de.javawi.jstun.util.Address address
	public byte[] getBytes ()  throws de.javawi.jstun.util.UtilityException 
		byte[] result
	protected static de.javawi.jstun.attribute.MappedResponseChangedSourceAddressReflectedFrom parse (de.javawi.jstun.attribute.MappedResponseChangedSourceAddressReflectedFrom, byte[])  throws de.javawi.jstun.attribute.MessageAttributeParsingException 
		int family
		byte[] portArray
		int firstOctet
		int secondOctet
		int thirdOctet
		int fourthOctet
		de.javawi.jstun.util.UtilityException ue
		de.javawi.jstun.attribute.MessageAttributeException mae
		de.javawi.jstun.attribute.MappedResponseChangedSourceAddressReflectedFrom ma
		byte[] data
	public java.lang.String toString () 
}

de/javawi/jstun/attribute/MessageAttribute.class
MessageAttribute.java
package de.javawi.jstun.attribute
public abstract de.javawi.jstun.attribute.MessageAttribute extends java.lang.Object implements de.javawi.jstun.attribute.MessageAttributeInterface  {
	private static final org.apache.commons.logging.Log LOGGER
	de.javawi.jstun.attribute.MessageAttributeInterface$MessageAttributeType type
	public void  () 
	public void  (de.javawi.jstun.attribute.MessageAttributeInterface$MessageAttributeType) 
		de.javawi.jstun.attribute.MessageAttributeInterface$MessageAttributeType type
	public void setType (de.javawi.jstun.attribute.MessageAttributeInterface$MessageAttributeType) 
		de.javawi.jstun.attribute.MessageAttributeInterface$MessageAttributeType type
	public de.javawi.jstun.attribute.MessageAttributeInterface$MessageAttributeType getType () 
	public static int typeToInteger (de.javawi.jstun.attribute.MessageAttributeInterface$MessageAttributeType) 
		de.javawi.jstun.attribute.MessageAttributeInterface$MessageAttributeType type
	public static de.javawi.jstun.attribute.MessageAttributeInterface$MessageAttributeType intToType (long) 
		long type
	public abstract byte[] getBytes ()  throws de.javawi.jstun.util.UtilityException 
	public int getLength ()  throws de.javawi.jstun.util.UtilityException 
		int length
	public static de.javawi.jstun.attribute.MessageAttribute parseCommonHeader (byte[])  throws de.javawi.jstun.attribute.MessageAttributeParsingException 
		byte[] typeArray
		int type
		byte[] lengthArray
		int lengthValue
		byte[] valueArray
		de.javawi.jstun.attribute.MessageAttribute ma
		de.javawi.jstun.util.UtilityException ue
		byte[] data
	static void  () 
}

de/javawi/jstun/attribute/MessageAttributeException.class
MessageAttributeException.java
package de.javawi.jstun.attribute
public de.javawi.jstun.attribute.MessageAttributeException extends java.lang.Exception {
	private static final long serialVersionUID
	public void  (java.lang.String) 
		String mesg
}

de/javawi/jstun/attribute/MessageAttributeInterface$MessageAttributeType.class
MessageAttributeInterface.java
package de.javawi.jstun.attribute
public final enum de.javawi.jstun.attribute.MessageAttributeInterface$MessageAttributeType extends java.lang.Enum {
	public static final enum de.javawi.jstun.attribute.MessageAttributeInterface$MessageAttributeType MappedAddress
	public static final enum de.javawi.jstun.attribute.MessageAttributeInterface$MessageAttributeType ResponseAddress
	public static final enum de.javawi.jstun.attribute.MessageAttributeInterface$MessageAttributeType ChangeRequest
	public static final enum de.javawi.jstun.attribute.MessageAttributeInterface$MessageAttributeType SourceAddress
	public static final enum de.javawi.jstun.attribute.MessageAttributeInterface$MessageAttributeType ChangedAddress
	public static final enum de.javawi.jstun.attribute.MessageAttributeInterface$MessageAttributeType Username
	public static final enum de.javawi.jstun.attribute.MessageAttributeInterface$MessageAttributeType Password
	public static final enum de.javawi.jstun.attribute.MessageAttributeInterface$MessageAttributeType MessageIntegrity
	public static final enum de.javawi.jstun.attribute.MessageAttributeInterface$MessageAttributeType ErrorCode
	public static final enum de.javawi.jstun.attribute.MessageAttributeInterface$MessageAttributeType UnknownAttribute
	public static final enum de.javawi.jstun.attribute.MessageAttributeInterface$MessageAttributeType ReflectedFrom
	public static final enum de.javawi.jstun.attribute.MessageAttributeInterface$MessageAttributeType Dummy
	private static final synthetic de.javawi.jstun.attribute.MessageAttributeInterface$MessageAttributeType[] $VALUES
	public static final de.javawi.jstun.attribute.MessageAttributeInterface$MessageAttributeType[] values () 
	public static de.javawi.jstun.attribute.MessageAttributeInterface$MessageAttributeType valueOf (java.lang.String) 
		String name
	private void  (java.lang.String, int) 
	static void  () 
}

de/javawi/jstun/attribute/MessageAttributeInterface.class
MessageAttributeInterface.java
package de.javawi.jstun.attribute
public abstract de.javawi.jstun.attribute.MessageAttributeInterface extends java.lang.Object {
	public static final int MAPPEDADDRESS
	public static final int RESPONSEADDRESS
	public static final int CHANGEREQUEST
	public static final int SOURCEADDRESS
	public static final int CHANGEDADDRESS
	public static final int USERNAME
	public static final int PASSWORD
	public static final int MESSAGEINTEGRITY
	public static final int ERRORCODE
	public static final int UNKNOWNATTRIBUTE
	public static final int REFLECTEDFROM
	public static final int DUMMY
}

de/javawi/jstun/attribute/MessageAttributeParsingException.class
MessageAttributeParsingException.java
package de.javawi.jstun.attribute
public de.javawi.jstun.attribute.MessageAttributeParsingException extends de.javawi.jstun.attribute.MessageAttributeException {
	private static final long serialVersionUID
	public void  (java.lang.String) 
		String mesg
}

de/javawi/jstun/attribute/MessageIntegrity.class
MessageIntegrity.java
package de.javawi.jstun.attribute
public de.javawi.jstun.attribute.MessageIntegrity extends de.javawi.jstun.attribute.MessageAttribute {
	public void  () 
	public byte[] getBytes () 
	public static de.javawi.jstun.attribute.MessageIntegrity parse (byte[]) 
		byte[] data
}

de/javawi/jstun/attribute/Password.class
Password.java
package de.javawi.jstun.attribute
public de.javawi.jstun.attribute.Password extends de.javawi.jstun.attribute.MessageAttribute {
	String password
	public void  () 
	public void  (java.lang.String) 
		String password
	public java.lang.String getPassword () 
	public void setPassword (java.lang.String) 
		String password
	public byte[] getBytes ()  throws de.javawi.jstun.util.UtilityException 
		int length
		byte[] result
		byte[] temp
	public static de.javawi.jstun.attribute.Password parse (byte[]) 
		byte[] data
		de.javawi.jstun.attribute.Password result
		String password
}

de/javawi/jstun/attribute/ReflectedFrom.class
ReflectedFrom.java
package de.javawi.jstun.attribute
public de.javawi.jstun.attribute.ReflectedFrom extends de.javawi.jstun.attribute.MappedResponseChangedSourceAddressReflectedFrom {
	private static final org.apache.commons.logging.Log LOGGER
	public void  () 
	public static de.javawi.jstun.attribute.ReflectedFrom parse (byte[])  throws de.javawi.jstun.attribute.MessageAttributeParsingException 
		byte[] data
		de.javawi.jstun.attribute.ReflectedFrom result
	static void  () 
}

de/javawi/jstun/attribute/ResponseAddress.class
ResponseAddress.java
package de.javawi.jstun.attribute
public de.javawi.jstun.attribute.ResponseAddress extends de.javawi.jstun.attribute.MappedResponseChangedSourceAddressReflectedFrom {
	private static final org.apache.commons.logging.Log LOGGER
	public void  () 
	public static de.javawi.jstun.attribute.MessageAttribute parse (byte[])  throws de.javawi.jstun.attribute.MessageAttributeParsingException 
		byte[] data
		de.javawi.jstun.attribute.ResponseAddress ra
	static void  () 
}

de/javawi/jstun/attribute/SourceAddress.class
SourceAddress.java
package de.javawi.jstun.attribute
public de.javawi.jstun.attribute.SourceAddress extends de.javawi.jstun.attribute.MappedResponseChangedSourceAddressReflectedFrom {
	private static final org.apache.commons.logging.Log LOGGER
	public void  () 
	public static de.javawi.jstun.attribute.MessageAttribute parse (byte[])  throws de.javawi.jstun.attribute.MessageAttributeParsingException 
		byte[] data
		de.javawi.jstun.attribute.SourceAddress sa
	static void  () 
}

de/javawi/jstun/attribute/UnknownAttribute.class
UnknownAttribute.java
package de.javawi.jstun.attribute
public de.javawi.jstun.attribute.UnknownAttribute extends de.javawi.jstun.attribute.MessageAttribute {
	java.util.Vector unkown
	public void  () 
	public void addAttribute (de.javawi.jstun.attribute.MessageAttributeInterface$MessageAttributeType) 
		de.javawi.jstun.attribute.MessageAttributeInterface$MessageAttributeType attribute
	public byte[] getBytes ()  throws de.javawi.jstun.util.UtilityException 
		de.javawi.jstun.attribute.MessageAttributeInterface$MessageAttributeType attri
		int length
		byte[] result
		java.util.Iterator it
	public static de.javawi.jstun.attribute.UnknownAttribute parse (byte[])  throws de.javawi.jstun.attribute.MessageAttributeParsingException 
		byte[] temp
		long attri
		int i
		de.javawi.jstun.attribute.UnknownAttribute result
		de.javawi.jstun.util.UtilityException ue
		byte[] data
}

de/javawi/jstun/attribute/UnknownMessageAttributeException.class
UnknownMessageAttributeException.java
package de.javawi.jstun.attribute
public de.javawi.jstun.attribute.UnknownMessageAttributeException extends de.javawi.jstun.attribute.MessageAttributeParsingException {
	private static final long serialVersionUID
	private de.javawi.jstun.attribute.MessageAttributeInterface$MessageAttributeType type
	public void  (java.lang.String, de.javawi.jstun.attribute.MessageAttributeInterface$MessageAttributeType) 
		String mesg
		de.javawi.jstun.attribute.MessageAttributeInterface$MessageAttributeType type
	public de.javawi.jstun.attribute.MessageAttributeInterface$MessageAttributeType getType () 
}

de/javawi/jstun/attribute/Username.class
Username.java
package de.javawi.jstun.attribute
public de.javawi.jstun.attribute.Username extends de.javawi.jstun.attribute.MessageAttribute {
	String username
	public void  () 
	public void  (java.lang.String) 
		String username
	public java.lang.String getUsername () 
	public void setUsername (java.lang.String) 
		String username
	public byte[] getBytes ()  throws de.javawi.jstun.util.UtilityException 
		int length
		byte[] result
		byte[] temp
	public static de.javawi.jstun.attribute.Username parse (byte[]) 
		byte[] data
		de.javawi.jstun.attribute.Username result
		String username
}

de/javawi/jstun/header/
de/javawi/jstun/header/MessageHeader.class
MessageHeader.java
package de.javawi.jstun.header
public de.javawi.jstun.header.MessageHeader extends java.lang.Object implements de.javawi.jstun.header.MessageHeaderInterface  {
	private static final org.apache.commons.logging.Log LOGGER
	de.javawi.jstun.header.MessageHeaderInterface$MessageHeaderType type
	byte[] id
	java.util.TreeMap ma
	public void  () 
	public void  (de.javawi.jstun.header.MessageHeaderInterface$MessageHeaderType) 
		de.javawi.jstun.header.MessageHeaderInterface$MessageHeaderType type
	public void setType (de.javawi.jstun.header.MessageHeaderInterface$MessageHeaderType) 
		de.javawi.jstun.header.MessageHeaderInterface$MessageHeaderType type
	public de.javawi.jstun.header.MessageHeaderInterface$MessageHeaderType getType () 
	public static int typeToInteger (de.javawi.jstun.header.MessageHeaderInterface$MessageHeaderType) 
		de.javawi.jstun.header.MessageHeaderInterface$MessageHeaderType type
	public void setTransactionID (byte[]) 
		byte[] id
	public void generateTransactionID ()  throws de.javawi.jstun.util.UtilityException 
	public byte[] getTransactionID () 
		byte[] idCopy
	public boolean equalTransactionID (de.javawi.jstun.header.MessageHeader) 
		de.javawi.jstun.header.MessageHeader header
		byte[] idHeader
	public void addMessageAttribute (de.javawi.jstun.attribute.MessageAttribute) 
		de.javawi.jstun.attribute.MessageAttribute attri
	public de.javawi.jstun.attribute.MessageAttribute getMessageAttribute (de.javawi.jstun.attribute.MessageAttributeInterface$MessageAttributeType) 
		de.javawi.jstun.attribute.MessageAttributeInterface$MessageAttributeType type
	public byte[] getBytes ()  throws de.javawi.jstun.util.UtilityException 
		de.javawi.jstun.attribute.MessageAttribute attri
		de.javawi.jstun.attribute.MessageAttribute attri
		int length
		java.util.Iterator it
		byte[] result
		int offset
	public int getLength ()  throws de.javawi.jstun.util.UtilityException 
	public void parseAttributes (byte[])  throws de.javawi.jstun.attribute.MessageAttributeParsingException 
		de.javawi.jstun.attribute.MessageAttribute ma
		byte[] lengthArray
		int length
		byte[] cuttedData
		int offset
		de.javawi.jstun.util.UtilityException ue
		byte[] data
	public static de.javawi.jstun.header.MessageHeader parseHeader (byte[])  throws de.javawi.jstun.header.MessageHeaderParsingException 
		de.javawi.jstun.header.MessageHeader mh
		byte[] typeArray
		int type
		de.javawi.jstun.util.UtilityException ue
		byte[] data
	static void  () 
}

de/javawi/jstun/header/MessageHeaderException.class
MessageHeaderException.java
package de.javawi.jstun.header
public de.javawi.jstun.header.MessageHeaderException extends java.lang.Exception {
	private static final long serialVersionUID
	public void  (java.lang.String) 
		String mesg
}

de/javawi/jstun/header/MessageHeaderInterface$MessageHeaderType.class
MessageHeaderInterface.java
package de.javawi.jstun.header
public final enum de.javawi.jstun.header.MessageHeaderInterface$MessageHeaderType extends java.lang.Enum {
	public static final enum de.javawi.jstun.header.MessageHeaderInterface$MessageHeaderType BindingRequest
	public static final enum de.javawi.jstun.header.MessageHeaderInterface$MessageHeaderType BindingResponse
	public static final enum de.javawi.jstun.header.MessageHeaderInterface$MessageHeaderType BindingErrorResponse
	public static final enum de.javawi.jstun.header.MessageHeaderInterface$MessageHeaderType SharedSecretRequest
	public static final enum de.javawi.jstun.header.MessageHeaderInterface$MessageHeaderType SharedSecretResponse
	public static final enum de.javawi.jstun.header.MessageHeaderInterface$MessageHeaderType SharedSecretErrorResponse
	private static final synthetic de.javawi.jstun.header.MessageHeaderInterface$MessageHeaderType[] $VALUES
	public static final de.javawi.jstun.header.MessageHeaderInterface$MessageHeaderType[] values () 
	public static de.javawi.jstun.header.MessageHeaderInterface$MessageHeaderType valueOf (java.lang.String) 
		String name
	private void  (java.lang.String, int) 
	static void  () 
}

de/javawi/jstun/header/MessageHeaderInterface.class
MessageHeaderInterface.java
package de.javawi.jstun.header
public abstract de.javawi.jstun.header.MessageHeaderInterface extends java.lang.Object {
	public static final int BINDINGREQUEST
	public static final int BINDINGRESPONSE
	public static final int BINDINGERRORRESPONSE
	public static final int SHAREDSECRETREQUEST
	public static final int SHAREDSECRETRESPONSE
	public static final int SHAREDSECRETERRORRESPONSE
}

de/javawi/jstun/header/MessageHeaderParsingException.class
MessageHeaderParsingException.java
package de.javawi.jstun.header
public de.javawi.jstun.header.MessageHeaderParsingException extends de.javawi.jstun.header.MessageHeaderException {
	private static final long serialVersionUID
	public void  (java.lang.String) 
		String mesg
}

de/javawi/jstun/test/
de/javawi/jstun/test/BindingLifetimeTest$BindingLifetimeTask.class
BindingLifetimeTest.java
package de.javawi.jstun.test
 de.javawi.jstun.test.BindingLifetimeTest$BindingLifetimeTask extends java.util.TimerTask {
	final synthetic de.javawi.jstun.test.BindingLifetimeTest this$0
	public void  (de.javawi.jstun.test.BindingLifetimeTest) 
	public void run () 
		Exception e
	public void lifetimeQuery ()  throws de.javawi.jstun.util.UtilityException de.javawi.jstun.attribute.MessageAttributeException de.javawi.jstun.header.MessageHeaderParsingException de.javawi.jstun.attribute.MessageAttributeParsingException java.io.IOException 
		java.net.DatagramPacket receive
		de.javawi.jstun.test.BindingLifetimeTest$BindingLifetimeTask task
		java.net.DatagramSocket socket
		de.javawi.jstun.header.MessageHeader sendMH
		de.javawi.jstun.attribute.ChangeRequest changeRequest
		de.javawi.jstun.attribute.ResponseAddress responseAddress
		byte[] data
		java.net.DatagramPacket send
		de.javawi.jstun.header.MessageHeader receiveMH
		de.javawi.jstun.attribute.ErrorCode ec
		de.javawi.jstun.test.BindingLifetimeTest$BindingLifetimeTask task
		java.net.SocketTimeoutException ste
}

de/javawi/jstun/test/BindingLifetimeTest.class
BindingLifetimeTest.java
package de.javawi.jstun.test
public de.javawi.jstun.test.BindingLifetimeTest extends java.lang.Object {
	private static final org.apache.commons.logging.Log LOGGER
	String stunServer
	int port
	int timeout
	de.javawi.jstun.attribute.MappedAddress ma
	java.util.Timer timer
	java.net.DatagramSocket initialSocket
	int upperBinarySearchLifetime
	int lowerBinarySearchLifetime
	int binarySearchLifetime
	int lifetime
	boolean completed
	public void  (java.lang.String, int) 
		String stunServer
		int port
	public void test ()  throws de.javawi.jstun.util.UtilityException java.net.SocketException java.net.UnknownHostException java.io.IOException de.javawi.jstun.attribute.MessageAttributeParsingException de.javawi.jstun.attribute.MessageAttributeException de.javawi.jstun.header.MessageHeaderParsingException 
		de.javawi.jstun.test.BindingLifetimeTest$BindingLifetimeTask task
	private boolean bindingCommunicationInitialSocket ()  throws de.javawi.jstun.util.UtilityException java.io.IOException de.javawi.jstun.header.MessageHeaderParsingException de.javawi.jstun.attribute.MessageAttributeParsingException 
		java.net.DatagramPacket receive
		de.javawi.jstun.header.MessageHeader sendMH
		de.javawi.jstun.attribute.ChangeRequest changeRequest
		byte[] data
		java.net.DatagramPacket send
		de.javawi.jstun.header.MessageHeader receiveMH
		de.javawi.jstun.attribute.ErrorCode ec
	public int getLifetime () 
	public boolean isCompleted () 
	public void setUpperBinarySearchLifetime (int) 
		int upperBinarySearchLifetime
	static synthetic org.apache.commons.logging.Log access$000 () 
	static synthetic boolean access$100 (de.javawi.jstun.test.BindingLifetimeTest)  throws de.javawi.jstun.util.UtilityException java.io.IOException de.javawi.jstun.header.MessageHeaderParsingException de.javawi.jstun.attribute.MessageAttributeParsingException 
		de.javawi.jstun.test.BindingLifetimeTest x0
	static void  () 
}

de/javawi/jstun/test/DiscoveryInfo.class
DiscoveryInfo.java
package de.javawi.jstun.test
public de.javawi.jstun.test.DiscoveryInfo extends java.lang.Object {
	private java.net.InetAddress testIP
	private boolean error
	private int errorResponseCode
	private String errorReason
	private boolean openAccess
	private boolean blockedUDP
	private boolean fullCone
	private boolean restrictedCone
	private boolean portRestrictedCone
	private boolean symmetric
	private boolean symmetricUDPFirewall
	private java.net.InetAddress publicIP
	public void  (java.net.InetAddress) 
		java.net.InetAddress testIP
	public boolean isError () 
	public void setError (int, java.lang.String) 
		int responseCode
		String reason
	public boolean isOpenAccess () 
	public void setOpenAccess () 
	public boolean isBlockedUDP () 
	public void setBlockedUDP () 
	public boolean isFullCone () 
	public void setFullCone () 
	public boolean isPortRestrictedCone () 
	public void setPortRestrictedCone () 
	public boolean isRestrictedCone () 
	public void setRestrictedCone () 
	public boolean isSymmetric () 
	public void setSymmetric () 
	public boolean isSymmetricUDPFirewall () 
	public void setSymmetricUDPFirewall () 
	public java.net.InetAddress getPublicIP () 
	public java.net.InetAddress getLocalIP () 
	public void setPublicIP (java.net.InetAddress) 
		java.net.InetAddress publicIP
	public java.lang.String toString () 
		java.net.SocketException se
		StringBuffer sb
}

de/javawi/jstun/test/DiscoveryTest.class
DiscoveryTest.java
package de.javawi.jstun.test
public de.javawi.jstun.test.DiscoveryTest extends java.lang.Object {
	private static final org.apache.commons.logging.Log LOGGER
	java.net.InetAddress iaddress
	String stunServer
	int port
	int timeoutInitValue
	de.javawi.jstun.attribute.MappedAddress ma
	de.javawi.jstun.attribute.ChangedAddress ca
	boolean nodeNatted
	java.net.DatagramSocket socketTest1
	de.javawi.jstun.test.DiscoveryInfo di
	public void  (java.net.InetAddress, java.lang.String, int) 
		java.net.InetAddress iaddress
		String stunServer
		int port
	public de.javawi.jstun.test.DiscoveryInfo test ()  throws de.javawi.jstun.util.UtilityException java.net.SocketException java.net.UnknownHostException java.io.IOException de.javawi.jstun.attribute.MessageAttributeParsingException de.javawi.jstun.attribute.MessageAttributeException de.javawi.jstun.header.MessageHeaderParsingException 
	private boolean test1 ()  throws de.javawi.jstun.util.UtilityException java.net.SocketException java.net.UnknownHostException java.io.IOException de.javawi.jstun.attribute.MessageAttributeParsingException de.javawi.jstun.header.MessageHeaderParsingException 
		java.net.DatagramPacket receive
		de.javawi.jstun.header.MessageHeader sendMH
		de.javawi.jstun.attribute.ChangeRequest changeRequest
		byte[] data
		java.net.DatagramPacket send
		de.javawi.jstun.header.MessageHeader receiveMH
		de.javawi.jstun.attribute.ErrorCode ec
		int timeoutAddValue
		java.net.SocketTimeoutException ste
		int timeSinceFirstTransmission
		int timeout
	private boolean test2 ()  throws de.javawi.jstun.util.UtilityException java.net.SocketException java.net.UnknownHostException java.io.IOException de.javawi.jstun.attribute.MessageAttributeParsingException de.javawi.jstun.attribute.MessageAttributeException de.javawi.jstun.header.MessageHeaderParsingException 
		java.net.DatagramPacket receive
		java.net.DatagramSocket sendSocket
		de.javawi.jstun.header.MessageHeader sendMH
		de.javawi.jstun.attribute.ChangeRequest changeRequest
		byte[] data
		java.net.DatagramPacket send
		int localPort
		java.net.InetAddress localAddress
		java.net.DatagramSocket receiveSocket
		de.javawi.jstun.header.MessageHeader receiveMH
		de.javawi.jstun.attribute.ErrorCode ec
		int timeoutAddValue
		java.net.SocketTimeoutException ste
		int timeSinceFirstTransmission
		int timeout
	private boolean test1Redo ()  throws de.javawi.jstun.util.UtilityException java.net.SocketException java.net.UnknownHostException java.io.IOException de.javawi.jstun.attribute.MessageAttributeParsingException de.javawi.jstun.header.MessageHeaderParsingException 
		java.net.DatagramPacket receive
		de.javawi.jstun.header.MessageHeader sendMH
		de.javawi.jstun.attribute.ChangeRequest changeRequest
		byte[] data
		java.net.DatagramPacket send
		de.javawi.jstun.header.MessageHeader receiveMH
		de.javawi.jstun.attribute.MappedAddress ma2
		de.javawi.jstun.attribute.ErrorCode ec
		int timeoutAddValue
		java.net.SocketTimeoutException ste2
		int timeSinceFirstTransmission
		int timeout
	private void test3 ()  throws de.javawi.jstun.util.UtilityException java.net.SocketException java.net.UnknownHostException java.io.IOException de.javawi.jstun.attribute.MessageAttributeParsingException de.javawi.jstun.attribute.MessageAttributeException de.javawi.jstun.header.MessageHeaderParsingException 
		java.net.DatagramPacket receive
		java.net.DatagramSocket sendSocket
		de.javawi.jstun.header.MessageHeader sendMH
		de.javawi.jstun.attribute.ChangeRequest changeRequest
		byte[] data
		java.net.DatagramPacket send
		int localPort
		java.net.InetAddress localAddress
		java.net.DatagramSocket receiveSocket
		de.javawi.jstun.header.MessageHeader receiveMH
		de.javawi.jstun.attribute.ErrorCode ec
		int timeoutAddValue
		java.net.SocketTimeoutException ste
		int timeSinceFirstTransmission
		int timeout
	static void  () 
}

de/javawi/jstun/test/demo/
de/javawi/jstun/test/demo/BindingLifetimeTestDemo.class
BindingLifetimeTestDemo.java
package de.javawi.jstun.test.demo
public de.javawi.jstun.test.demo.BindingLifetimeTestDemo extends java.lang.Object {
	public void  () 
	public static void main (java.lang.String[]) 
		java.util.logging.Handler fh
		de.javawi.jstun.test.BindingLifetimeTest test
		boolean continueWhile
		Exception e
		String[] args
}

de/javawi/jstun/test/demo/DiscoveryTestDemo.class
DiscoveryTestDemo.java
package de.javawi.jstun.test.demo
public de.javawi.jstun.test.demo.DiscoveryTestDemo extends java.lang.Object implements java.lang.Runnable  {
	java.net.InetAddress iaddress
	public void  (java.net.InetAddress) 
		java.net.InetAddress iaddress
	public void run () 
		de.javawi.jstun.test.DiscoveryTest test
		java.net.BindException be
		Exception e
	public static void main (java.lang.String[]) 
		Thread thread
		java.net.InetAddress iaddress
		java.net.NetworkInterface iface
		java.util.Enumeration iaddresses
		java.util.logging.Handler fh
		java.util.Enumeration ifaces
		Exception e
		String[] args
}

de/javawi/jstun/test/demo/StunServer$StunServerReceiverThread.class
StunServer.java
package de.javawi.jstun.test.demo
 de.javawi.jstun.test.demo.StunServer$StunServerReceiverThread extends java.lang.Thread {
	private java.net.DatagramSocket receiverSocket
	private java.net.DatagramSocket changedPort
	private java.net.DatagramSocket changedIP
	private java.net.DatagramSocket changedPortIP
	final synthetic de.javawi.jstun.test.demo.StunServer this$0
	void  (de.javawi.jstun.test.demo.StunServer, java.net.DatagramSocket) 
		java.net.DatagramSocket socket
		java.util.Iterator i$
		java.net.DatagramSocket datagramSocket
	public void run () 
		de.javawi.jstun.attribute.SourceAddress sa
		byte[] data
		java.net.DatagramPacket send
		de.javawi.jstun.attribute.SourceAddress sa
		byte[] data
		java.net.DatagramPacket send
		de.javawi.jstun.attribute.SourceAddress sa
		byte[] data
		java.net.DatagramPacket send
		de.javawi.jstun.attribute.SourceAddress sa
		byte[] data
		java.net.DatagramPacket send
		de.javawi.jstun.attribute.ChangeRequest cr
		de.javawi.jstun.attribute.ResponseAddress ra
		de.javawi.jstun.header.MessageHeader sendMH
		de.javawi.jstun.attribute.MappedAddress ma
		de.javawi.jstun.attribute.ChangedAddress ca
		de.javawi.jstun.header.MessageHeader sendMH
		de.javawi.jstun.attribute.UnknownAttribute ua
		byte[] data
		java.net.DatagramPacket send
		de.javawi.jstun.attribute.UnknownMessageAttributeException umae
		java.net.DatagramPacket receive
		de.javawi.jstun.header.MessageHeader receiveMH
		java.io.IOException ioe
		de.javawi.jstun.attribute.MessageAttributeParsingException mape
		de.javawi.jstun.attribute.MessageAttributeException mae
		de.javawi.jstun.header.MessageHeaderParsingException mhpe
		de.javawi.jstun.util.UtilityException ue
		ArrayIndexOutOfBoundsException aioobe
}

de/javawi/jstun/test/demo/StunServer.class
StunServer.java
package de.javawi.jstun.test.demo
public de.javawi.jstun.test.demo.StunServer extends java.lang.Object {
	private static final org.apache.commons.logging.Log LOGGER
	java.util.Vector sockets
	public void  (int, java.net.InetAddress, int, java.net.InetAddress)  throws java.net.SocketException 
		int primaryPort
		java.net.InetAddress primary
		int secondaryPort
		java.net.InetAddress secondary
	public void start ()  throws java.net.SocketException 
		de.javawi.jstun.test.demo.StunServer$StunServerReceiverThread ssrt
		java.net.DatagramSocket socket
		java.util.Iterator i$
	public static void main (java.lang.String[]) 
		java.util.logging.Handler fh
		de.javawi.jstun.test.demo.StunServer ss
		java.net.SocketException se
		java.net.UnknownHostException uhe
		java.io.IOException ioe
		String[] args
	static synthetic org.apache.commons.logging.Log access$000 () 
	static void  () 
}

de/javawi/jstun/test/demo/ice/
de/javawi/jstun/test/demo/ice/Candidate$CandidateType.class
Candidate.java
package de.javawi.jstun.test.demo.ice
public final enum de.javawi.jstun.test.demo.ice.Candidate$CandidateType extends java.lang.Enum {
	public static final enum de.javawi.jstun.test.demo.ice.Candidate$CandidateType Local
	public static final enum de.javawi.jstun.test.demo.ice.Candidate$CandidateType ServerReflexive
	public static final enum de.javawi.jstun.test.demo.ice.Candidate$CandidateType PeerReflexive
	public static final enum de.javawi.jstun.test.demo.ice.Candidate$CandidateType Relayed
	private static final synthetic de.javawi.jstun.test.demo.ice.Candidate$CandidateType[] $VALUES
	public static final de.javawi.jstun.test.demo.ice.Candidate$CandidateType[] values () 
	public static de.javawi.jstun.test.demo.ice.Candidate$CandidateType valueOf (java.lang.String) 
		String name
	private void  (java.lang.String, int) 
	static void  () 
}

de/javawi/jstun/test/demo/ice/Candidate.class
Candidate.java
package de.javawi.jstun.test.demo.ice
public de.javawi.jstun.test.demo.ice.Candidate extends java.lang.Object implements java.lang.Comparable  {
	private java.net.DatagramSocket socket
	private de.javawi.jstun.test.demo.ice.Candidate$CandidateType type
	private short componentId
	private int priority
	private int foundationId
	private de.javawi.jstun.test.demo.ice.Candidate base
	private boolean isInUse
	public void  (de.javawi.jstun.util.Address, short)  throws java.net.SocketException java.net.UnknownHostException de.javawi.jstun.util.UtilityException 
		de.javawi.jstun.util.Address address
		short componentId
	public void  (de.javawi.jstun.util.Address, de.javawi.jstun.test.demo.ice.Candidate$CandidateType, short, de.javawi.jstun.test.demo.ice.Candidate)  throws java.net.SocketException java.net.UnknownHostException de.javawi.jstun.util.UtilityException 
		de.javawi.jstun.util.Address address
		de.javawi.jstun.test.demo.ice.Candidate$CandidateType type
		short componentId
		de.javawi.jstun.test.demo.ice.Candidate base
	public void setBase (de.javawi.jstun.test.demo.ice.Candidate) 
		de.javawi.jstun.test.demo.ice.Candidate base
	public de.javawi.jstun.test.demo.ice.Candidate getBase () 
	public de.javawi.jstun.test.demo.ice.Candidate$CandidateType getCandidateType () 
	public void setComponentId (short) 
		short componentId
	public short getComponentId () 
	public void setFoundationId (int) 
		int foundationId
	public int getFoundationId () 
	public void setPriority (int) 
		int priority
	public int getPriority () 
	public de.javawi.jstun.util.Address getAddress ()  throws de.javawi.jstun.util.UtilityException 
	public int getPort () 
	public void setInUse (boolean) 
		boolean isInUse
	public boolean getInUse () 
	public int compareTo (java.lang.Object) 
		Object arg0
		de.javawi.jstun.test.demo.ice.Candidate cand
	public boolean equals (java.lang.Object) 
		Object o
}

de/javawi/jstun/test/demo/ice/ICENegociator$1.class
ICENegociator.java
package de.javawi.jstun.test.demo.ice
 de.javawi.jstun.test.demo.ice.ICENegociator$1 extends java.lang.Object implements java.lang.Runnable  {
	final synthetic java.net.NetworkInterface val$iface
	final synthetic de.javawi.jstun.test.demo.ice.ICENegociator this$0
	void  (de.javawi.jstun.test.demo.ice.ICENegociator, java.net.NetworkInterface) 
	public void run () 
}

de/javawi/jstun/test/demo/ice/ICENegociator.class
ICENegociator.java
package de.javawi.jstun.test.demo.ice
public de.javawi.jstun.test.demo.ice.ICENegociator extends java.lang.Object {
	private static org.apache.commons.logging.Log logger
	private static final int LOCAL_PREFERENCE
	private static final int SERVER_REFLEXIVE_PREFERENCE
	private static final int PEER_REFLEXIVE_PREFERENCE
	private static final int RELAYED_PREFERENCE
	private short componentId
	private String stunServer
	private int stunPort
	java.util.HashSet candidates
	public void  (short) 
		short componentId
	public void  (java.lang.String, int, short) 
		String stunServer
		int stunPort
		short componentId
	public void gatherCandidateAddresses () 
		java.net.NetworkInterface iface
		java.util.Enumeration ifaces
		java.net.SocketException se
		InterruptedException e
		java.util.concurrent.ThreadPoolExecutor tpe
	private void testInterface (java.net.NetworkInterface) 
		de.javawi.jstun.test.demo.ice.Candidate cand
		de.javawi.jstun.test.demo.ice.Candidate local
		de.javawi.jstun.test.DiscoveryTest test
		de.javawi.jstun.test.DiscoveryInfo di
		de.javawi.jstun.header.MessageHeaderParsingException mhpe
		de.javawi.jstun.attribute.MessageAttributeException mae
		de.javawi.jstun.util.UtilityException ue
		java.net.UnknownHostException uhe
		java.net.SocketException se
		java.io.IOException ioe
		java.net.InetAddress iaddress
		java.net.NetworkInterface iface
		java.util.Enumeration iaddresses
	public void prioritizeCandidates () 
		de.javawi.jstun.test.demo.ice.Candidate cand
		de.javawi.jstun.test.demo.ice.Candidate$CandidateType type
		int typeValue
		int localValue
		int componentValue
		de.javawi.jstun.test.demo.ice.Candidate cand
		de.javawi.jstun.test.demo.ice.Candidate$CandidateType type
		int priority
		int numberLocal
		int numberServerReflexive
		int numberPeerReflexive
		int numberRelayed
		java.util.Iterator iterCandidates
	public java.util.List getSortedCandidates () 
		java.util.Vector sortedCandidates
	public static void main (java.lang.String[]) 
		String[] args
		de.javawi.jstun.test.demo.ice.ICENegociator cc
		java.util.List sortedCandidates
	static synthetic void access$000 (de.javawi.jstun.test.demo.ice.ICENegociator, java.net.NetworkInterface) 
		de.javawi.jstun.test.demo.ice.ICENegociator x0
		java.net.NetworkInterface x1
	static void  () 
}

de/javawi/jstun/util/
de/javawi/jstun/util/Address.class
Address.java
package de.javawi.jstun.util
public de.javawi.jstun.util.Address extends java.lang.Object {
	int firstOctet
	int secondOctet
	int thirdOctet
	int fourthOctet
	public void  (int, int, int, int)  throws de.javawi.jstun.util.UtilityException 
		int firstOctet
		int secondOctet
		int thirdOctet
		int fourthOctet
	public void  (java.lang.String)  throws de.javawi.jstun.util.UtilityException 
		int temp
		String address
		java.util.StringTokenizer st
		int i
	public void  (byte[])  throws de.javawi.jstun.util.UtilityException 
		byte[] address
	public java.lang.String toString () 
	public byte[] getBytes ()  throws de.javawi.jstun.util.UtilityException 
		byte[] result
	public java.net.InetAddress getInetAddress ()  throws de.javawi.jstun.util.UtilityException java.net.UnknownHostException 
		byte[] address
	public boolean equals (java.lang.Object) 
		byte[] data1
		byte[] data2
		de.javawi.jstun.util.UtilityException ue
		Object obj
	public int hashCode () 
}

de/javawi/jstun/util/Utility.class
Utility.java
package de.javawi.jstun.util
public de.javawi.jstun.util.Utility extends java.lang.Object {
	public void  () 
	public static final byte integerToOneByte (int)  throws de.javawi.jstun.util.UtilityException 
		int value
	public static final byte[] integerToTwoBytes (int)  throws de.javawi.jstun.util.UtilityException 
		int value
		byte[] result
	public static final byte[] integerToFourBytes (int)  throws de.javawi.jstun.util.UtilityException 
		int value
		byte[] result
	public static final int oneByteToInteger (byte)  throws de.javawi.jstun.util.UtilityException 
		byte value
	public static final int twoBytesToInteger (byte[])  throws de.javawi.jstun.util.UtilityException 
		byte[] value
		int temp0
		int temp1
	public static final long fourBytesToLong (byte[])  throws de.javawi.jstun.util.UtilityException 
		byte[] value
		int temp0
		int temp1
		int temp2
		int temp3
}

de/javawi/jstun/util/UtilityException.class
UtilityException.java
package de.javawi.jstun.util
public de.javawi.jstun.util.UtilityException extends java.lang.Exception {
	private static final long serialVersionUID
	void  (java.lang.String) 
		String mesg
}

apache-license-2.0.txt
gnu-public-license-2.txt