|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object anon.infoservice.AbstractDatabaseEntry anon.infoservice.AbstractDistributableDatabaseEntry anon.infoservice.AbstractDistributableCertifiedDatabaseEntry anon.infoservice.InfoServiceDBEntry
public class InfoServiceDBEntry
Holds the information for an infoservice.
Nested Class Summary | |
---|---|
private static class |
InfoServiceDBEntry.EntryGetter
|
Nested classes/interfaces inherited from class anon.infoservice.AbstractDistributableDatabaseEntry |
---|
AbstractDistributableDatabaseEntry.SerialDBEntry, AbstractDistributableDatabaseEntry.Serials |
Field Summary | |
---|---|
static int |
DEFAULT_GET_XML_CONNECTION_TIMEOUT
|
private boolean |
m_bPrimaryForwarderList
Stores whether this infoservice has a primary forwarder list (true) or not (false). |
private JAPCertificate |
m_certificate
|
private CertPath |
m_certPath
|
private long |
m_creationTimeStamp
Stores the time when this infoservice entry was created by the origin infoservice or by the JAP client (if it is a user-defined entry). |
private static int |
m_getXmlConnectionTimeout
|
private ServiceSoftware |
m_infoserviceSoftware
Some information about the used infoservice software. |
private java.util.Vector |
m_listenerInterfaces
The ListenerInterfaces of all interfaces (internet-address and port) this infoservice is (virtually) listening on. |
private boolean |
m_neighbour
Describes whether this infoservice is a neighbour of our one. |
private int |
m_preferedListenerInterface
Stores the number of the prefered ListenerInterface in the listenerInterfaces list. |
private static IMutableProxyInterface |
m_proxyInterface
A proxy interface that is used for all connections and may change over time. |
private long |
m_serial
|
private XMLSignature |
m_signature
|
private java.lang.String |
m_strInfoServiceId
This is the ID of this infoservice. |
private java.lang.String |
m_strName
The name of the infoservice. |
private boolean |
m_userDefined
Stores whether this InfoServiceDBEntry is user-defined within the JAP client (true) or was generated from the InfoService itself (false). |
private org.w3c.dom.Element |
m_xmlDescription
Stores the XML representation of this InfoServiceDBEntry. |
static java.lang.String |
XML_ELEMENT_CONTAINER_NAME
|
static java.lang.String |
XML_ELEMENT_NAME
|
Fields inherited from class anon.infoservice.AbstractDistributableDatabaseEntry |
---|
XML_ATTR_LAST_UPDATE, XML_ATTR_SERIAL, XML_ATTR_VALID, XML_ATTR_VERIFIED |
Fields inherited from class anon.infoservice.AbstractDatabaseEntry |
---|
XML_LAST_UPDATE |
Fields inherited from interface anon.infoservice.IDistributable |
---|
FIELD_HTTP_REQUEST_STRING, FIELD_HTTP_SERIALS_REQUEST_STRING |
Fields inherited from interface anon.util.IXMLEncodable |
---|
FIELD_XML_ELEMENT_CONTAINER_NAME, FIELD_XML_ELEMENT_NAME, XML_ATTR_ID, XML_ATTR_VERSION |
Constructor Summary | |
---|---|
|
InfoServiceDBEntry(org.w3c.dom.Element a_infoServiceNode)
Creates a new InfoService from XML description (InfoService node). |
|
InfoServiceDBEntry(org.w3c.dom.Element a_infoServiceNode,
boolean a_japClientContext)
Creates a new InfoService from XML description (InfoService node). |
private |
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)
Creates a new InfoServiceDBEntry. |
Method Summary | |
---|---|
boolean |
checkId()
Checks if the ID is valid. |
private HTTPConnectionDescriptor |
connectToInfoService(HTTPConnectionDescriptor lastConnectionDescriptor,
ImmutableProxyInterface a_proxy,
int a_supportedEncodings)
Creates a new HTTPConnection to a ListenerInterface from the list of all listener interfaces. |
private byte[] |
doHttpRequest(HttpRequestStructure a_httpRequest,
int a_supportedEncodings)
|
boolean |
equals(java.lang.Object a_object)
Compares this object to another one. |
private static java.lang.String |
generateId(ListenerInterface a_listenerInterface)
This is only for compatibility and will be rewritten next time. |
private org.w3c.dom.Element |
generateXmlRepresentation()
Generates the XML representation for this InfoServiceDBEntry. |
JAPCertificate |
getCertificate()
|
CertPath |
getCertPath()
|
static int |
getConnectionTimeout()
|
private java.util.Hashtable |
getEntries(InfoServiceDBEntry.EntryGetter a_getter)
|
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()
|
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.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.Vector |
getPaymentInstances()
Get a Vector of all payment instances the infoservice knows. |
java.lang.String |
getPostFile()
This returns the filename (InfoService command), where this InfoServerDBEntry is posted at other InfoServices. |
StatusInfo |
getStatusInfo(java.lang.String cascadeId,
int cascadeLength)
Get the StatusInfo for the cascade with the given ID. |
byte[] |
getTorNodesList()
Get the list with the tor nodes from the infoservice. |
private java.util.Hashtable |
getUpdateEntries(java.lang.Class a_distributable,
boolean a_bSerials)
|
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). |
private org.w3c.dom.Document |
getXmlDocument(HttpRequestStructure a_httpRequest)
|
private org.w3c.dom.Document |
getXmlDocument(HttpRequestStructure a_httpRequest,
int a_supportedEncodings)
|
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 |
isNeighbour()
Returns whether this infoservice is a neighbour of our one. |
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. |
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 |
setConnectionTimeout(int a_timeoutMS)
|
static void |
setMutableProxyInterface(IMutableProxyInterface a_proxyInterface)
|
void |
setNeighbour(boolean a_bNeighbour)
Forces this InfoService to be a neighbour or not. |
void |
setUserDefined(boolean b)
|
java.lang.String |
toString()
Returns a String representation for this InfoService object. |
Methods inherited from class anon.infoservice.AbstractDistributableDatabaseEntry |
---|
getHttpRequestString, getHttpSerialsRequestString, getPostData, getPostEncoding, toXmlElement |
Methods inherited from class anon.infoservice.AbstractDatabaseEntry |
---|
getCreationTime, getExpireTime, isNewerThan, resetCreationTime |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final java.lang.String XML_ELEMENT_CONTAINER_NAME
public static final java.lang.String XML_ELEMENT_NAME
public static final int DEFAULT_GET_XML_CONNECTION_TIMEOUT
private static int m_getXmlConnectionTimeout
private static IMutableProxyInterface m_proxyInterface
private java.lang.String m_strInfoServiceId
private java.lang.String m_strName
private ServiceSoftware m_infoserviceSoftware
private java.util.Vector m_listenerInterfaces
private int m_preferedListenerInterface
private boolean m_bPrimaryForwarderList
private boolean m_neighbour
private org.w3c.dom.Element m_xmlDescription
private boolean m_userDefined
private long m_creationTimeStamp
private JAPCertificate m_certificate
private XMLSignature m_signature
private CertPath m_certPath
private long m_serial
Constructor Detail |
---|
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, boolean a_japClientContext) throws XMLParseException
a_infoServiceNode
- The InfoService node from an XML document.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.
XMLParseException
- if an error in the xml structure occursprivate 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 reachable
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) 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 updated
java.lang.IllegalArgumentException
- if invalid listener interfaces are givenMethod Detail |
---|
private static java.lang.String generateId(ListenerInterface a_listenerInterface)
a_listenerInterface
- a ListenerInterface of this InfoService
public static void setConnectionTimeout(int a_timeoutMS)
public static int getConnectionTimeout()
public static void setMutableProxyInterface(IMutableProxyInterface a_proxyInterface)
private org.w3c.dom.Element generateXmlRepresentation()
public java.lang.String getId()
getId
in interface IDistributable
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 class AbstractDistributableCertifiedDatabaseEntry
public boolean isValid()
IVerifyable
isValid
in interface IVerifyable
public boolean checkId()
AbstractDistributableCertifiedDatabaseEntry
checkId
in class AbstractDistributableCertifiedDatabaseEntry
public JAPCertificate getCertificate()
getCertificate
in class AbstractDistributableCertifiedDatabaseEntry
public CertPath getCertPath()
getCertPath
in interface IVerifyable
public long getLastUpdate()
AbstractDatabaseEntry
getLastUpdate
in class AbstractDatabaseEntry
public long getVersionNumber()
getVersionNumber
in class AbstractDatabaseEntry
public boolean hasPrimaryForwarderList()
public java.util.Vector getListenerInterfaces()
public boolean isUserDefined()
isUserDefined
in class AbstractDatabaseEntry
public void setUserDefined(boolean b)
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 neighbourprivate HTTPConnectionDescriptor connectToInfoService(HTTPConnectionDescriptor lastConnectionDescriptor, ImmutableProxyInterface a_proxy, int a_supportedEncodings)
lastConnectionDescriptor
- The HTTPConnectionDescriptor of the last connection try (the
last output of this function) or null, if you want a new
connection (connection to preferedListenerInterface is opened).a_supportedEncodings
- supported http encodings ussed to receive the data (e.g. HTTP_ENCODING_ZLIB)
private org.w3c.dom.Document getXmlDocument(HttpRequestStructure a_httpRequest) throws java.lang.Exception
java.lang.Exception
private org.w3c.dom.Document getXmlDocument(HttpRequestStructure a_httpRequest, int a_supportedEncodings) throws java.lang.Exception
java.lang.Exception
private byte[] doHttpRequest(HttpRequestStructure a_httpRequest, int a_supportedEncodings) throws java.lang.Exception
java.lang.Exception
public MixCascade getMixCascadeInfo(java.lang.String a_cascadeID) throws java.lang.Exception
a_cascadeID
- String
java.lang.Exception
public java.util.Hashtable getMixCascades() throws java.lang.Exception
java.lang.Exception
public java.util.Vector getPaymentInstances() throws java.lang.Exception
java.lang.Exception
public PaymentInstanceDBEntry getPaymentInstance(java.lang.String a_piID) throws java.lang.Exception
java.lang.Exception
private java.util.Hashtable getEntries(InfoServiceDBEntry.EntryGetter a_getter) 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 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.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(java.lang.String cascadeId, int cascadeLength) 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
private java.util.Hashtable getUpdateEntries(java.lang.Class a_distributable, boolean a_bSerials) 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 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
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |