public class InfoServiceDBEntry extends AbstractDistributableCertifiedDatabaseEntry implements IVerifyable, IBoostrapable, ListenerInterface.IListenerInterfaceGetter
AbstractDistributableDatabaseEntry.SerialDBEntry, AbstractDistributableDatabaseEntry.Serials| Modifier and Type | Field and Description |
|---|---|
static int |
DEFAULT_GET_XML_CONNECTION_TIMEOUT |
static java.lang.String |
HEADER_STATISTICS |
static int |
MINIMUM_GET_XML_CONNECTION_TIMEOUT |
static java.lang.Integer |
PROXY_AUTO |
static java.lang.Integer |
PROXY_FORCE_ANONYMOUS |
static java.lang.Integer |
PROXY_FORCE_DEFAULT |
static java.lang.Integer |
PROXY_FORCE_DIRECT |
static java.lang.String |
XML_ELEMENT_CONTAINER_NAME |
static java.lang.String |
XML_ELEMENT_NAME |
XML_ATTR_LAST_UPDATE, XML_ATTR_SERIAL, XML_ATTR_VALID, XML_ATTR_VERIFIEDXML_LAST_UPDATEFIELD_HTTP_REQUEST_STRING, FIELD_HTTP_SERIALS_REQUEST_STRINGFIELD_XML_ELEMENT_CONTAINER_NAME, FIELD_XML_ELEMENT_NAME, XML_ATTR_ID, XML_ATTR_LANGUAGE, XML_ATTR_VERSION| Constructor and Description |
|---|
InfoServiceDBEntry(org.w3c.dom.Element a_infoServiceNode)
Creates a new InfoService from XML description (InfoService node).
|
InfoServiceDBEntry(org.w3c.dom.Element a_infoServiceNode,
long a_timeout)
Creates a new InfoService from XML description (InfoService node).
|
InfoServiceDBEntry(java.lang.String a_host,
int a_port)
This is a JAP-only constructor needed to initialise JAP with default
InfoServices.
|
InfoServiceDBEntry(java.lang.String a_strName,
java.lang.String a_id,
java.util.Vector a_listeners,
boolean a_primaryForwarderList,
boolean a_japClientContext,
long a_creationTime,
long a_serialNumber,
boolean a_bPerfServerEnabled,
ServiceSoftware a_software)
Creates a new InfoServiceDBEntry.
|
InfoServiceDBEntry(java.util.Vector a_ListenerInterfaces) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
checkId()
Checks if the ID is valid.
|
void |
deletePersistence() |
boolean |
equals(java.lang.Object a_object)
Compares this object to another one.
|
MultiCertPath |
getCertPath() |
static int |
getConnectionTimeout() |
java.net.InetAddress[] |
getDNSQuery(java.lang.String host)
Sends a GET /dnsquery request for a given host and returns the received
IP addresses
|
java.util.Hashtable |
getExitAddresses() |
org.w3c.dom.Element |
getForwarder()
Downloads a forwarder entry from the infoservice.
|
java.lang.String |
getId()
Returns the ID of the infoservice.
|
java.util.Hashtable |
getInfoServices()
Get a Vector of all infoservices the infoservice knows.
|
java.util.Hashtable |
getInfoServices(boolean a_bJAPClientContext) |
java.util.Hashtable |
getInfoServiceSerials() |
JAPVersionInfo |
getJAPVersionInfo(int a_japVersionType)
Returns the JAPVersionInfo for the specified type.
|
long |
getLastUpdate()
Returns the time in milliseconds when this db entry was created from the origin instance.
|
java.util.Hashtable |
getLatestJava()
Get the latest java versions the infoservice knows ordered by vendors.
|
java.util.Hashtable |
getLatestJavaSerials() |
ListenerInterface |
getListenerInterface(java.lang.String a_id) |
java.util.Vector |
getListenerInterfaces()
Returns a snapshot of all listener interfaces of this infoservice.
|
java.util.Hashtable |
getMessages() |
java.util.Hashtable |
getMessageSerials() |
MixCascade |
getMixCascadeInfo(java.lang.String a_cascadeID)
Gets information about a specific cascade from the InfoService.
|
java.util.Hashtable |
getMixCascades()
Get a Vector of all mixcascades the infoservice knows.
|
java.util.Hashtable |
getMixCascades(boolean a_bJAPClientContext) |
java.util.Hashtable |
getMixCascadeSerials() |
java.util.Hashtable |
getMixes(boolean a_bJAPClientContext) |
MixInfo |
getMixInfo(java.lang.String mixId)
Get the MixInfo for the mix with the given ID.
|
byte[] |
getMixminionNodesList()
Get the list with the mixminion nodes from the infoservice.
|
java.net.InetAddress |
getMyIP(java.lang.Integer a_proxyPolicy) |
java.lang.String |
getName()
Returns the name of the infoservice.
|
JAPMinVersion |
getNewVersionNumber()
Get the version String of the currently minimum required JAP version from
the infoservice.
|
PaymentInstanceDBEntry |
getPaymentInstance(java.lang.String a_piID) |
java.util.Hashtable |
getPaymentInstances()
Get a Vector of all payment instances the infoservice knows.
|
java.util.Hashtable |
getPaymentInstances(boolean a_bJAPClientContext) |
PerformanceInfo |
getPerformanceInfo()
Sends a /performanceinfo request to the Info Service, retrieves the data
and creates a new PerformanceInfo object.
|
java.lang.String |
getPostFile()
This returns the filename (InfoService command), where this
InfoServerDBEntry is posted at other InfoServices.
|
XMLSignature |
getSignature() |
StatusInfo |
getStatusInfo(MixCascade a_cascade)
Get the StatusInfo for the cascade with the given ID.
|
StatusInfo |
getStatusInfo(MixCascade a_cascade,
long a_timeout)
Get the StatusInfo for the cascade with the given ID.
|
TermsAndConditionsTemplate |
getTCTemplate(java.lang.String a_id)
Get the MixInfo for the mix with the given ID.
|
byte[] |
getTorNodesList()
Get the list with the tor nodes from the infoservice.
|
long |
getVersionNumber()
Returns the time when this infoservice entry was created by the origin
infoservice or by the JAP client (if it is a user-defined entry).
|
org.w3c.dom.Element |
getXmlStructure()
Returns the XML structure for this db entry.
|
int |
hashCode()
Returns a hashcode for this instance of InfoServiceDBEntry.
|
boolean |
hasPrimaryForwarderList()
Returns, whether this infoservice keeps a list of JAP forwarders (true)
or not (false).
|
boolean |
isBootstrap() |
static boolean |
isInfoServiceStatisticsUsed() |
boolean |
isNeighbour()
Returns whether this infoservice is a neighbour of our one.
|
boolean |
isPerfServerEnabled() |
boolean |
isPersistanceDeletionAllowed() |
boolean |
isUserDefined()
Returns whether this InfoServiceDBEntry was generated by a user within
the JAP client (true) or was generated by the InfoService itself (false).
|
boolean |
isValid()
Returns if the object is valid at this time
|
boolean |
isVerified()
Returns if this entry has been verified with a certificate chain.
|
void |
markAsBootstrap() |
org.w3c.dom.Element |
postNewForwarder(org.w3c.dom.Element a_japForwarderNode)
Posts a new forwarder to an infoservice with a JAP forwarder list.
|
org.w3c.dom.Element |
postRenewForwarder(org.w3c.dom.Element a_japForwarderNode)
Posts the renew message for a forwarder to an infoservice with a JAP
forwarder list.
|
static void |
setBrowserIdentification(IBrowserIdentification a_browserIdentification) |
static void |
setConnectionTimeout(int a_timeoutMS) |
static void |
setJVMNetworkErrorHandling(java.lang.Runnable a_threadRestartAfterJVMSocketError,
long a_timeRestartAfterJVMSocketError)
Sets the options for handling a JVM socket error that cannot be
recovered.
|
static void |
setMutableProxyInterface(IMutableProxyInterface a_proxyInterface) |
void |
setNeighbour(boolean a_bNeighbour)
Forces this InfoService to be a neighbour or not.
|
void |
setSocketFactorty(HTTPClient.HTTPClientSocketFactory socketFactory) |
static void |
setUseInfoServiceStatistics(boolean a_bUseStatistics) |
void |
setUserDefined(boolean b) |
java.lang.String |
toString()
Returns a String representation for this InfoService object.
|
getHttpRequestString, getHttpSerialsRequestString, getPostData, getPostEncoding, toXmlElementgetCreationTime, getExpireTime, isNewerThan, resetCreationTime, setExpireTimepublic static final java.lang.String XML_ELEMENT_CONTAINER_NAME
public static final java.lang.String XML_ELEMENT_NAME
public static final java.lang.String HEADER_STATISTICS
public static final int MINIMUM_GET_XML_CONNECTION_TIMEOUT
public static final int DEFAULT_GET_XML_CONNECTION_TIMEOUT
public static final java.lang.Integer PROXY_AUTO
public static final java.lang.Integer PROXY_FORCE_ANONYMOUS
public static final java.lang.Integer PROXY_FORCE_DEFAULT
public static final java.lang.Integer PROXY_FORCE_DIRECT
public InfoServiceDBEntry(org.w3c.dom.Element a_infoServiceNode)
throws XMLParseException
a_infoServiceNode - The InfoService node from an XML document.XMLParseException - if an error in the xml structure occurspublic InfoServiceDBEntry(org.w3c.dom.Element a_infoServiceNode,
long a_timeout)
throws XMLParseException
a_infoServiceNode - The InfoService node from an XML document.a_timeout - The timeout of the new InfoServiceDBEntry within the database of
all InfoServices, see System.currentTimeMillis().XMLParseException - if an error in the xml structure occurspublic InfoServiceDBEntry(java.lang.String a_host,
int a_port)
throws java.lang.IllegalArgumentException
a_host - host name of this info servicea_port - the port where this IS is reachablejava.lang.IllegalArgumentExceptionpublic InfoServiceDBEntry(java.util.Vector a_ListenerInterfaces)
throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentExceptionpublic InfoServiceDBEntry(java.lang.String a_strName,
java.lang.String a_id,
java.util.Vector a_listeners,
boolean a_primaryForwarderList,
boolean a_japClientContext,
long a_creationTime,
long a_serialNumber,
boolean a_bPerfServerEnabled,
ServiceSoftware a_software)
throws java.lang.IllegalArgumentException
a_strName - The name of the infoservice or null, if a generic name shall be
used.a_listeners - The listeners the infoservice is (virtually) listening on.a_primaryForwarderList - Whether the infoservice holds a primary forwarder list.a_japClientContext - Whether the new entry will be created within the context of the
JAP client (true) or the context of the InfoService (false).
This setting influences the timeout of the created entry within
the database of all infoservices.a_serialNumber - the serial number that indicates if the document has changed
since the last time it was updatedjava.lang.IllegalArgumentException - if invalid listener interfaces are givenpublic boolean isPersistanceDeletionAllowed()
isPersistanceDeletionAllowed in class AbstractDatabaseEntrypublic void deletePersistence()
deletePersistence in class AbstractDatabaseEntrypublic static void setUseInfoServiceStatistics(boolean a_bUseStatistics)
public static boolean isInfoServiceStatisticsUsed()
public static void setConnectionTimeout(int a_timeoutMS)
public static int getConnectionTimeout()
public static void setBrowserIdentification(IBrowserIdentification a_browserIdentification)
public static void setMutableProxyInterface(IMutableProxyInterface a_proxyInterface)
public static void setJVMNetworkErrorHandling(java.lang.Runnable a_threadRestartAfterJVMSocketError,
long a_timeRestartAfterJVMSocketError)
a_threadRestartAfterJVMSocketError - Runnablea_timeRestartAfterJVMSocketError - longpublic java.lang.String getId()
getId in interface IDistributablegetId in interface ListenerInterface.IListenerInterfaceGettergetId in class AbstractDatabaseEntrypublic org.w3c.dom.Element getXmlStructure()
AbstractDistributableDatabaseEntrygetXmlStructure in class AbstractDistributableDatabaseEntrypublic java.lang.String getName()
public boolean isVerified()
AbstractDistributableCertifiedDatabaseEntryisVerified in interface IVerifyableisVerified in interface ICertifiedDatabaseEntryisVerified in class AbstractDistributableCertifiedDatabaseEntrypublic boolean isValid()
IVerifyableisValid in interface IVerifyableisValid in interface ICertifiedDatabaseEntrypublic boolean isPerfServerEnabled()
public boolean checkId()
AbstractDistributableCertifiedDatabaseEntrycheckId in interface ICertifiedDatabaseEntrycheckId in class AbstractDistributableCertifiedDatabaseEntrypublic XMLSignature getSignature()
getSignature in interface ICertifiedDatabaseEntrygetSignature in class AbstractDistributableCertifiedDatabaseEntrypublic MultiCertPath getCertPath()
getCertPath in interface IVerifyablegetCertPath in interface ICertifiedDatabaseEntrypublic long getLastUpdate()
AbstractDatabaseEntrygetLastUpdate in class AbstractDatabaseEntrypublic long getVersionNumber()
getVersionNumber in class AbstractDatabaseEntrypublic boolean hasPrimaryForwarderList()
public java.util.Vector getListenerInterfaces()
getListenerInterfaces in interface ListenerInterface.IListenerInterfaceGetterpublic ListenerInterface getListenerInterface(java.lang.String a_id)
getListenerInterface in interface ListenerInterface.IListenerInterfaceGetterpublic boolean isUserDefined()
isUserDefined in class AbstractDatabaseEntrypublic void setUserDefined(boolean b)
public void markAsBootstrap()
public boolean isBootstrap()
isBootstrap in interface IBoostrapablepublic java.lang.String toString()
toString in class java.lang.Objectpublic boolean equals(java.lang.Object a_object)
equals in class java.lang.Objecta_object - The object with which to compare.public int hashCode()
hashCode in class java.lang.Objectpublic java.lang.String getPostFile()
getPostFile in interface IDistributablepublic boolean isNeighbour()
public void setNeighbour(boolean a_bNeighbour)
a_bNeighbour - if this IS should be a neighbourpublic MixCascade getMixCascadeInfo(java.lang.String a_cascadeID) throws java.lang.Exception
a_cascadeID - Stringjava.lang.Exceptionpublic java.util.Hashtable getMixCascades()
throws java.lang.Exception
java.lang.Exceptionpublic java.util.Hashtable getPaymentInstances()
throws java.lang.Exception
java.lang.Exceptionpublic PaymentInstanceDBEntry getPaymentInstance(java.lang.String a_piID) throws java.lang.Exception
java.lang.Exceptionpublic java.util.Hashtable getInfoServices(boolean a_bJAPClientContext)
throws java.lang.Exception
java.lang.Exceptionpublic java.util.Hashtable getMixCascades(boolean a_bJAPClientContext)
throws java.lang.Exception
java.lang.Exceptionpublic TermsAndConditionsTemplate getTCTemplate(java.lang.String a_id) throws java.lang.Exception
mixId - The ID of the mix to get the MixInfo for.java.lang.Exceptionpublic java.util.Hashtable getPaymentInstances(boolean a_bJAPClientContext)
throws java.lang.Exception
java.lang.Exceptionpublic java.util.Hashtable getMixes(boolean a_bJAPClientContext)
throws java.lang.Exception
java.lang.Exceptionpublic java.util.Hashtable getInfoServices()
throws java.lang.Exception
java.lang.Exceptionpublic java.net.InetAddress getMyIP(java.lang.Integer a_proxyPolicy)
throws java.lang.Exception
java.lang.Exceptionpublic java.util.Hashtable getMixCascadeSerials()
throws java.lang.Exception
java.lang.Exceptionpublic java.util.Hashtable getInfoServiceSerials()
throws java.lang.Exception
java.lang.Exceptionpublic MixInfo getMixInfo(java.lang.String mixId) throws java.lang.Exception
mixId - The ID of the mix to get the MixInfo for.java.lang.Exceptionpublic StatusInfo getStatusInfo(MixCascade a_cascade) throws java.lang.Exception
cascadeId - The ID of the mixcascade to get the StatusInfo for.cascadeLength - The length of the mixcascade (number of mixes). We need this for
calculating the AnonLevel in the StatusInfo.java.lang.Exceptionpublic java.util.Hashtable getExitAddresses()
throws java.lang.Exception
java.lang.Exceptionpublic StatusInfo getStatusInfo(MixCascade a_cascade, long a_timeout) throws java.lang.Exception
cascadeId - The ID of the mixcascade to get the StatusInfo for.cascadeLength - The length of the mixcascade (number of mixes). We need this for
calculating the AnonLevel in the StatusInfo.java.lang.Exceptionpublic JAPMinVersion getNewVersionNumber() throws java.lang.Exception
java.lang.Exceptionpublic java.util.Hashtable getMessages()
throws java.lang.Exception
java.lang.Exceptionpublic java.util.Hashtable getMessageSerials()
throws java.lang.Exception
java.lang.Exceptionpublic PerformanceInfo getPerformanceInfo() throws java.lang.Exception
java.lang.Exception - if the Signature can't be verified, the Info Service doesn't
have the information available or can't be reached.public java.net.InetAddress[] getDNSQuery(java.lang.String host)
host - public java.util.Hashtable getLatestJava()
throws java.lang.Exception
java.lang.Exception - If we can't get a connection to the infoservicepublic java.util.Hashtable getLatestJavaSerials()
throws java.lang.Exception
java.lang.Exceptionpublic JAPVersionInfo getJAPVersionInfo(int a_japVersionType) throws java.lang.Exception
a_japVersionType - Selects the JAPVersionInfo (release / development). See the
constants in JAPVersionInfo.java.lang.Exceptionpublic byte[] getTorNodesList()
throws java.lang.Exception
java.lang.Exceptionpublic byte[] getMixminionNodesList()
throws java.lang.Exception
java.lang.Exceptionpublic org.w3c.dom.Element postNewForwarder(org.w3c.dom.Element a_japForwarderNode)
throws java.lang.Exception
a_japForwarderNode - The JapForwarder node of the "post forwarder to infoservice" XML
structure.java.lang.Exceptionpublic org.w3c.dom.Element postRenewForwarder(org.w3c.dom.Element a_japForwarderNode)
throws java.lang.Exception
a_japForwarderNode - The JapForwarder node of the "renew forwarder" XML structure.java.lang.Exceptionpublic org.w3c.dom.Element getForwarder()
throws java.lang.Exception
java.lang.Exceptionpublic void setSocketFactorty(HTTPClient.HTTPClientSocketFactory socketFactory)
Copyright © 2023. All rights reserved.