store: Deal with unsupported `setsockopt' operation on GNU/Hurd.
* guix/store.scm (open-connection): Silently ignore ENOPROTOOPT on `setsockopt' calls, for the sake of GNU/Hurd. Reported by Matthew Lien <bluet@bluet.org> at <http://lists.gnu.org/archive/html/bug-guix/2013-07/msg00020.html>.
This commit is contained in:
parent
5363abb776
commit
8c95b27ce6
@ -266,8 +266,15 @@ operate, should the disk become full. Return a server object."
|
|||||||
(socket PF_UNIX SOCK_STREAM 0)))
|
(socket PF_UNIX SOCK_STREAM 0)))
|
||||||
(a (make-socket-address PF_UNIX file)))
|
(a (make-socket-address PF_UNIX file)))
|
||||||
|
|
||||||
;; Enlarge the receive buffer.
|
(catch 'system-error
|
||||||
(setsockopt s SOL_SOCKET SO_RCVBUF (* 12 1024))
|
(lambda ()
|
||||||
|
;; Enlarge the receive buffer.
|
||||||
|
(setsockopt s SOL_SOCKET SO_RCVBUF (* 12 1024)))
|
||||||
|
(lambda args
|
||||||
|
;; On the Hurd, the pflocal server's implementation of `socket_setopt'
|
||||||
|
;; always returns ENOPROTOOPT. Ignore it.
|
||||||
|
(unless (= (system-error-errno args) ENOPROTOOPT)
|
||||||
|
(apply throw args))))
|
||||||
|
|
||||||
(catch 'system-error
|
(catch 'system-error
|
||||||
(cut connect s a)
|
(cut connect s a)
|
||||||
|
Loading…
Reference in New Issue
Block a user