From 973eea34781078091869143602d4f1dfdfd82e19 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 14 Sep 2014 22:12:35 +0200 Subject: syscalls: Add 'network-interface-flags'. * guix/build/syscalls.scm (SIOCGIFFLAGS, IFF_UP, IFF_BROADCAST, IFF_LOOPBACK, IF_NAMESIZE): New variables. (network-interface-flags, loopback-network-interface?): New procedures. * tests/syscalls.scm ("network-interface-flags", "loopback-network-interface?"): New tests. --- tests/syscalls.scm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'tests') diff --git a/tests/syscalls.scm b/tests/syscalls.scm index fa6b67bf39..c3550ac31a 100644 --- a/tests/syscalls.scm +++ b/tests/syscalls.scm @@ -48,6 +48,23 @@ (((? string? names) ..1) (member "lo" names)))) +(test-assert "network-interface-flags" + (let* ((sock (socket SOCK_STREAM AF_INET 0)) + (flags (network-interface-flags sock "lo"))) + (close-port sock) + (and (not (zero? (logand flags IFF_LOOPBACK))) + (not (zero? (logand flags IFF_UP)))))) + +(test-equal "loopback-network-interface?" + ENODEV + (and (loopback-network-interface? "lo") + (catch 'system-error + (lambda () + (loopback-network-interface? "nonexistent") + #f) + (lambda args + (system-error-errno args))))) + (test-end) -- cgit v1.2.3