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;
							 | 
						||
| 
								 | 
							
								}
							 |