[dhcp-agent-commits] dhcp-agent/conf/dhcp-client Makefile.am,NONE,1.1 README,NONE,1.1 default.conf,N
Status: Alpha
Brought to you by:
actmodern
From: <act...@us...> - 2003-07-05 19:30:54
|
Update of /cvsroot/dhcp-agent/dhcp-agent/conf/dhcp-client In directory sc8-pr-cvs1:/tmp/cvs-serv22027/dhcp-client Added Files: Makefile.am README default.conf default.sysconf Log Message: moved configuration files to subdirectories --- NEW FILE: Makefile.am --- # $Header: /cvsroot/dhcp-agent/dhcp-agent/conf/dhcp-client/Makefile.am,v 1.1 2003/07/05 19:30:51 actmodern Exp $ # # client configuration Makefile.am # SUBDIRS = . dhcpsysconf_client_DATA = default.conf default.sysconf EXTRA_DIST = default.conf default.sysconf --- NEW FILE: README --- $Header: /cvsroot/dhcp-agent/dhcp-agent/conf/dhcp-client/README,v 1.1 2003/07/05 19:30:51 actmodern Exp $ Default configuration files, and sysconf guile script. --- NEW FILE: default.conf --- # $Header: /cvsroot/dhcp-agent/dhcp-agent/conf/dhcp-client/default.conf,v 1.1 2003/07/05 19:30:51 actmodern Exp $ # # Basic DHCP client configuration script. # We only ask for network setup parameters. # # Thamer Alharbash <tm...@wh...> # This will setup dhcp to accept the following configuration # parameters from any dhcp server: # # ip-address, subnet mask, lease time, renewal time, rebinding time, # interface mtu, domain name, dns server # # It will require all of the above. Otherwise uncomment below to be # more flexible # # IP address requests are implicit we just ask for the other options below. # request subnet-mask, ip-address-lease-time, renewal-time, rebinding-time, domain-name-servers, domain-name, interface-mtu, routers; # Additional variable settings. # # Interface MTU # Set up our default interface mtu in case the server does not # give us one. set default-interface-mtu = 1500; # # Router discovery -- should we use ICMP to find the best router? # enable do-measure-router-latency = no; # Default ARP settings are pretty generous. Unless you experience # problems this should suffice for most networks which don't have # excessive packet loss set arp-retries = 1; set arp-timeout-threshold = 10; --- NEW FILE: default.sysconf --- ; $Header: /cvsroot/dhcp-agent/dhcp-agent/conf/dhcp-client/default.sysconf,v 1.1 2003/07/05 19:30:51 actmodern Exp $ ; ; dhcp sysconf recipe file. ; ; XXX IMPORTANT: ; You should not need to edit the interface setup ; below. Without this the client may not function properly at ; all since it relies on it to configure the interface. ; (define configure-interface #f) ; XXX -- no need for unconfigure interface, client will handle that internally. (let ((configured-ip-address #f)) (set! configure-interface (lambda () (if (defined? 'dhcp-requested-ip-address) (let ; if the mtu wasn't passed by the server, get the user configured one ((mtu (if (defined? 'dhcp-interface-mtu) dhcp-interface-mtu (client-get-default-mtu client-control))) ; if the subnet mask wasn't specified, get the user configured one (subnet-mask (if (defined? 'dhcp-subnet-mask) dhcp-subnet-mask (client-get-default-subnet-mask client-control)))) ; that's it we're ready to bring up the interface (client-info-message "bringing up interface...") (if (not (client-interface-up client-control dhcp-requested-ip-address subnet-mask mtu)) (client-fatal-message "could not bring up interface... exiting.") (set! configured-ip-address dhcp-requested-ip-address))))))) ; XXX ; Add option handling here. ; All configure-* functions are placed inside of closures. This ; allows seemless persistantance of old values and thus ; unconfigure-* can be written easily. ; ; Domain and domain-name servers (define configure-dns #f) (define unconfigure-dns #f) (let ((configured-domain-name #f) (configured-domain-name-servers #f) ; check to see if we really need to configure (do-configure (lambda() (and (client-configure? client-control 'dhcp-domain-name-servers) (client-configure? client-control 'dhcp-domain-name) (defined? 'dhcp-domain-name-servers) (defined? 'dhcp-domain-name))))) ; define this here since we'll be calling it from reconfigure as well. ; configure dns options (set! configure-dns (lambda () (if (do-configure) (let ((resolv-conf-file-port (open "/etc/resolv.conf" O_WRONLY 0644))) (client-info-message "configuring resolver") (map-in-order (lambda (dns-server) (simple-format resolv-conf-file-port "nameserver ~A\n" dns-server)) dhcp-domain-name-servers) (simple-format resolv-conf-file-port "search ~A\n" dhcp-domain-name) (close-port resolv-conf-file-port) ; now setup the options so we can use them again in unconfigure. (set! configured-domain-name dhcp-domain-name) (set! configured-domain-name-servers dhcp-domain-name-servers))))) ; unconfigure dns options (set! unconfigure-dns (lambda() ; We shouldn't really be doing anything. Any name server ; is a good server :-) #t))) ; Routers. We use client-set-default-route to add the route. (define configure-default-route #f) (define unconfigure-default-route #f) (let ((configured-default-route #f) ; check to see if really need to configure (do-configure (lambda() (and (client-configure? client-control 'dhcp-routers) (defined? 'dhcp-routers))))) (set! configure-default-route (lambda() (if (do-configure) (let ((routers (if (client-do-discover-icmp-latency? client-control) (sort (client-discover-icmp-latency client-control dhcp-routers) (lambda (x y) (< (car x) (car y)))) (list (list 1 (car dhcp-routers)))))) (if (null? routers) (begin (client-error-message "default routes not responding. defaulting to first one in list") (client-set-default-route client-control (car dhcp-routers)) (set! configured-default-route (car dhcp-routers))) (let ((default-route (car (cdr (car routers))))) (client-info-message (string-append "adding default route to: " default-route)) (client-set-default-route client-control default-route) (set! configured-default-route default-route))))))) (set! unconfigure-default-route (lambda() (if (do-configure) (if configured-default-route (begin (client-info-message (string-append "removing default route to: " configured-default-route)) (client-remove-default-route client-control configured-default-route))))))) ; After everything is defined set to hooks ; ; We have two hooks. dhcp-bind-hook, dhcp-release-hook, ; setup options on dhcp-bind (add-hook! dhcp-bind-hook configure-dns) (add-hook! dhcp-bind-hook configure-default-route) (add-hook! dhcp-bind-hook configure-interface) ; unconfigure options on dhcp-release-hook (add-hook! dhcp-release-hook unconfigure-dns) (add-hook! dhcp-release-hook unconfigure-default-route) |