Dns.hx 813 B

12345678910111213141516171819202122232425
  1. package asys.net;
  2. import haxe.async.Callback;
  3. using asys.net.AddressTools;
  4. class Dns {
  5. static extern function lookup_native(hostname:String, ?lookupOptions:DnsLookupOptions, callback:Callback<Array<Address>>);
  6. public static function lookup(hostname:String, ?lookupOptions:DnsLookupOptions, callback:Callback<Array<Address>>):Void {
  7. lookup_native(hostname, lookupOptions, function (err, res:Array<Address>):Void {
  8. if (err != null)
  9. return callback(err, null);
  10. var lastRes:Address = null;
  11. callback(null, [ for (entry in res) {
  12. // TODO: report more information rather than suppress duplicates?
  13. if (lastRes != null && lastRes.equals(entry))
  14. continue;
  15. lastRes = entry;
  16. } ]);
  17. });
  18. }
  19. public static extern function reverse(ip:Address, callback:Callback<Array<String>>):Void;
  20. }