Restrict channel request fails when resend occurs before ack is received
channel_restrict_request is sent to the remote host, the remote host will restrict it's channel endpoint and answer with a
channel_restrict_ack, the local host will receive the ack and restrict it's channel endpoint. So far everything works as intended, however, if the ack is received after the local host's resend queue sends a new
channel_restrict_request a second ack will be sent from the remote host with
ack.restricted=false which means that when it is received by the local host it will result in a state change to
Suggested solution 1: Filter any superfluous incoming acks on the local host by for instance explicitly checking if the remote endpoint is restricted.
Suggested solution 2:
ack.restricted=true if a request to restrict arrive at a restricted channel.