Support openbsd's resolv.conf syntax

db4
Doug Coleman 2010-10-08 19:12:31 -07:00
parent 40e5ed8b87
commit 51f9d97753
1 changed files with 10 additions and 2 deletions

View File

@ -10,20 +10,24 @@ CONSTRUCTOR: network ( ip netmask -- network ) ;
TUPLE: options TUPLE: options
debug? debug?
edns0?
insecure1?
insecure2?
{ ndots integer initial: 1 } { ndots integer initial: 1 }
{ timeout integer initial: 5 } { timeout integer initial: 5 }
{ attempts integer initial: 2 } { attempts integer initial: 2 }
rotate? no-check-names? inet6? ; rotate? no-check-names? inet6? tcp? ;
CONSTRUCTOR: options ( -- options ) ; CONSTRUCTOR: options ( -- options ) ;
TUPLE: resolv.conf nameserver domain search sortlist options ; TUPLE: resolv.conf nameserver domain lookup search sortlist options ;
CONSTRUCTOR: resolv.conf ( -- resolv.conf ) CONSTRUCTOR: resolv.conf ( -- resolv.conf )
V{ } clone >>nameserver V{ } clone >>nameserver
V{ } clone >>domain V{ } clone >>domain
V{ } clone >>search V{ } clone >>search
V{ } clone >>sortlist V{ } clone >>sortlist
V{ } clone >>lookup
<options> >>options ; <options> >>options ;
<PRIVATE <PRIVATE
@ -40,6 +44,9 @@ CONSTRUCTOR: resolv.conf ( -- resolv.conf )
: parse-domain ( resolv.conf string -- resolv.conf ) : parse-domain ( resolv.conf string -- resolv.conf )
split-line domain>> push-all ; split-line domain>> push-all ;
: parse-lookup ( resolv.conf string -- resolv.conf )
split-line lookup>> push-all ;
: parse-search ( resolv.conf string -- resolv.conf ) : parse-search ( resolv.conf string -- resolv.conf )
split-line search>> push-all ; split-line search>> push-all ;
@ -70,6 +77,7 @@ ERROR: unsupported-resolv.conf-line string ;
{ {
{ [ "nameserver" ?head ] [ parse-nameserver ] } { [ "nameserver" ?head ] [ parse-nameserver ] }
{ [ "domain" ?head ] [ parse-domain ] } { [ "domain" ?head ] [ parse-domain ] }
{ [ "lookup" ?head ] [ parse-lookup ] }
{ [ "search" ?head ] [ parse-search ] } { [ "search" ?head ] [ parse-search ] }
{ [ "sortlist" ?head ] [ parse-sortlist ] } { [ "sortlist" ?head ] [ parse-sortlist ] }
{ [ "options" ?head ] [ parse-option ] } { [ "options" ?head ] [ parse-option ] }