forked from I2P_Developers/i2p.i2p
* I2CP:
- Add session limit, add new status code for refused - Ramdomize session ID, prevent dups - Make session IDs immutable
This commit is contained in:
@ -43,14 +43,25 @@ public class SessionId extends DataStructureImpl {
|
||||
return _sessionId;
|
||||
}
|
||||
|
||||
/** @param id 0-65535 */
|
||||
/**
|
||||
* @param id 0-65535
|
||||
* @throws IllegalArgumentException
|
||||
* @throws IllegalStateException if already set
|
||||
*/
|
||||
public void setSessionId(int id) {
|
||||
if (id < 0 || id > 65535)
|
||||
throw new IllegalArgumentException();
|
||||
if (_sessionId >= 0)
|
||||
throw new IllegalStateException();
|
||||
_sessionId = id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws IllegalStateException if already set
|
||||
*/
|
||||
public void readBytes(InputStream in) throws DataFormatException, IOException {
|
||||
if (_sessionId >= 0)
|
||||
throw new IllegalStateException();
|
||||
_sessionId = (int) DataHelper.readLong(in, 2);
|
||||
}
|
||||
|
||||
@ -62,12 +73,12 @@ public class SessionId extends DataStructureImpl {
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if ((obj == null) || !(obj instanceof SessionId)) return false;
|
||||
return _sessionId == ((SessionId) obj).getSessionId();
|
||||
return _sessionId == ((SessionId) obj)._sessionId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return _sessionId;
|
||||
return 777 * _sessionId;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -31,6 +31,8 @@ public class SessionStatusMessage extends I2CPMessageImpl {
|
||||
public final static int STATUS_CREATED = 1;
|
||||
public final static int STATUS_UPDATED = 2;
|
||||
public final static int STATUS_INVALID = 3;
|
||||
/** @since 0.9.12 */
|
||||
public final static int STATUS_REFUSED = 4;
|
||||
|
||||
public SessionStatusMessage() {
|
||||
setStatus(STATUS_INVALID);
|
||||
|
Reference in New Issue
Block a user