dannym pushed a commit to branch wip-installer-2
in repository guix.
commit fb6ea76cbc6d647ba4e780a0299b8ef9862c4220
Author: John Darrington <[email protected]>
Date: Tue Feb 14 15:40:38 2017 +0100
installer: Kill old dhclient instance before starting new one.
* gnu/system/installer/network.scm (dhclient):: New procedure.
* gnu/system/installer/wireless.scm (wireless-page-key-handler): Use it.
---
gnu/system/installer/network.scm | 9 ++++++++-
gnu/system/installer/wireless.scm | 6 ++++--
2 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/gnu/system/installer/network.scm b/gnu/system/installer/network.scm
index 2ddaaed..60ae111 100644
--- a/gnu/system/installer/network.scm
+++ b/gnu/system/installer/network.scm
@@ -31,10 +31,17 @@
#:use-module (ncurses curses)
#:use-module (guix store)
+ #:export (dhclient)
#:export (make-network-page))
(include "i18n.scm")
+
+(define (dhclient interface)
+ (system* "dhclient" "-r" interface)
+ (zero? (system* "dhclient" interface)))
+
+
(define (make-network-page parent title)
(make-page (page-surface parent)
title
@@ -125,7 +132,7 @@
(let ((item (menu-get-current-item menu)))
(when (eq? (assq-ref item 'class) 'ethernet)
(and (zero? (system* "ip" "link" "set" (assq-ref item 'name) "up"))
- (zero? (system* "dhclient" (assq-ref item 'name)))))))
+ (dhclient (assq-ref item 'name))))))
((buttons-key-matches-symbol? nav ch 'test)
(let ((next (make-page (page-surface page)
diff --git a/gnu/system/installer/wireless.scm
b/gnu/system/installer/wireless.scm
index e195d1d..f45ae64 100644
--- a/gnu/system/installer/wireless.scm
+++ b/gnu/system/installer/wireless.scm
@@ -20,6 +20,7 @@
#:use-module (gnu system installer page)
#:use-module (gnu system installer ping)
#:use-module (gnu system installer passphrase)
+ #:use-module (gnu system installer network)
#:use-module (gnu system installer misc)
#:use-module (gnu system installer utils)
#:use-module (ice-9 format)
@@ -48,6 +49,7 @@
(define my-buttons `((cancel ,(M_ "Canc_el") #t)))
+
(define (wireless-page-key-handler page ch)
(let ((nav (page-datum page 'navigation))
(menu (page-datum page 'menu))
@@ -87,7 +89,7 @@
(begin
(and (zero? (system* "ip" "link" "set" ifce "up"))
(zero? (system* "iw" "dev" ifce "connect" (assq-ref ap
'essid)))
- (zero? (system* "dhclient" ifce)))
+ (dhclient ifce))
(page-leave))))))
(std-menu-key-handler menu ch)
@@ -273,4 +275,4 @@ network={
(with-output-to-file "/dev/null"
(lambda ()
(and (zero? (system* "wpa_supplicant" "-c" filename "-i" ifce "-B"))
- (zero? (system* "dhclient" ifce)))))))))
+ (dhclient ifce))))))))