diff --git a/src/buffer_reader.js b/src/buffer_reader.js index 871d154..1871e5f 100644 --- a/src/buffer_reader.js +++ b/src/buffer_reader.js @@ -15,6 +15,11 @@ class BufferReader { return data; } + readRemainingBytes() { + const remainingBytesCount = this.buffer.length - this.pointer; + return this.readBytes(remainingBytesCount); + } + readString() { const remainingBytesCount = this.buffer.length - this.pointer; const remainingBytes = this.readBytes(remainingBytesCount); diff --git a/src/connection/connection.js b/src/connection/connection.js index 747504f..3e8eb39 100644 --- a/src/connection/connection.js +++ b/src/connection/connection.js @@ -195,6 +195,8 @@ class Connection extends EventEmitter { this.onEndOfContactsResponse(bufferReader); } else if(responseCode === Constants.ResponseCodes.Sent){ this.onSentResponse(bufferReader); + } else if(responseCode === Constants.ResponseCodes.ExportContact){ + this.onExportContactResponse(bufferReader); } else if(responseCode === Constants.PushCodes.Advert){ this.onAdvertPush(bufferReader); } else if(responseCode === Constants.PushCodes.PathUpdated){ @@ -281,6 +283,13 @@ class Connection extends EventEmitter { }); } + onExportContactResponse(bufferReader) { + const raw = bufferReader.readRemainingBytes(); + this.emit(Constants.ResponseCodes.ExportContact, { + advertPacketBytes: raw, + }); + } + onSelfInfoResponse(bufferReader) { this.emit(Constants.ResponseCodes.SelfInfo, { type: bufferReader.readByte(),