forked from I2P_Developers/i2p.i2p
Save I2CP client version for future reference
This commit is contained in:
@@ -67,6 +67,7 @@ class ClientConnectionRunner {
|
||||
private SessionId _sessionId;
|
||||
/** user's config */
|
||||
private SessionConfig _config;
|
||||
private String _clientVersion;
|
||||
/** static mapping of MessageId to Payload, storing messages for retrieval */
|
||||
private final Map<MessageId, Payload> _messages;
|
||||
/** lease set request state, or null if there is no request pending on at the moment */
|
||||
@@ -177,6 +178,24 @@ class ClientConnectionRunner {
|
||||
|
||||
/** current client's config */
|
||||
public SessionConfig getConfig() { return _config; }
|
||||
|
||||
/**
|
||||
* The client version.
|
||||
* @since 0.9.7
|
||||
*/
|
||||
public void setClientVersion(String version) {
|
||||
_clientVersion = version;
|
||||
}
|
||||
|
||||
/**
|
||||
* The client version.
|
||||
* @return null if unknown or less than 0.8.7
|
||||
* @since 0.9.7
|
||||
*/
|
||||
public String getClientVersion() {
|
||||
return _clientVersion;
|
||||
}
|
||||
|
||||
/** current client's sessionkeymanager */
|
||||
public SessionKeyManager getSessionKeyManager() { return _sessionKeyManager; }
|
||||
|
||||
|
||||
@@ -134,7 +134,8 @@ class ClientMessageEventListener implements I2CPMessageReader.I2CPMessageEventLi
|
||||
private void handleGetDate(I2CPMessageReader reader, GetDateMessage message) {
|
||||
// sent by clients >= 0.8.7
|
||||
String clientVersion = message.getVersion();
|
||||
// TODO - save client's version string for future reference
|
||||
if (clientVersion != null)
|
||||
_runner.setClientVersion(clientVersion);
|
||||
try {
|
||||
// only send version if the client can handle it (0.8.7 or greater)
|
||||
_runner.doSend(new SetDateMessage(clientVersion != null ? CoreVersion.VERSION : null));
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package net.i2p.router.client;
|
||||
|
||||
import net.i2p.CoreVersion;
|
||||
import net.i2p.data.i2cp.I2CPMessage;
|
||||
import net.i2p.data.i2cp.I2CPMessageException;
|
||||
import net.i2p.internal.I2CPMessageQueue;
|
||||
@@ -68,5 +69,21 @@ class QueuedClientConnectionRunner extends ClientConnectionRunner {
|
||||
if (!success)
|
||||
throw new I2CPMessageException("I2CP write to queue failed");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Does nothing. Client version is the core version.
|
||||
* @since 0.9.7
|
||||
*/
|
||||
@Override
|
||||
public void setClientVersion(String version) {}
|
||||
|
||||
/**
|
||||
* The client version.
|
||||
* @return CoreVersion.VERSION
|
||||
* @since 0.9.7
|
||||
*/
|
||||
@Override
|
||||
public String getClientVersion() {
|
||||
return CoreVersion.VERSION;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user