GNU bug report logs -
#36340
Test failures when networking is disabled
Previous Next
Full log
View this message in rfc822 format
When guile is built with --disable-networking, (ice-9 suspendable-ports)
will attempt to re-export non-existent accept and socket functions.
* module/ice-9/suspendable-ports.scm (accept, connect): set to #f when
(guile) module does not have accept or connect
(guile-port-bindings): new variable
(port-bindings): don't include accept or connect when not defined
---
module/ice-9/suspendable-ports.scm | 46 ++++++++++++++++++------------
1 file changed, 27 insertions(+), 19 deletions(-)
diff --git a/module/ice-9/suspendable-ports.scm b/module/ice-9/suspendable-ports.scm
index 9fac1df62..00fd26049 100644
--- a/module/ice-9/suspendable-ports.scm
+++ b/module/ice-9/suspendable-ports.scm
@@ -727,30 +727,38 @@
(flush-output port))))
(define accept
- (let ((%accept (@ (guile) accept)))
- (lambda* (port #:optional (flags 0))
- (let lp ()
- (or (%accept port flags)
- (begin
- (wait-for-readable port)
- (lp)))))))
+ (let ((%accept (false-if-exception (@ (guile) accept))))
+ (if %accept
+ (lambda* (port #:optional (flags 0))
+ (let lp ()
+ (or (%accept port flags)
+ (begin
+ (wait-for-readable port)
+ (lp)))))
+ #f)))
(define connect
- (let ((%connect (@ (guile) connect)))
- (lambda (port sockaddr . args)
- (unless (apply %connect port sockaddr args)
- ;; Clownshoes semantics; see connect(2).
- (wait-for-writable port)
- (let ((err (getsockopt port SOL_SOCKET SO_ERROR)))
- (unless (zero? err)
- (scm-error 'system-error "connect" "~A"
- (list (strerror err)) #f)))))))
+ (let ((%connect (false-if-exception (@ (guile) connect))))
+ (if %connect
+ (lambda (port sockaddr . args)
+ (unless (apply %connect port sockaddr args)
+ ;; Clownshoes semantics; see connect(2).
+ (wait-for-writable port)
+ (let ((err (getsockopt port SOL_SOCKET SO_ERROR)))
+ (unless (zero? err)
+ (scm-error 'system-error "connect" "~A"
+ (list (strerror err)) #f)))))
+ #f)))
(define saved-port-bindings #f)
+(define guile-port-bindings
+ (append
+ '(read-char peek-char force-output close-port)
+ (if accept '(accept) '())
+ (if connect '(connect) '())))
+
(define port-bindings
- '(((guile)
- read-char peek-char force-output close-port
- accept connect)
+ `(((guile) ,@guile-port-bindings)
((ice-9 binary-ports)
get-u8 lookahead-u8 get-bytevector-n get-bytevector-n!
get-bytevector-some get-bytevector-some!
--
2.48.1
This bug report was last modified 96 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.