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

6
package.json

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

1
schema.proto

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

Loading…
Cancel
Save