35 lines
		
	
	
		
			940 B
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			940 B
		
	
	
	
		
			Factor
		
	
	
| 
 | |
| USING: kernel combinators sequences splitting math 
 | |
|        io.files io.encodings.utf8 random dns.util ;
 | |
| 
 | |
| IN: dns.misc
 | |
| 
 | |
| ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 | |
| 
 | |
| : resolv-conf-servers ( -- seq )
 | |
|   "/etc/resolv.conf" utf8 file-lines
 | |
|   [ " " split ] map
 | |
|   [ first "nameserver" = ] filter
 | |
|   [ second ] map ;
 | |
| 
 | |
| : resolv-conf-server ( -- ip ) resolv-conf-servers random ;
 | |
| 
 | |
| ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 | |
| 
 | |
| : cdr-name ( name -- name ) dup CHAR: . index 1 + tail ;
 | |
| 
 | |
| ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 | |
| 
 | |
| : domain-has-name? ( domain name -- ? )
 | |
|     {
 | |
|       { [ 2dup =       ] [ 2drop t ] }
 | |
|       { [ 2dup longer? ] [ 2drop f ] }
 | |
|       { [ t            ] [ cdr-name domain-has-name? ] }
 | |
|     }
 | |
|   cond ;
 | |
| 
 | |
| : name-in-domain? ( name domain -- ? ) swap domain-has-name? ;
 | |
| 
 | |
| ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 | |
| 
 |