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? ;
 | 
						|
 | 
						|
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 | 
						|
 |