]> git.eshelyaron.com Git - emacs.git/commitdiff
Make gnutls-verify-error work again with url-retrieve-synchronously
authorLars Ingebrigtsen <larsi@gnus.org>
Wed, 13 Sep 2017 18:10:51 +0000 (20:10 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Wed, 13 Sep 2017 18:11:02 +0000 (20:11 +0200)
* lisp/url/url-gw.el (url-open-stream): Only use :nowait if
we're doing async connections (bug#26835).

* lisp/url/url-parse.el (url): Add an asynchronous slot.

* lisp/url/url.el (url-asynchronous): New variable.
(url-retrieve-internal): Store the value.
(url-retrieve-synchronously): Bind the variable.

lisp/url/url-gw.el
lisp/url/url-parse.el
lisp/url/url.el

index 28acde64203909ad2ee381989ab321ab747bcf28..716b7c0a6e0a05a6097a4549f91d1741113f5d35 100644 (file)
@@ -24,6 +24,7 @@
 ;;; Code:
 
 (require 'url-vars)
+(require 'url-parse)
 
 ;; Fixme: support SSH explicitly or via a url-gateway-rlogin-program?
 
@@ -245,8 +246,9 @@ overriding the value of `url-gateway-method'."
                           name buffer host service
                           :type gw-method
                           ;; Use non-blocking socket if we can.
-                          :nowait (featurep 'make-network-process
-                                             '(:nowait t))))
+                          :nowait (and (featurep 'make-network-process)
+                                        (url-asynchronous url-current-object)
+                                        '(:nowait t))))
                          (`socks
                          (socks-open-network-stream name buffer host service))
                         (`telnet
index 4738163f0bccee57d99727546b0783ef09009dbd..ef8e17dd13dd8fe33e8a826ac60dcfd0e76de1af 100644 (file)
@@ -36,7 +36,8 @@
                                      target attributes fullness))
             (:copier nil))
   type user password host portspec filename target attributes fullness
-  silent (use-cookies t))
+  silent (use-cookies t)
+  (asynchronous t))
 
 (defsubst url-port (urlobj)
   "Return the port number for the URL specified by URLOBJ.
index be6377ceb3abd67ece0c37cc45c3ed37a7921759..a6145d3f5f38ddcc8ec85c82f5a457d99afe4a5f 100644 (file)
@@ -119,6 +119,8 @@ variable in the original buffer as a forwarding pointer.")
 
 (defvar url-retrieve-number-of-calls 0)
 (autoload 'url-cache-prune-cache "url-cache")
+(defvar url-asynchronous t
+  "Bind to nil before calling `url-retrieve' to signal :nowait connections.")
 
 ;;;###autoload
 (defun url-retrieve (url callback &optional cbargs silent inhibit-cookies)
@@ -190,6 +192,7 @@ URL-encoded before it's used."
   (unless (url-type url)
     (error "Bad url: %s" (url-recreate-url url)))
   (setf (url-silent url) silent)
+  (setf (url-asynchronous url) url-asynchronous)
   (setf (url-use-cookies url) (not inhibit-cookies))
   ;; Once in a while, remove old entries from the URL cache.
   (when (zerop (% url-retrieve-number-of-calls 1000))
@@ -232,6 +235,7 @@ how long to wait for a response before giving up."
 
   (let ((retrieval-done nil)
        (start-time (current-time))
+        (url-asynchronous nil)
         (asynch-buffer nil))
     (setq asynch-buffer
          (url-retrieve url (lambda (&rest ignored)