guix-devel
[Top][All Lists]
Advanced

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

Re: 18/36: services: hurd: Add dummy loopback.


From: Ludovic Courtès
Subject: Re: 18/36: services: hurd: Add dummy loopback.
Date: Wed, 06 May 2020 16:09:55 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)

Hi!

Jan Nieuwenhuizen <address@hidden> skribis:

> (use-modules (guix build syscalls))
>
> (define LOOPBACK? #t)
> (define IP "127.0.0.1" )
> (define INTERFACE "lo")
> (define NETMASK #f)
> (define GATEWAY #f)
>
> (format #t "ifreq-struct-size: ~a\n" (@@ (guix build syscalls) 
> ifreq-struct-size))
> (format #t "sizeof-ifconf: ~s\n" (@@ (guix build syscalls) sizeof-ifconf))
> (define (test)
>   (let* ((addr     (inet-pton AF_INET IP))
>          (sockaddr (make-socket-address AF_INET addr 0))
>          (mask     (and NETMASK
>                         (inet-pton AF_INET NETMASK)))
>          (maskaddr (and mask
>                         (make-socket-address AF_INET
>                                              mask 0)))
>          (gateway  (and GATEWAY
>                         (inet-pton AF_INET GATEWAY)))
>          (gatewayaddr (and gateway
>                            (make-socket-address AF_INET
>                                                 gateway 0))))
>     (configure-network-interface INTERFACE sockaddr
>                                  (logior IFF_UP
>                                          (if LOOPBACK?
>                                              IFF_LOOPBACK
>                                              0))
>                                  #:netmask maskaddr)
>     (when gateway
>       (let ((sock (socket AF_INET SOCK_DGRAM 0)))
>         (add-network-route/gateway sock gatewayaddr)
>         (close-port sock)))))
>
> (test)

Could you change that last line to:

  (catch 'system-error
    test
    (lambda args
      (let ((errno (system-error-errno args)))
        (pk errno (strerror errno)))))

?

The out-of-range exception presumably is an unrelated error in Guile’s
debugger and it’s shadowing the one we’re interested in.

TIA!

Ludo’.



reply via email to

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