/// <summary>
        /// Returns a <see cref="RelayNodeClusterDefinition"/> for the current environment that contains
        /// the a node configured to listen on the
        /// </summary>
        /// <param name="address"></param>
        /// <param name="portNumber"></param>
        /// <returns></returns>
        internal RelayNodeClusterDefinition GetClusterFor(IPAddress address, int portNumber)
        {
            RelayNodeClusterDefinition[] clusters = null;
            EnvironmentDefinition        env      = GetEnvironment();

            if (env != null)
            {
                clusters = env.RelayNodeClusters;
            }
            else
            {
                clusters = DefaultRelayNodeClusters;
            }

            RelayNodeClusterDefinition clusterDefinition = null;

            if (clusters != null)
            {
                foreach (RelayNodeClusterDefinition cluster in clusters)
                {
                    if (cluster.ContainsNode(address, portNumber))
                    {
                        clusterDefinition = cluster;
                        break;
                    }
                }
            }
            return(clusterDefinition);
        }
示例#2
0
        /// <summary>
        /// Returns a <see cref="RelayNodeClusterDefinition"/> for the current environment that contains
        /// the a node configured to listen on the
        /// </summary>
        /// <param name="address">The address.</param>
        /// <param name="portNumber">The port number.</param>
        /// <param name="clusterIndex">Index of the cluster.</param>
        /// <returns></returns>
        internal RelayNodeClusterDefinition GetClusterFor(IPAddress address, int portNumber, out int clusterIndex)
        {
            RelayNodeClusterDefinition[] clusters = null;
            EnvironmentDefinition        env      = GetEnvironment();

            clusterIndex = -1;
            if (env != null)
            {
                clusters = env.RelayNodeClusters;
            }
            else
            {
                clusters = DefaultRelayNodeClusters;
            }

            RelayNodeClusterDefinition clusterDefinition = null;

            if (clusters != null)
            {
                for (int i = 0; i < clusters.Length; i++)
                {
                    if (clusters[i].ContainsNode(address, portNumber))
                    {
                        clusterDefinition = clusters[i];
                        clusterIndex      = i;
                        break;
                    }
                }
            }

            return(clusterDefinition);
        }