public async Task <ExitReason> Run(SessionContext context) { context.RemoveHost(); context.AddHost(await Connect(context.Header)); context.CurrentHostAddress = context.Header.Host; return(ExitReason.NewHostConnected); }
public async Task <LastPipeState> Run(ProxyMediatorHandler handler, SessionContext context) { context.RemoveHost(); if (context.StageFunc?.OnBeforeConnect != null) { context.CurrentExternalProxy = await context.StageFunc.OnBeforeConnect(context, handler); } if (context.CurrentExternalProxy == null) { context.AddHost(await Connect(context.Header.Host.Hostname, context.Header.Host.Port)); } else { context.AddHost(await Connect(context.CurrentExternalProxy.Address, context.CurrentExternalProxy.Port)); } context.CurrentHostAddress = context.Header.Host; return(LastPipeState.NewHostConnected); }