private InboundTunnel CreateInboundTunnel(IClient client, TunnelInfo prototype) { var config = new TunnelConfig( TunnelConfig.TunnelDirection.Inbound, TunnelConfig.TunnelPool.Client, prototype ?? CreateIncommingTunnelChain(client)); var tunnel = (InboundTunnel)TunnelMgr.CreateTunnel(this, config); if (tunnel != null) { tunnel.GarlicMessageReceived += new Action <GarlicMessage>(GarlicMessageReceived); TunnelMgr.AddTunnel(tunnel); client.AddInboundPending(tunnel); PendingTunnels[tunnel] = client; } return(tunnel); }