package org.apache.tomcat.jni;

public class Sockaddr
{
  public long pool;
  public String hostname;
  public String servname;
  public int port;
  public int family;
  public long next;
}


/* Location:              C:\Users\lgoldstein\.m2\repository\tomcat\tomcat-apr\5.5.23\tomcat-apr-5.5.23.jar!\org\apache\tomcat\jni\Sockaddr.class
 * Java compiler version: 2 (46.0)
 * JD-Core Version:       0.7.1
 */