-
Notifications
You must be signed in to change notification settings - Fork 10
Description
When one process with a GlobalBrokeredServiceContainer is a middle-man between a brokered client and a brokered server, and that middle-man has a multiplexingstream relationship with the brokered server, it should not blindly forward replies from the server to the client, since the client doesn't share the same multiplexingstream that the middle-man and server share, and the server may have sent a multiplexingchannelid in the RemoteConnectionInfo.
The middle-man should inspect the RemoteConnectionInfo that the server returned and if it utilizes connection instructions that the client process could not support (e.g. a channel ID), the middle-man should then act as a relay by connecting to the server and offering a different set of connection instructions to the client.
I believe this logic would belong here:
Lines 92 to 95 in 4c17636
| Task<RemoteServiceConnectionInfo> IRemoteServiceBroker.RequestServiceChannelAsync(ServiceMoniker serviceMoniker, ServiceActivationOptions serviceActivationOptions, CancellationToken cancellationToken) | |
| { | |
| return this.RemoteServiceBroker.RequestServiceChannelAsync(serviceMoniker, serviceActivationOptions, cancellationToken); | |
| } |