static UniAddress()
{
string ro = Config.GetProperty("jcifs.resolveOrder");
IPAddress nbns = NbtAddress.GetWinsAddress();
try
{
_baddr = Config.GetInetAddress("jcifs.netbios.baddr",
Extensions.GetAddressByName("255.255.255.255"));
}
catch (UnknownHostException)
{
}
if (string.IsNullOrEmpty(ro))
{
if (nbns == null)
{
_resolveOrder = new int[3];
_resolveOrder[0] = ResolverLmhosts;
_resolveOrder[1] = ResolverDns;
_resolveOrder[2] = ResolverBcast;
}
else
{
_resolveOrder = new int[4];
_resolveOrder[0] = ResolverLmhosts;
_resolveOrder[1] = ResolverWins;
_resolveOrder[2] = ResolverDns;
_resolveOrder[3] = ResolverBcast;
}
}
else
{
int[] tmp = new int[4];
StringTokenizer st = new StringTokenizer(ro, ",");
int i = 0;
while (st.HasMoreTokens())
{
string s = st.NextToken().Trim();
if (Runtime.EqualsIgnoreCase(s, "LMHOSTS"))
{
tmp[i++] = ResolverLmhosts;
}
else
{
if (Runtime.EqualsIgnoreCase(s, "WINS"))
{
if (nbns == null)
{
if (_log.Level > 1)
{
_log.WriteLine(
"UniAddress resolveOrder specifies WINS however the "
+ "jcifs.netbios.wins property has not been set");
}
continue;
}
tmp[i++] = ResolverWins;
}
else
{
if (Runtime.EqualsIgnoreCase(s, "BCAST"))
{
tmp[i++] = ResolverBcast;
}
else
{
if (Runtime.EqualsIgnoreCase(s, "DNS"))
{
tmp[i++] = ResolverDns;
}
else
{
if (_log.Level > 1)
{
_log.WriteLine("unknown resolver method: " + s);
}
}
}
}
}
}
_resolveOrder = new int[i];
Array.Copy(tmp, 0, _resolveOrder, 0, i);
}
}