|
@ -99,20 +99,23 @@ class IO { |
|
|
const peer = { port: rinfo.port, host: rinfo.address } |
|
|
const peer = { port: rinfo.port, host: rinfo.address } |
|
|
|
|
|
|
|
|
switch (message.type) { |
|
|
switch (message.type) { |
|
|
case TYPE.RESPONSE: |
|
|
case TYPE.RESPONSE: { |
|
|
this._ctx.onresponse(message, peer) |
|
|
this._ctx.onresponse(message, peer) |
|
|
this._finish(message.rid, null, message, peer) |
|
|
this._finish(message.rid, null, message, peer) |
|
|
break |
|
|
break |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
case TYPE.QUERY: |
|
|
case TYPE.QUERY: { |
|
|
this._ctx.onrequest(QUERY, message, peer) |
|
|
this._ctx.onrequest(QUERY, message, peer) |
|
|
break |
|
|
break |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
case TYPE.UPDATE: |
|
|
case TYPE.UPDATE: { |
|
|
const rt = message.roundtripToken |
|
|
const rt = message.roundtripToken |
|
|
if (!rt || (!rt.equals(this._token(peer, 0)) && !rt.equals(this._token(peer, 1)))) return |
|
|
if (!rt || (!rt.equals(this._token(peer, 0)) && !rt.equals(this._token(peer, 1)))) return |
|
|
this._ctx.onrequest(UPDATE, message, peer) |
|
|
this._ctx.onrequest(UPDATE, message, peer) |
|
|
break |
|
|
break |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|