Subject: bug#61916: closed (Re: bug#61916: 30.0.50; url.el; Can not change User-Agent temporarily when url-retrieve)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 26 Jul 2025 09:12:02 +0000

Your bug report

#61916: 30.0.50; url.el; Can not change User-Agent temporarily when url-retrieve

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
61916: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=61916
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#61916: 30.0.50; url.el; Can not change User-Agent temporarily when url-retrieve
From: Eli Zaretskii <[email-masked]>
To: "Peder O. Klingenberg" <[email-masked]>
Cc: [email-masked], [email-masked]
Date: Sat, 26 Jul 2025 12:11:43 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

> Cc: [email-masked]
> From: "Peder O. Klingenberg" <[email-masked]>
> Date: Fri, 18 Jul 2025 15:03:49 +0200
> 
> On Fri, 2025-07-18 14:57:58 +0200, Peder O. Klingenberg wrote:
> 
> > Attached is a patch that extends the set of dynamic-values-at-call-time
> > -> buffer-local-available-at-request-time variables.  With this, your
> > test case works as expected, as do my experiments in restclient.
> 
> (Except I failed to attach the patch using the debbugs-gnu-pick-commits
> command, so here, attached the old-fashioned way)

Thanks, installed on the master branch, and closing the bug.

Subject: 30.0.50; url.el; Can not change User-Agent temporarily when url-retrieve
From: xhcoding <[email-masked]>
To: [email-masked]
Date: Thu, 02 Mar 2023 21:37:13 +0800
List-Id: <debbugs-submit.debbugs.gnu.org>

The following code cannot be used to temporarily change User-Agent

(require 'url)
(setq url-debug t)
(let ((url-user-agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.57"))
  (url-retrieve "https://httpbin.org/get?a=b" (lambda (_))))

Because the url-retrieve is asynchronous, when the url-user-agent is actually used (eg. url-http-create-request be called),
it may be out of the let scope.

In GNU Emacs 30.0.50 (build 5, x86_64-w64-mingw32)
Repository revision: 07a76a06f9a438e2a1bf1e565e3e78f7927c37f2
Repository branch: master
Windowing system distributor 'Microsoft Corp.', version 10.0.22621
System Description: Microsoft Windows 10 Home China (v10.0.2009.22621.1105)

Configured using:
 'configure --prefix=/d/emacs-build/pkg/master-x86_64 'CFLAGS=-Ofast -fno-finite-math-only -fomit-frame-pointer'
 --with-zlib --with-xpm --with-xml2 --with-tree-sitter --without-tiff --with-rsvg --with-png --with-lcms2 --with-json
 --with-jpeg --with-harfbuzz --with-gnutls --with-gif --without-cairo --disable-build-details --without-dbus
 --with-compress-install --with-small-ja-dic'

Configured features:
ACL GIF GMP GNUTLS HARFBUZZ JPEG JSON LCMS2 LIBXML2 MODULES NOTIFY W32NOTIFY PDUMPER PNG RSVG SOUND SQLITE3 THREADS
TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XPM ZLIB

Important settings:
  value of $LANG: CHS
  locale-coding-system: cp936

Major mode: ELisp/d