void ParseResolvConf ()
{
try {
DateTime wt = File.GetLastWriteTime ("/etc/resolv.conf");
if (wt <= last_parse)
return;
last_parse = wt;
dns_suffix = "";
dns_servers = new IPAddressCollection ();
using (StreamReader reader = new StreamReader ("/etc/resolv.conf")) {
string str;
string line;
while ((line = reader.ReadLine ()) != null) {
line = line.Trim ();
if (line.Length == 0 || line [0] == '#')
continue;
Match match = ns.Match (line);
if (match.Success) {
try {
str = match.Groups ["address"].Value;
str = str.Trim ();
dns_servers.Add (IPAddress.Parse (str));
} catch {
}
} else {
match = search.Match (line);
if (match.Success) {
str = match.Groups ["domain"].Value;
string [] parts = str.Split (',');
dns_suffix = parts [0].Trim ();
}
}
}
}
} catch {
} finally {
dns_servers.SetReadOnly ();
}
}