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_VERIFIED
XML_LAST_UPDATE
FIELD_HTTP_REQUEST_STRING, FIELD_HTTP_SERIALS_REQUEST_STRING
FIELD_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, toXmlElement
getCreationTime, getExpireTime, isNewerThan, resetCreationTime, setExpireTime
public 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.IllegalArgumentException
public InfoServiceDBEntry(java.util.Vector a_ListenerInterfaces) throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentException
public 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 AbstractDatabaseEntry
public void deletePersistence()
deletePersistence
in class AbstractDatabaseEntry
public 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 IDistributable
getId
in interface ListenerInterface.IListenerInterfaceGetter
getId
in class AbstractDatabaseEntry
public org.w3c.dom.Element getXmlStructure()
AbstractDistributableDatabaseEntry
getXmlStructure
in class AbstractDistributableDatabaseEntry
public java.lang.String getName()
public boolean isVerified()
AbstractDistributableCertifiedDatabaseEntry
isVerified
in interface IVerifyable
isVerified
in interface ICertifiedDatabaseEntry
isVerified
in class AbstractDistributableCertifiedDatabaseEntry
public boolean isValid()
IVerifyable
isValid
in interface IVerifyable
isValid
in interface ICertifiedDatabaseEntry
public boolean isPerfServerEnabled()
public boolean checkId()
AbstractDistributableCertifiedDatabaseEntry
checkId
in interface ICertifiedDatabaseEntry
checkId
in class AbstractDistributableCertifiedDatabaseEntry
public XMLSignature getSignature()
getSignature
in interface ICertifiedDatabaseEntry
getSignature
in class AbstractDistributableCertifiedDatabaseEntry
public MultiCertPath getCertPath()
getCertPath
in interface IVerifyable
getCertPath
in interface ICertifiedDatabaseEntry
public long getLastUpdate()
AbstractDatabaseEntry
getLastUpdate
in class AbstractDatabaseEntry
public long getVersionNumber()
getVersionNumber
in class AbstractDatabaseEntry
public boolean hasPrimaryForwarderList()
public java.util.Vector getListenerInterfaces()
getListenerInterfaces
in interface ListenerInterface.IListenerInterfaceGetter
public ListenerInterface getListenerInterface(java.lang.String a_id)
getListenerInterface
in interface ListenerInterface.IListenerInterfaceGetter
public boolean isUserDefined()
isUserDefined
in class AbstractDatabaseEntry
public void setUserDefined(boolean b)
public void markAsBootstrap()
public boolean isBootstrap()
isBootstrap
in interface IBoostrapable
public java.lang.String toString()
toString
in class java.lang.Object
public boolean equals(java.lang.Object a_object)
equals
in class java.lang.Object
a_object
- The object with which to compare.public int hashCode()
hashCode
in class java.lang.Object
public java.lang.String getPostFile()
getPostFile
in interface IDistributable
public 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.Exception
public java.util.Hashtable getMixCascades() throws java.lang.Exception
java.lang.Exception
public java.util.Hashtable getPaymentInstances() throws java.lang.Exception
java.lang.Exception
public PaymentInstanceDBEntry getPaymentInstance(java.lang.String a_piID) throws java.lang.Exception
java.lang.Exception
public java.util.Hashtable getInfoServices(boolean a_bJAPClientContext) throws java.lang.Exception
java.lang.Exception
public java.util.Hashtable getMixCascades(boolean a_bJAPClientContext) throws java.lang.Exception
java.lang.Exception
public TermsAndConditionsTemplate getTCTemplate(java.lang.String a_id) throws java.lang.Exception
mixId
- The ID of the mix to get the MixInfo for.java.lang.Exception
public java.util.Hashtable getPaymentInstances(boolean a_bJAPClientContext) throws java.lang.Exception
java.lang.Exception
public java.util.Hashtable getMixes(boolean a_bJAPClientContext) throws java.lang.Exception
java.lang.Exception
public java.util.Hashtable getInfoServices() throws java.lang.Exception
java.lang.Exception
public java.net.InetAddress getMyIP(java.lang.Integer a_proxyPolicy) throws java.lang.Exception
java.lang.Exception
public java.util.Hashtable getMixCascadeSerials() throws java.lang.Exception
java.lang.Exception
public java.util.Hashtable getInfoServiceSerials() throws java.lang.Exception
java.lang.Exception
public MixInfo getMixInfo(java.lang.String mixId) throws java.lang.Exception
mixId
- The ID of the mix to get the MixInfo for.java.lang.Exception
public 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.Exception
public java.util.Hashtable getExitAddresses() throws java.lang.Exception
java.lang.Exception
public 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.Exception
public JAPMinVersion getNewVersionNumber() throws java.lang.Exception
java.lang.Exception
public java.util.Hashtable getMessages() throws java.lang.Exception
java.lang.Exception
public java.util.Hashtable getMessageSerials() throws java.lang.Exception
java.lang.Exception
public 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.Exception
public JAPVersionInfo getJAPVersionInfo(int a_japVersionType) throws java.lang.Exception
a_japVersionType
- Selects the JAPVersionInfo (release / development). See the
constants in JAPVersionInfo.java.lang.Exception
public byte[] getTorNodesList() throws java.lang.Exception
java.lang.Exception
public byte[] getMixminionNodesList() throws java.lang.Exception
java.lang.Exception
public 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.Exception
public 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.Exception
public org.w3c.dom.Element getForwarder() throws java.lang.Exception
java.lang.Exception
public void setSocketFactorty(HTTPClient.HTTPClientSocketFactory socketFactory)
Copyright © 2023. All rights reserved.