guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug#27570] [PATCH v3] syscalls: Add network-interface-running?


From: Ludovic Courtès
Subject: [bug#27570] [PATCH v3] syscalls: Add network-interface-running?
Date: Mon, 10 Jul 2017 12:18:05 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)

Danny Milosavljevic <address@hidden> skribis:

> * guix/build/syscalls.scm (network-interface-running?): New variable.
> Export it.
> ---
>  guix/build/syscalls.scm | 9 +++++++++
>  1 file changed, 9 insertions(+)
>
> diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm
> index 9c082b435..5a6662afe 100644
> --- a/guix/build/syscalls.scm
> +++ b/guix/build/syscalls.scm
> @@ -88,6 +88,7 @@
>  
>              PF_PACKET
>              AF_PACKET
> +            network-interface-running?
>              all-network-interface-names
>              network-interface-names
>              network-interface-netmask
> @@ -1108,6 +1109,7 @@ bytes."
>  (define-as-needed IFF_UP #x1)                     ;Interface is up
>  (define-as-needed IFF_BROADCAST #x2)              ;Broadcast address valid.
>  (define-as-needed IFF_LOOPBACK #x8)               ;Is a loopback net.
> +(define-as-needed IFF_RUNNING #x40)               ;interface RFC2863 OPER_UP
>  
>  (define IF_NAMESIZE 16)                           ;maximum interface name 
> size
>  
> @@ -1282,6 +1284,13 @@ interface NAME."
>      (close-port sock)
>      (not (zero? (logand flags IFF_LOOPBACK)))))
>  
> +(define (network-interface-running? name)
> +  "Return true if NAME designates a running network interface."
> +  (let* ((sock  (socket SOCK_STREAM AF_INET 0))
> +         (flags (network-interface-flags sock name)))
> +    (close-port sock)
> +    (not (zero? (logand flags IFF_RUNNING)))))

Could you also add a test in tests/syscalls.scm along the lines of the
‘loopback-network-interface?’ test that’s there?  (I think the test can
assume that “lo” is running.)

OK with this change.

(And you can disregard the reply I sent just before.)

Thanks!

Ludo’.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]