69 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
		
		
			
		
	
	
			69 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
|  | package eval.luv; | ||
|  | 
 | ||
|  | @:forward | ||
|  | abstract AddrInfoRequest(Request) to Request {} | ||
|  | 
 | ||
|  | typedef AddrInfo = { | ||
|  | 	var family:SockAddr.AddressFamily; | ||
|  | 	var sockType:SockAddr.SocketType; | ||
|  | 	var protocol:Int; | ||
|  | 	var addr:SockAddr; | ||
|  | 	var ?canonName:String; | ||
|  | } | ||
|  | 
 | ||
|  | typedef AddrInfoOptions = { | ||
|  | 	var ?request:AddrInfoRequest; | ||
|  | 	var ?family:SockAddr.AddressFamily; | ||
|  | 	var ?sockType:SockAddr.SocketType; | ||
|  | 	var ?protocol:Int; | ||
|  | 	var ?flags:Array<AddrInfoFlag>; | ||
|  | } | ||
|  | 
 | ||
|  | enum abstract AddrInfoFlag(Int) { | ||
|  | 	var PASSIVE = 0; | ||
|  | 	var CANONNAME = 1; | ||
|  | 	var NUMERICHOST = 2; | ||
|  | 	var NUMERICSERV = 3; | ||
|  | 	var V4MAPPED = 4; | ||
|  | 	var ALL = 5; | ||
|  | 	var ADDRCONFIG = 6; | ||
|  | } | ||
|  | 
 | ||
|  | @:forward | ||
|  | abstract NameInfoRequest(Request) to Request {} | ||
|  | 
 | ||
|  | enum abstract NameInfoFlag(Int) { | ||
|  | 	var NAMEREQD = 0; | ||
|  | 	var DGRAM = 1; | ||
|  | 	var NOFQDN = 2; | ||
|  | 	var NUMERICHOST = 3; | ||
|  | 	var NUMERICSERV = 4; | ||
|  | } | ||
|  | 
 | ||
|  | typedef NameInfoOptions = { | ||
|  | 	var ?request:NameInfoRequest; | ||
|  | 	var ?flags:Array<NameInfoFlag>; | ||
|  | } | ||
|  | 
 | ||
|  | /** | ||
|  | 	DNS queries. | ||
|  | 
 | ||
|  | 	@see https://aantron.github.io/luv/luv/Luv/Dns | ||
|  | **/ | ||
|  | extern class Dns { | ||
|  | 
 | ||
|  | 	static function createAddrRequest():AddrInfoRequest; | ||
|  | 
 | ||
|  | 	static function createNameRequest():NameInfoRequest; | ||
|  | 
 | ||
|  | 	/** | ||
|  | 		Retrieves addresses. | ||
|  | 		Either `node` or `service` may be `null` but not both. | ||
|  | 	**/ | ||
|  | 	static function getAddrInfo(loop:Loop, node:Null<String>, service:Null<String>, ?options:AddrInfoOptions, callback:(result:Result<Array<AddrInfo>>)->Void):Void; | ||
|  | 
 | ||
|  | 	/** | ||
|  | 		Retrieves host names. | ||
|  | 	**/ | ||
|  | 	static function getNameInfo(loop:Loop, addr:SockAddr, ?options:NameInfoOptions, callback:(result:Result<{hostName:String, service:String}>)->Void):Void; | ||
|  | } |