📄 default.sysconf
字号:
; $Header: /cvsroot/dhcp-agent/dhcp-agent/conf/dhcp-client/default.sysconf,v 1.2 2003/07/10 23:18:22 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" (logior O_WRONLY O_TRUNC) 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)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -