Hi! Jan Nieuwenhuizen <jann...@gnu.org> 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’.