Handle negentropy messages in default policies
This commit is contained in:
@@ -6,11 +6,13 @@ import {
|
|||||||
isClientClose,
|
isClientClose,
|
||||||
isClientEvent,
|
isClientEvent,
|
||||||
isClientReq,
|
isClientReq,
|
||||||
|
isClientNegOpen,
|
||||||
isClientNegClose,
|
isClientNegClose,
|
||||||
RelayMessage,
|
RelayMessage,
|
||||||
isRelayOk,
|
isRelayOk,
|
||||||
isRelayEose,
|
isRelayEose,
|
||||||
isRelayClosed,
|
isRelayClosed,
|
||||||
|
isRelayNegErr,
|
||||||
} from "./message.js"
|
} from "./message.js"
|
||||||
import {Socket, SocketStatus, SocketEvent} from "./socket.js"
|
import {Socket, SocketStatus, SocketEvent} from "./socket.js"
|
||||||
import {AuthStatus, AuthStateEvent} from "./auth.js"
|
import {AuthStatus, AuthStateEvent} from "./auth.js"
|
||||||
@@ -56,8 +58,11 @@ export const socketPolicyAuthBuffer = (socket: Socket) => {
|
|||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
on(socket, SocketEvent.Receiving, (message: RelayMessage) => {
|
on(socket, SocketEvent.Receiving, (message: RelayMessage) => {
|
||||||
// If the client is closing a request during auth, don't tell the caller, we'll retry it
|
// If the relay is closing a request during auth, don't tell the caller, we'll retry it
|
||||||
if (isRelayClosed(message) && message[2]?.startsWith("auth-required:")) {
|
if (
|
||||||
|
(isRelayClosed(message) || isRelayNegErr(message)) &&
|
||||||
|
message[2]?.startsWith("auth-required:")
|
||||||
|
) {
|
||||||
socket._recvQueue.remove(message)
|
socket._recvQueue.remove(message)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -153,11 +158,11 @@ export const socketPolicyCloseInactive = (socket: Socket) => {
|
|||||||
pending.set(message[1].id, message)
|
pending.set(message[1].id, message)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isClientReq(message)) {
|
if (isClientReq(message) || isClientNegOpen(message)) {
|
||||||
pending.set(message[1], message)
|
pending.set(message[1], message)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isClientClose(message)) {
|
if (isClientClose(message) || isClientNegClose(message)) {
|
||||||
pending.delete(message[1])
|
pending.delete(message[1])
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
|
|||||||
Reference in New Issue
Block a user