comparison admin/FOR-RELEASE @ 59329:75e5456e5a43

(url-http-handle-authentication): Don't kill the current buffer.
author Richard M. Stallman <rms@gnu.org>
date Mon, 03 Jan 2005 21:00:07 +0000
parents b0bb670d6f7d
children b6e2ab383e40
comparison
equal deleted inserted replaced
59328:7f974399bee1 59329:75e5456e5a43
29 * LOSSAGE 29 * LOSSAGE
30 30
31 ** Clean up flymake.el to follow Emacs Lisp conventions. 31 ** Clean up flymake.el to follow Emacs Lisp conventions.
32 32
33 ** Fix up url-ldap.el. 33 ** Fix up url-ldap.el.
34
35 ** url/*.el has lots of `(declare (special ...))' which
36 are meaningless. What's that trying to do?
34 37
35 * BUGS 38 * BUGS
36 39
37 ** Incomplete overlay mouse-face highlight bug (Ralf Angeli, Oct 18) 40 ** Incomplete overlay mouse-face highlight bug (Ralf Angeli, Oct 18)
38 41
59 Ange-ftp chokes on the `No route to host' message and doesn't look any 62 Ange-ftp chokes on the `No route to host' message and doesn't look any
60 further. 63 further.
61 64
62 I think in the near future we will see more of this problem, so it might be 65 I think in the near future we will see more of this problem, so it might be
63 time to make anfe-ftp more intelligent. 66 time to make anfe-ftp more intelligent.
64
65 ** Bug in url-http-parse-headers, reported in
66 From: Vivek Dasmohapatra <vivek@zeus.com>
67 Date: Tue, 28 Sep 2004 16:13:13 +0100
68
69 Fetching a url with url-retrieve can reult in an anrbitrary buffer
70 being killed if a 401 (or possibly a 407) result is encountered:
71
72 url-http-parse-headers calls url-http-handle-authentication,
73 which can call url-retrieve.
74
75 This results in the current buffer being killed, and a new http buffer
76 being generated. However, when the old http buffer is killed, emacs
77 picks the top buffer from the list as the new current buffer, so by the
78 time we get to the end of url-http-parse-headers, _that_ buffer is marked
79 as dead even though it is not necessarily a url buffer, so next time the
80 url libraries reap their dead buffers, an innocent bystander buffer is
81 killed instead (and an obsolete http buffer may be left lying around too).
82
83 A possible fix (which I am currently using) is to call set-buffer
84 on the return value of url-http-parse-headers:
85
86 (case url-http-response-status
87 (401
88 ;; The request requires user authentication. The response
89 ;; MUST include a WWW-Authenticate header field containing a
90 ;; challenge applicable to the requested resource. The
91 ;; client MAY repeat the request with a suitable
92 ;; Authorization header field.
93 (url-mark-buffer-as-dead (current-buffer))
94 (set-buffer (url-http-handle-authentication nil)))
95 etc ....
96
97 which makes sure that it is the right http buffer that is current when
98 we come to mark the http buffers as dead.
99
100 67
101 68
102 * GTK RELATED BUGS 69 * GTK RELATED BUGS
103 70
104 ** Make GTK scrollbars behave like others w.r.t. overscrolling. 71 ** Make GTK scrollbars behave like others w.r.t. overscrolling.