From c99a42f0b153386b3bf0bc5a55dcac75ea1a1f08 Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Mon, 9 Sep 2019 15:35:58 +0000
Subject: [PATCH] I2CP: Write single byte directly

---
 core/java/src/net/i2p/data/i2cp/HostLookupMessage.java          | 2 +-
 core/java/src/net/i2p/data/i2cp/HostReplyMessage.java           | 2 +-
 core/java/src/net/i2p/data/i2cp/I2CPMessageHandler.java         | 2 ++
 core/java/src/net/i2p/data/i2cp/RequestLeaseSetMessage.java     | 2 +-
 .../src/net/i2p/data/i2cp/RequestVariableLeaseSetMessage.java   | 2 +-
 core/java/src/net/i2p/data/i2cp/SessionStatusMessage.java       | 2 +-
 6 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/core/java/src/net/i2p/data/i2cp/HostLookupMessage.java b/core/java/src/net/i2p/data/i2cp/HostLookupMessage.java
index b25b4b3518..716f7e6e20 100644
--- a/core/java/src/net/i2p/data/i2cp/HostLookupMessage.java
+++ b/core/java/src/net/i2p/data/i2cp/HostLookupMessage.java
@@ -163,7 +163,7 @@ public class HostLookupMessage extends I2CPMessageImpl {
             _sessionId.writeBytes(os);
             DataHelper.writeLong(os, 4, _reqID);
             DataHelper.writeLong(os, 4, _timeout);
-            DataHelper.writeLong(os, 1, _lookupType);
+            os.write((byte) _lookupType);
             if (_lookupType == LOOKUP_HASH) {
                 _hash.writeBytes(os);
             } else {
diff --git a/core/java/src/net/i2p/data/i2cp/HostReplyMessage.java b/core/java/src/net/i2p/data/i2cp/HostReplyMessage.java
index 8f0c3bfc0b..415c4c6efa 100644
--- a/core/java/src/net/i2p/data/i2cp/HostReplyMessage.java
+++ b/core/java/src/net/i2p/data/i2cp/HostReplyMessage.java
@@ -139,7 +139,7 @@ public class HostReplyMessage extends I2CPMessageImpl {
         try {
             _sessionId.writeBytes(os);
             DataHelper.writeLong(os, 4, _reqID);
-            DataHelper.writeLong(os, 1, _code);
+            os.write((byte) _code);
             if (_code == RESULT_SUCCESS)
                 _dest.writeBytes(os);
         } catch (DataFormatException dfe) {
diff --git a/core/java/src/net/i2p/data/i2cp/I2CPMessageHandler.java b/core/java/src/net/i2p/data/i2cp/I2CPMessageHandler.java
index 49224d1120..88c78ca0af 100644
--- a/core/java/src/net/i2p/data/i2cp/I2CPMessageHandler.java
+++ b/core/java/src/net/i2p/data/i2cp/I2CPMessageHandler.java
@@ -112,6 +112,8 @@ public class I2CPMessageHandler {
             return new HostReplyMessage();
         case CreateLeaseSet2Message.MESSAGE_TYPE:
             return new CreateLeaseSet2Message();
+        case BlindingInfoMessage.MESSAGE_TYPE:
+            return new BlindingInfoMessage();
         default:
             throw new I2CPMessageException("The type " + type + " is an unknown I2CP message");
         }
diff --git a/core/java/src/net/i2p/data/i2cp/RequestLeaseSetMessage.java b/core/java/src/net/i2p/data/i2cp/RequestLeaseSetMessage.java
index dfd6ad654a..8aca349f62 100644
--- a/core/java/src/net/i2p/data/i2cp/RequestLeaseSetMessage.java
+++ b/core/java/src/net/i2p/data/i2cp/RequestLeaseSetMessage.java
@@ -122,7 +122,7 @@ public class RequestLeaseSetMessage extends I2CPMessageImpl {
         ByteArrayOutputStream os = new ByteArrayOutputStream(256);
         try {
             _sessionId.writeBytes(os);
-            DataHelper.writeLong(os, 1, _endpoints.size());
+            os.write((byte) _endpoints.size());
             for (int i = 0; i < _endpoints.size(); i++) {
                 Hash router = getRouter(i);
                 router.writeBytes(os);
diff --git a/core/java/src/net/i2p/data/i2cp/RequestVariableLeaseSetMessage.java b/core/java/src/net/i2p/data/i2cp/RequestVariableLeaseSetMessage.java
index 39213369d3..beb3ad93b2 100644
--- a/core/java/src/net/i2p/data/i2cp/RequestVariableLeaseSetMessage.java
+++ b/core/java/src/net/i2p/data/i2cp/RequestVariableLeaseSetMessage.java
@@ -112,7 +112,7 @@ public class RequestVariableLeaseSetMessage extends I2CPMessageImpl {
         ByteArrayOutputStream os = new ByteArrayOutputStream(256);
         try {
             _sessionId.writeBytes(os);
-            DataHelper.writeLong(os, 1, _endpoints.size());
+            os.write((byte) _endpoints.size());
             for (int i = 0; i < _endpoints.size(); i++) {
                 _endpoints.get(i).writeBytes(os);
             }
diff --git a/core/java/src/net/i2p/data/i2cp/SessionStatusMessage.java b/core/java/src/net/i2p/data/i2cp/SessionStatusMessage.java
index 2ccdea12c5..ea135f7927 100644
--- a/core/java/src/net/i2p/data/i2cp/SessionStatusMessage.java
+++ b/core/java/src/net/i2p/data/i2cp/SessionStatusMessage.java
@@ -85,7 +85,7 @@ public class SessionStatusMessage extends I2CPMessageImpl {
         ByteArrayOutputStream os = new ByteArrayOutputStream(64);
         try {
             _sessionId.writeBytes(os);
-            DataHelper.writeLong(os, 1, _status);
+            os.write((byte) _status);
         } catch (DataFormatException dfe) {
             throw new I2CPMessageException("Error writing out the message data", dfe);
         }
-- 
GitLab