File tree Expand file tree Collapse file tree 1 file changed +19
-4
lines changed
Expand file tree Collapse file tree 1 file changed +19
-4
lines changed Original file line number Diff line number Diff line change 399399(defmethod open-stream-p ((u usocket-wrapped-stream))
400400 (open-stream-p (usocket-wrapped-stream-stream u)))
401401
402+ (defun socket-connect/retry (uri &key timeout)
403+ (declare (ignorable timeout))
404+ (let ((retried nil ))
405+ (tagbody
406+ retry
407+ (handler-bind (#+ sbcl
408+ (sb-bsd-sockets :interrupted-error
409+ (lambda (e)
410+ (declare (ignore e))
411+ (unless retried
412+ (setf retried t )
413+ (go retry)))))
414+ (return-from socket-connect/retry
415+ (usocket :socket-connect (uri-host uri)
416+ (uri-port uri)
417+ #- (or ecl clasp clisp allegro) :timeout #- (or ecl clasp clisp allegro) timeout
418+ :element-type ' (unsigned-byte 8 )))))))
419+
402420(defun-careful request (uri &rest args
403421 &key (method :get ) (version 1.1 )
404422 content headers
427445 (labels ((make-new-connection (uri)
428446 (restart-case
429447 (let* ((con-uri (quri :uri (or proxy uri)))
430- (connection (usocket :socket-connect (uri-host con-uri)
431- (uri-port con-uri)
432- #- (or ecl clasp clisp allegro) :timeout #- (or ecl clasp clisp allegro) connect-timeout
433- :element-type ' (unsigned-byte 8 )))
448+ (connection (socket-connect/retry con-uri :timeout connect-timeout))
434449 (stream
435450 (usocket :socket-stream connection))
436451 (scheme (uri-scheme uri)))
You can’t perform that action at this time.
0 commit comments