Browse Source

bump protobuf

v4
Mathias Buus 5 years ago
parent
commit
733a48dfa6
  1. 135
      lib/messages.js
  2. 6
      package.json
  3. 1
      schema.proto

135
lib/messages.js

@ -34,10 +34,6 @@ defineHolepunch()
defineMessage()
function defineHolepunch () {
var enc = [
encodings.bytes
]
Holepunch.encodingLength = encodingLength
Holepunch.encode = encode
Holepunch.decode = decode
@ -45,11 +41,11 @@ function defineHolepunch () {
function encodingLength (obj) {
var length = 0
if (defined(obj.from)) {
var len = enc[0].encodingLength(obj.from)
var len = encodings.bytes.encodingLength(obj.from)
length += 1 + len
}
if (defined(obj.to)) {
var len = enc[0].encodingLength(obj.to)
var len = encodings.bytes.encodingLength(obj.to)
length += 1 + len
}
return length
@ -61,13 +57,13 @@ function defineHolepunch () {
var oldOffset = offset
if (defined(obj.from)) {
buf[offset++] = 18
enc[0].encode(obj.from, buf, offset)
offset += enc[0].encode.bytes
encodings.bytes.encode(obj.from, buf, offset)
offset += encodings.bytes.encode.bytes
}
if (defined(obj.to)) {
buf[offset++] = 26
enc[0].encode(obj.to, buf, offset)
offset += enc[0].encode.bytes
encodings.bytes.encode(obj.to, buf, offset)
offset += encodings.bytes.encode.bytes
}
encode.bytes = offset - oldOffset
return buf
@ -92,12 +88,12 @@ function defineHolepunch () {
var tag = prefix >> 3
switch (tag) {
case 2:
obj.from = enc[0].decode(buf, offset)
offset += enc[0].decode.bytes
obj.from = encodings.bytes.decode(buf, offset)
offset += encodings.bytes.decode.bytes
break
case 3:
obj.to = enc[0].decode(buf, offset)
offset += enc[0].decode.bytes
obj.to = encodings.bytes.decode(buf, offset)
offset += encodings.bytes.decode.bytes
break
default:
offset = skip(prefix & 7, buf, offset)
@ -107,13 +103,6 @@ function defineHolepunch () {
}
function defineMessage () {
var enc = [
encodings.enum,
encodings.varint,
encodings.bytes,
encodings.string
]
Message.encodingLength = encodingLength
Message.encode = encode
Message.decode = decode
@ -121,37 +110,41 @@ function defineMessage () {
function encodingLength (obj) {
var length = 0
if (!defined(obj.type)) throw new Error("type is required")
var len = enc[0].encodingLength(obj.type)
var len = encodings.enum.encodingLength(obj.type)
length += 1 + len
if (!defined(obj.rid)) throw new Error("rid is required")
var len = enc[1].encodingLength(obj.rid)
var len = encodings.varint.encodingLength(obj.rid)
length += 1 + len
if (defined(obj.to)) {
var len = encodings.bytes.encodingLength(obj.to)
length += 1 + len
}
if (defined(obj.id)) {
var len = enc[2].encodingLength(obj.id)
var len = encodings.bytes.encodingLength(obj.id)
length += 1 + len
}
if (defined(obj.target)) {
var len = enc[2].encodingLength(obj.target)
var len = encodings.bytes.encodingLength(obj.target)
length += 1 + len
}
if (defined(obj.closerNodes)) {
var len = enc[2].encodingLength(obj.closerNodes)
var len = encodings.bytes.encodingLength(obj.closerNodes)
length += 1 + len
}
if (defined(obj.roundtripToken)) {
var len = enc[2].encodingLength(obj.roundtripToken)
var len = encodings.bytes.encodingLength(obj.roundtripToken)
length += 1 + len
}
if (defined(obj.command)) {
var len = enc[3].encodingLength(obj.command)
var len = encodings.string.encodingLength(obj.command)
length += 1 + len
}
if (defined(obj.error)) {
var len = enc[3].encodingLength(obj.error)
var len = encodings.string.encodingLength(obj.error)
length += 1 + len
}
if (defined(obj.value)) {
var len = enc[2].encodingLength(obj.value)
var len = encodings.bytes.encodingLength(obj.value)
length += 1 + len
}
return length
@ -163,46 +156,51 @@ function defineMessage () {
var oldOffset = offset
if (!defined(obj.type)) throw new Error("type is required")
buf[offset++] = 8
enc[0].encode(obj.type, buf, offset)
offset += enc[0].encode.bytes
encodings.enum.encode(obj.type, buf, offset)
offset += encodings.enum.encode.bytes
if (!defined(obj.rid)) throw new Error("rid is required")
buf[offset++] = 16
enc[1].encode(obj.rid, buf, offset)
offset += enc[1].encode.bytes
encodings.varint.encode(obj.rid, buf, offset)
offset += encodings.varint.encode.bytes
if (defined(obj.to)) {
buf[offset++] = 82
encodings.bytes.encode(obj.to, buf, offset)
offset += encodings.bytes.encode.bytes
}
if (defined(obj.id)) {
buf[offset++] = 26
enc[2].encode(obj.id, buf, offset)
offset += enc[2].encode.bytes
encodings.bytes.encode(obj.id, buf, offset)
offset += encodings.bytes.encode.bytes
}
if (defined(obj.target)) {
buf[offset++] = 34
enc[2].encode(obj.target, buf, offset)
offset += enc[2].encode.bytes
encodings.bytes.encode(obj.target, buf, offset)
offset += encodings.bytes.encode.bytes
}
if (defined(obj.closerNodes)) {
buf[offset++] = 42
enc[2].encode(obj.closerNodes, buf, offset)
offset += enc[2].encode.bytes
encodings.bytes.encode(obj.closerNodes, buf, offset)
offset += encodings.bytes.encode.bytes
}
if (defined(obj.roundtripToken)) {
buf[offset++] = 50
enc[2].encode(obj.roundtripToken, buf, offset)
offset += enc[2].encode.bytes
encodings.bytes.encode(obj.roundtripToken, buf, offset)
offset += encodings.bytes.encode.bytes
}
if (defined(obj.command)) {
buf[offset++] = 58
enc[3].encode(obj.command, buf, offset)
offset += enc[3].encode.bytes
encodings.string.encode(obj.command, buf, offset)
offset += encodings.string.encode.bytes
}
if (defined(obj.error)) {
buf[offset++] = 66
enc[3].encode(obj.error, buf, offset)
offset += enc[3].encode.bytes
encodings.string.encode(obj.error, buf, offset)
offset += encodings.string.encode.bytes
}
if (defined(obj.value)) {
buf[offset++] = 74
enc[2].encode(obj.value, buf, offset)
offset += enc[2].encode.bytes
encodings.bytes.encode(obj.value, buf, offset)
offset += encodings.bytes.encode.bytes
}
encode.bytes = offset - oldOffset
return buf
@ -216,6 +214,7 @@ function defineMessage () {
var obj = {
type: 1,
rid: 0,
to: null,
id: null,
target: null,
closerNodes: null,
@ -237,42 +236,46 @@ function defineMessage () {
var tag = prefix >> 3
switch (tag) {
case 1:
obj.type = enc[0].decode(buf, offset)
offset += enc[0].decode.bytes
obj.type = encodings.enum.decode(buf, offset)
offset += encodings.enum.decode.bytes
found0 = true
break
case 2:
obj.rid = enc[1].decode(buf, offset)
offset += enc[1].decode.bytes
obj.rid = encodings.varint.decode(buf, offset)
offset += encodings.varint.decode.bytes
found1 = true
break
case 10:
obj.to = encodings.bytes.decode(buf, offset)
offset += encodings.bytes.decode.bytes
break
case 3:
obj.id = enc[2].decode(buf, offset)
offset += enc[2].decode.bytes
obj.id = encodings.bytes.decode(buf, offset)
offset += encodings.bytes.decode.bytes
break
case 4:
obj.target = enc[2].decode(buf, offset)
offset += enc[2].decode.bytes
obj.target = encodings.bytes.decode(buf, offset)
offset += encodings.bytes.decode.bytes
break
case 5:
obj.closerNodes = enc[2].decode(buf, offset)
offset += enc[2].decode.bytes
obj.closerNodes = encodings.bytes.decode(buf, offset)
offset += encodings.bytes.decode.bytes
break
case 6:
obj.roundtripToken = enc[2].decode(buf, offset)
offset += enc[2].decode.bytes
obj.roundtripToken = encodings.bytes.decode(buf, offset)
offset += encodings.bytes.decode.bytes
break
case 7:
obj.command = enc[3].decode(buf, offset)
offset += enc[3].decode.bytes
obj.command = encodings.string.decode(buf, offset)
offset += encodings.string.decode.bytes
break
case 8:
obj.error = enc[3].decode(buf, offset)
offset += enc[3].decode.bytes
obj.error = encodings.string.decode(buf, offset)
offset += encodings.string.decode.bytes
break
case 9:
obj.value = enc[2].decode(buf, offset)
offset += enc[2].decode.bytes
obj.value = encodings.bytes.decode(buf, offset)
offset += encodings.bytes.decode.bytes
break
default:
offset = skip(prefix & 7, buf, offset)

6
package.json

@ -18,9 +18,9 @@
},
"homepage": "https://github.com/mafintosh/dht-rpc#readme",
"devDependencies": {
"protocol-buffers": "^4.1.0",
"standard": "^12.0.1",
"tape": "^4.9.1"
"protocol-buffers": "^4.1.1",
"standard": "^14.3.1",
"tape": "^4.13.0"
},
"dependencies": {
"codecs": "^2.0.0",

1
schema.proto

@ -13,6 +13,7 @@ message Message {
// request/response type + id
required TYPE type = 1;
required uint64 rid = 2;
optional bytes to = 10;
// kademlia stuff
optional bytes id = 3;

Loading…
Cancel
Save