Opc.Ua.ServerBase.GetDiscoveryUrls C# (CSharp) Method

GetDiscoveryUrls() protected method

Returns the discovery URLs for the server.
protected GetDiscoveryUrls ( ) : StringCollection
return StringCollection
        protected StringCollection GetDiscoveryUrls()
        {
            // build list of discovery uris.
            StringCollection discoveryUrls = new StringCollection();
            string computerName = System.Net.Dns.GetHostName();

            foreach (BaseAddress baseAddress in BaseAddresses)
            {
                UriBuilder builder = new UriBuilder(baseAddress.DiscoveryUrl);

                int index = builder.Host.IndexOf("localhost", StringComparison.OrdinalIgnoreCase);

                if (index == -1)
                {
                    index = builder.Host.IndexOf("{0}", StringComparison.OrdinalIgnoreCase);
                }

                if (index != -1)
                {
                    builder.Host = computerName;
                }

                discoveryUrls.Add(builder.ToString());

                if (baseAddress.AlternateUrls != null)
                {
                    foreach (Uri alternateUrl in baseAddress.AlternateUrls)
                    {
                        builder = new UriBuilder(alternateUrl);

                        switch (baseAddress.ProfileUri)
                        {
                            case Profiles.WsHttpXmlOrBinaryTransport:
                            case Profiles.WsHttpXmlTransport:
                            {
                                builder.Path += "/discovery";
                                break;
                            }
                        }

                        discoveryUrls.Add(builder.ToString());
                    }
                }
            }

            return discoveryUrls;
        }