From unknown Sun Jun 22 22:48:19 2025 X-Loop: help-debbugs@gnu.org Subject: bug#40354: [PATCH] Fix Libravatar federation handling Resent-From: Philip K Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 31 Mar 2020 18:04:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 40354 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: 40354@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.158567781820758 (code B ref -1); Tue, 31 Mar 2020 18:04:01 +0000 Received: (at submit) by debbugs.gnu.org; 31 Mar 2020 18:03:38 +0000 Received: from localhost ([127.0.0.1]:36979 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jJLEf-0005Oj-Sv for submit@debbugs.gnu.org; Tue, 31 Mar 2020 14:03:38 -0400 Received: from lists.gnu.org ([209.51.188.17]:49404) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jJLEd-0005Ob-V1 for submit@debbugs.gnu.org; Tue, 31 Mar 2020 14:03:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57159) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jJLEc-00007u-0q for bug-gnu-emacs@gnu.org; Tue, 31 Mar 2020 14:03:35 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: ** X-Spam-Status: No, score=2.1 required=5.0 tests=BAYES_50,FREEMAIL_FROM, RCVD_IN_DNSWL_LOW,SPOOFED_FREEMAIL,URIBL_BLOCKED autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jJLEa-00010Z-Lr for bug-gnu-emacs@gnu.org; Tue, 31 Mar 2020 14:03:33 -0400 Received: from wout3-smtp.messagingengine.com ([64.147.123.19]:52827) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jJLEY-0000zb-Ts for bug-gnu-emacs@gnu.org; Tue, 31 Mar 2020 14:03:32 -0400 Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailout.west.internal (Postfix) with ESMTP id 4E1075BD for ; Tue, 31 Mar 2020 14:03:29 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Tue, 31 Mar 2020 14:03:29 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=warpmail.net; h= from:to:subject:date:message-id:mime-version :content-transfer-encoding; s=fm3; bh=M+VJr+i9Y9nxysvxxo3jXSAhNj i+J/Gaq78Pzbz3KHU=; b=rJsjgcJamCJxOSjswAbiaI114OB0D5T+sqSEuZ2kBv VY2I1qyUX/sA9jObKENqGscdYbwVx8QgVRAi8sOc5rGjg0yFr/++R80Q1gICORHt CI4h1K2dSP1xYL9R6+EJqIdXbWkQM/grK5mOXLPG45/lhqXRkXXYB9lhZU08Ah1E s8eZkkp3MTs4vHeEFX/kl+JSU4l5pvfHKqAN1Wxvew+TwYqMcjGnHpVccVz6efry LXJ2jr+KQh9nilC4zImy+6RVqZDjlpk0RelYkEVFtTJ5flz8+PX6YWy3FCGmjVWk /g7yUU9/N46kqCpALefQaW4YUeZqnZgeaQ9F0kiHIZhA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:date:from :message-id:mime-version:subject:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=M+VJr+i9Y9nxysvxx o3jXSAhNji+J/Gaq78Pzbz3KHU=; b=McwaCuiox7DS3PEzEOnWmD3qc89twB3zB M3AFL2NdpSYt3dV9WPrnxgBlobApodhmwzDvhbIw7kWQXCLsU1/A4ZpJiz8bxTUD Z1ZDlgpJRzBjcaD/Fez0cqq+27fZ6A2N0mCPBn9FClVWI1hr/cuA0S6Ja/LKhbBI SqsYthPBpG+CE2RxQ0o4cV5n4T37pgmT5z9eOYCDuAfIa575GmJBIe7P00rjwyA5 IqI5pmJJx/zV8e3Gjp6FlLS2yxqZJNJZrhbamTrr2OsVTRgOQ6YhMyA+/p93souk y4t4dz+3lrfRwvMEKJ7UQEEam0bWMuR9dzUhMNIX1xM2ie8tvHgJA== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduhedrtddtgdekjecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurhephffvufffkffoggfgsedtkeertdertd dtnecuhfhrohhmpefrhhhilhhiphcumfcuoehphhhilhhiphesfigrrhhpmhgrihhlrdhn vghtqeenucffohhmrghinheplhhisghrrghvrghtrghrrdhorhhgnecukfhppeejledrvd duledrudelledrudeftdenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgr ihhlfhhrohhmpehphhhilhhiphesfigrrhhpmhgrihhlrdhnvght X-ME-Proxy: Received: from localhost (p4fdbc782.dip0.t-ipconnect.de [79.219.199.130]) by mail.messagingengine.com (Postfix) with ESMTPA id 7C074306CBCC for ; Tue, 31 Mar 2020 14:03:28 -0400 (EDT) From: Philip K Date: Tue, 31 Mar 2020 20:03:24 +0200 Message-Id: <20200331180324.2943-1-philip@warpmail.net> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 64.147.123.19 X-Spam-Score: 2.0 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Previous implementation didn't correctly handle the result of dns-query, and didn't implement the necessary record selection algorithm as specified on the wiki (https://wiki.libravatar.org/api/, "Fede [...] Content analysis details: (2.0 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 URIBL_BLOCKED ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [URIs: messagingengine.com] -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [209.51.188.17 listed in list.dnswl.org] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (philip[at]warpmail.net) 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.7 SPF_NEUTRAL SPF: sender does not match SPF record (neutral) 2.0 SPOOFED_FREEMAIL No description available. X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Previous implementation didn't correctly handle the result of dns-query, and didn't implement the necessary record selection algorithm as specified on the wiki (https://wiki.libravatar.org/api/, "Federated servers"). * lisp/image/gravatar.el (gravatar--service-libravatar): Fix libravatar image host resolver algorithm. --- lisp/image/gravatar.el | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/lisp/image/gravatar.el b/lisp/image/gravatar.el index ff59a72ac8..a2207af962 100644 --- a/lisp/image/gravatar.el +++ b/lisp/image/gravatar.el @@ -149,13 +149,36 @@ gravatar--service-libravatar (dolist (record '(("_avatars-sec" . "https") ("_avatars" . "http"))) (let* ((query (concat (car record) "._tcp." domain)) - (result (dns-query query 'SRV))) + (result (dns-query query 'SRV t))) (when result - (throw 'found (format "%s://%s/avatar" - (cdr record) - result))))) - "https://seccdn.libravatar.org/avatar"))))) + (let* ((res (mapcar (lambda (rec) + (dns-get 'data (cdr rec))) + (dns-get 'answers result))) + (prio + (mapcar (lambda (r) (dns-get 'priority r)) res)) + (max (apply #'max prio)) + (sum 0) top) + ;; Attempt to find all records with the same maximal + ;; priority, and calculate the sum of their weights. + (dolist (rec res) + (when (= max (dns-get 'priority rec)) + (setq sum (+ sum (dns-get 'weight rec))) + (push rec top))) + ;; In case there is more than one maximal priority + ;; record, choose one at random, while taking the + ;; individual record weights into consideration. + (dolist (rec top) + (when (and (<= (if (= 0 sum) -1 (random sum)) + (dns-get 'weight rec)) + (<= 1 (dns-get 'port rec) 65535) + (string-match-p "\\`[-.0-9A-Za-z]+\\'" + (dns-get 'target rec))) + (throw 'found (format "%s://%s:%s/avatar" + (cdr record) + (dns-get 'target rec) + (dns-get 'port rec)))) + (setq sum (- sum (dns-get 'weight rec))))))) + "https://seccdn.libravatar.org/avatar")))))) (defun gravatar-hash (mail-address) "Return the Gravatar hash for MAIL-ADDRESS." -- 2.20.1 From unknown Sun Jun 22 22:48:19 2025 X-Loop: help-debbugs@gnu.org Subject: bug#40354: [PATCH] Fix Libravatar federation handling References: <20200331180324.2943-1-philip@warpmail.net> In-Reply-To: <20200331180324.2943-1-philip@warpmail.net> Resent-From: "Philip K." Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 01 Jul 2020 14:56:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 40354 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: 40354@debbugs.gnu.org Received: via spool by 40354-submit@debbugs.gnu.org id=B40354.159361535515408 (code B ref 40354); Wed, 01 Jul 2020 14:56:02 +0000 Received: (at 40354) by debbugs.gnu.org; 1 Jul 2020 14:55:55 +0000 Received: from localhost ([127.0.0.1]:53573 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jqe9S-00040S-Q1 for submit@debbugs.gnu.org; Wed, 01 Jul 2020 10:55:55 -0400 Received: from wout5-smtp.messagingengine.com ([64.147.123.21]:50791) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jqe9N-00040B-Qz for 40354@debbugs.gnu.org; Wed, 01 Jul 2020 10:55:53 -0400 Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailout.west.internal (Postfix) with ESMTP id B80245E3 for <40354@debbugs.gnu.org>; Wed, 1 Jul 2020 10:55:43 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Wed, 01 Jul 2020 10:55:43 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=warpmail.net; h= from:to:subject:date:message-id:mime-version:content-type; s= fm3; bh=o1IINZ8ezcWRODX1jJX8JpXADlsPSm1zTvjVqeVrXZk=; b=RE9s0HEO YLdVwX7t2l9pzZvz2stPi9HtQVu6Kujq3eGAksXTmyV9J99RK8HoQ/FEm1o5+oYl rQ2Cor5hwA3LY0ykjNzsiZ0tskXvTzxXjI0pht6XGcV/EAhVWjI6Eg7w2ES9NduA 82rKUMBTu9gtfiQwMNGl3MyCAPCvHa0RdD3hRuPzG9YUDUOvab6Wq5UHwUUmT9Io TEwMjTclVw8hpX4caj07h6QOuobZRv56ltIK7WDYLzdwddRECuj30EhbpJJzjcae zwdk8GXhrET5opIyhS+mTyfiJkFnBglLw1pMwKJ4b1sv6DGTbtkIFuKWGFBw4pBn OhPwuR698QktAA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:message-id :mime-version:subject:to:x-me-proxy:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm3; bh=o1IINZ8ezcWRODX1jJX8JpXADlsPS m1zTvjVqeVrXZk=; b=K8PMPDyX8qchRmzkvF8ZH6mgV6ycc/do6hqtkUGaTH75g EqkCFaHcPiP6b/O417RYKlb1dzm+vEIQcFxS9Wu/4X10w43iQYkBwqAf6hNOaFkI 0XtNH8BEz7vk0lNiTN1tRKDkf6+d8zJdGQqG9q0dRytjhVKVWBR9fVcip/m6R2Nh fg+TzTiNYzHLtn0vPelmMsXsuQAJB/WoL2STSIEdx8mPmboRhxBcreOVN24dJvG+ BV2aqCB9o9yiX2ZurrKuh7UveeRTFjZYVdsfCHsye1U7FY48/uqPweL8zwwxaCzx Qfnx7XgF+r5BHsQVDViN8IUHz+s4dGyFzD7CPe09A== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduiedrtddvgdekfecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurhephffvufffkfggtgesthdtredttddttd enucfhrhhomhepfdfrhhhilhhiphcumfdrfdcuoehphhhilhhiphesfigrrhhpmhgrihhl rdhnvghtqeenucggtffrrghtthgvrhhnpefgjeetieeivddugfekfedvfedufeekhfegie fhffffvdeihfejieeuvdffgeevteenucffohhmrghinheplhhisghrrghvrghtrghrrdho rhhgnecukfhppedufedurddukeekrdeirdduvdenucevlhhushhtvghrufhiiigvpedtne curfgrrhgrmhepmhgrihhlfhhrohhmpehphhhilhhiphesfigrrhhpmhgrihhlrdhnvght X-ME-Proxy: Received: from localhost (nat-vpn1.rrze.uni-erlangen.de [131.188.6.12]) by mail.messagingengine.com (Postfix) with ESMTPA id DC61F3060057 for <40354@debbugs.gnu.org>; Wed, 1 Jul 2020 10:55:42 -0400 (EDT) From: "Philip K." Date: Wed, 01 Jul 2020 16:55:29 +0200 Message-ID: <87d05fp9ni.fsf@warpmail.net> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) I hope this isn't bad style, but I'd like to ping this issue once more. The current implementation for libravatar is *not* correct, and won't properly implement federation. Instead it just always defaults to "https://seccdn.libravatar.org/avatar", even if a server has explicitly set up their own avatar server. -- Philip K. From unknown Sun Jun 22 22:48:19 2025 X-Loop: help-debbugs@gnu.org Subject: bug#40354: [PATCH] Fix Libravatar federation handling Resent-From: Lars Ingebrigtsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 08 Aug 2020 13:11:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 40354 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Philip K Cc: 40354@debbugs.gnu.org Received: via spool by 40354-submit@debbugs.gnu.org id=B40354.159689221328732 (code B ref 40354); Sat, 08 Aug 2020 13:11:02 +0000 Received: (at 40354) by debbugs.gnu.org; 8 Aug 2020 13:10:13 +0000 Received: from localhost ([127.0.0.1]:58488 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k4Oc0-0007TM-Sp for submit@debbugs.gnu.org; Sat, 08 Aug 2020 09:10:13 -0400 Received: from quimby.gnus.org ([95.216.78.240]:51580) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k4Oby-0007T2-UL for 40354@debbugs.gnu.org; Sat, 08 Aug 2020 09:10:11 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=FRyPytM3RR5zK0h3zmtI4NKsYjrYHc6KCxSL1ftBLGw=; b=AzeC6uE3kb5p+voKWXZEdozGsX IwesAGyQ5bY6KHJW2kSEJxgATkEU/QzXEW1Jqgjwm/9PB6gLZ8Biue9SvH7RoqtXQkIOK29rJ6jpa 8A5CmJq/d8FWE+lbRMTG1x1grB0G6w7303OThbZOikh+TulBgEFvwV1MRTEeUY/l5Elc=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1k4Obp-0004ez-HS; Sat, 08 Aug 2020 15:10:04 +0200 From: Lars Ingebrigtsen References: <20200331180324.2943-1-philip@warpmail.net> Date: Sat, 08 Aug 2020 15:10:00 +0200 In-Reply-To: <20200331180324.2943-1-philip@warpmail.net> (Philip K.'s message of "Tue, 31 Mar 2020 20:03:24 +0200") Message-ID: <875z9t1dxz.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: Philip K writes: > Previous implementation didn't correctly handle the result of > dns-query, and didn't implement the necessary record selection > algorithm as specified on the wiki (https://wiki.libravatar.org/api/, [...] Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Philip K writes: > Previous implementation didn't correctly handle the result of > dns-query, and didn't implement the necessary record selection > algorithm as specified on the wiki (https://wiki.libravatar.org/api/, > "Federated servers"). > > * lisp/image/gravatar.el (gravatar--service-libravatar): Fix > libravatar image host resolver algorithm. Looks good to me, although this didn't apply either, since the code has been rewritten to be asynchronous. Could you re-spin this patch, too, and I'll get it applied... -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From unknown Sun Jun 22 22:48:19 2025 X-Loop: help-debbugs@gnu.org Subject: bug#40354: [PATCH] Fix Libravatar federation handling Resent-From: Lars Ingebrigtsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 18 Aug 2020 14:50:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 40354 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Philip K Cc: 40354@debbugs.gnu.org Received: via spool by 40354-submit@debbugs.gnu.org id=B40354.159776216719872 (code B ref 40354); Tue, 18 Aug 2020 14:50:02 +0000 Received: (at 40354) by debbugs.gnu.org; 18 Aug 2020 14:49:27 +0000 Received: from localhost ([127.0.0.1]:36615 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k82vX-0005AR-7a for submit@debbugs.gnu.org; Tue, 18 Aug 2020 10:49:27 -0400 Received: from quimby.gnus.org ([95.216.78.240]:33470) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k82vU-0005AF-Rt for 40354@debbugs.gnu.org; Tue, 18 Aug 2020 10:49:25 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=rH3HsmmtbqFYQ3xtqMsVCzTIiyL0IlueqZA6ud+Y85M=; b=SYxUAf2iBAf/zMDQUuZ3jp91Es ci5mxb/PvqQ4RPHA2E0KPChb9CYhc7FQQH08erz0D6FJeqtCzORWPDK5c2uFiYCT/TDbEMI2RqFAa DXARQixiRRwzl1/2M4oTVVrl2qtlzYz8Q/hOauARxej3TsOgyESm1HB9l4pLxg7jER4E=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1k82vJ-0007zw-Ql; Tue, 18 Aug 2020 16:49:19 +0200 From: Lars Ingebrigtsen References: <20200331180324.2943-1-philip@warpmail.net> <875z9t1dxz.fsf@gnus.org> X-Now-Playing: Cocteau Twins's _The Pink Opaque_: "Hitherto" Date: Tue, 18 Aug 2020 16:49:12 +0200 In-Reply-To: <875z9t1dxz.fsf@gnus.org> (Lars Ingebrigtsen's message of "Sat, 08 Aug 2020 15:10:00 +0200") Message-ID: <87o8n8j9g7.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: Lars Ingebrigtsen writes: > Philip K writes: > >> Previous implementation didn't correctly handle the result of >> dns-query, and didn't implement the necessary record selection >> algorithm as specified [...] Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Lars Ingebrigtsen writes: > Philip K writes: > >> Previous implementation didn't correctly handle the result of >> dns-query, and didn't implement the necessary record selection >> algorithm as specified on the wiki (https://wiki.libravatar.org/api/, >> "Federated servers"). >> >> * lisp/image/gravatar.el (gravatar--service-libravatar): Fix >> libravatar image host resolver algorithm. > > Looks good to me, although this didn't apply either, since the code has > been rewritten to be asynchronous. Could you re-spin this patch, too, > and I'll get it applied... Philip, have you had time to look at this? -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From unknown Sun Jun 22 22:48:19 2025 X-Loop: help-debbugs@gnu.org Subject: bug#40354: [PATCH] Fix Libravatar federation handling References: <20200331180324.2943-1-philip@warpmail.net> Resent-From: philipk@posteo.net (Philip K.) Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 18 Aug 2020 14:58:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 40354 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Lars Ingebrigtsen Cc: 40354@debbugs.gnu.org Received: via spool by 40354-submit@debbugs.gnu.org id=B40354.159776264220728 (code B ref 40354); Tue, 18 Aug 2020 14:58:02 +0000 Received: (at 40354) by debbugs.gnu.org; 18 Aug 2020 14:57:22 +0000 Received: from localhost ([127.0.0.1]:36663 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k833B-0005OG-RQ for submit@debbugs.gnu.org; Tue, 18 Aug 2020 10:57:22 -0400 Received: from mout02.posteo.de ([185.67.36.66]:44677) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k8338-0005No-IG for 40354@debbugs.gnu.org; Tue, 18 Aug 2020 10:57:20 -0400 Received: from submission (posteo.de [89.146.220.130]) by mout02.posteo.de (Postfix) with ESMTPS id 0F19B2400FF for <40354@debbugs.gnu.org>; Tue, 18 Aug 2020 16:57:11 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1597762632; bh=7+zzrybUOw4tvOS3LvfcbIdw7bEbPMvPtJMA41gprcs=; h=From:To:Cc:Subject:Date:From; b=UKYtFdJ6bB93cXlzgE9XdWS2sXegjj6r9afIhmiSYXqFgD9wuJzva1Lu+w+k9pl9M p05vnzOKNs0NDZYhM1F9SFkNOiJt3n6yDGDFDOBVY/Eht+I1aMgP6Gl1iOGZQlH+AY 97IjqkNy4mmw/8WSBFiQSg/rmhaI4dMFmYnv2gB0+Ojb9Q0hVtvg2YCpKqNaAYFZo4 cHOng2vuJjBIA3daGxagFUVq+ihSsk6Ze0nhBW1BD3r2IkK1meISZHPQ62ihZPMYwC V0HFFx5g9XErLT4n6n8nhaNIhZbuEVMfRVbfllSCG5ZMXqgUvjHngFviRfln3rjhgH ZgrBS5WGU0sGQ== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4BWDXR3601z9rxN; Tue, 18 Aug 2020 16:57:11 +0200 (CEST) From: philipk@posteo.net (Philip K.) In-Reply-To: <87o8n8j9g7.fsf@gnus.org> (message from Lars Ingebrigtsen on Tue, 18 Aug 2020 16:49:12 +0200) Date: Tue, 18 Aug 2020 16:57:10 +0200 Message-ID: <87eeo4c88p.fsf@posteo.net> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Lars Ingebrigtsen writes: > Lars Ingebrigtsen writes: > >> Philip K writes: >> >>> Previous implementation didn't correctly handle the result of >>> dns-query, and didn't implement the necessary record selection >>> algorithm as specified on the wiki (https://wiki.libravatar.org/api/, >>> "Federated servers"). >>> >>> * lisp/image/gravatar.el (gravatar--service-libravatar): Fix >>> libravatar image host resolver algorithm. >> >> Looks good to me, although this didn't apply either, since the code has >> been rewritten to be asynchronous. Could you re-spin this patch, too, >> and I'll get it applied... > > Philip, have you had time to look at this? I'll go over it to check if the images are resolved correctly. -- Philip K. From unknown Sun Jun 22 22:48:19 2025 X-Loop: help-debbugs@gnu.org Subject: bug#40354: [PATCH] Fix Libravatar federation handling References: <20200331180324.2943-1-philip@warpmail.net> Resent-From: "Philip K." Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 18 Aug 2020 18:54:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 40354 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: Lars Ingebrigtsen Cc: 40354@debbugs.gnu.org Received: via spool by 40354-submit@debbugs.gnu.org id=B40354.159777683822560 (code B ref 40354); Tue, 18 Aug 2020 18:54:02 +0000 Received: (at 40354) by debbugs.gnu.org; 18 Aug 2020 18:53:58 +0000 Received: from localhost ([127.0.0.1]:37011 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k86k3-0005rh-Ag for submit@debbugs.gnu.org; Tue, 18 Aug 2020 14:53:58 -0400 Received: from mout01.posteo.de ([185.67.36.65]:33993) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k86jx-0005rJ-6y for 40354@debbugs.gnu.org; Tue, 18 Aug 2020 14:53:49 -0400 Received: from submission (posteo.de [89.146.220.130]) by mout01.posteo.de (Postfix) with ESMTPS id C3EA116005F for <40354@debbugs.gnu.org>; Tue, 18 Aug 2020 20:53:38 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1597776818; bh=iTwCaTZHUWSvIvmvUu8WfKd4ZIV8H/gxOwns+qkE9UI=; h=From:To:Cc:Subject:Date:From; b=h2s4m1d0+geZUuDUFPySdydyvITtfw+Mlohw+e6/lGtFU9TF2M5L6l8ggozAjJIlR uhZpmwO8DK4jsLJOL/OvBrSxNPGbTpimkM1DW9gh0LCpirbnwIMkxyJDLYCfopeyep TqkcpYoZ+9nC2aangU6hNl/47mdyKEsHUs/KJOfqeSnxFDMQU37oO7nvtV+GaTgxMX vYTkMvTx4SRcOrqQdMGJILulghqEWEJg95SHuOErDXsUK1kAEOjKvQ8O504fF7OJcq M9Elbsrnqo+xX6Ml8+vjLdWvzoINnk8xfVO0xCWBu3UDzWtMjqR+2DUvoYxix2ODr3 +9D4B75J3eohA== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4BWKnG19X8z6tmX; Tue, 18 Aug 2020 20:53:38 +0200 (CEST) From: "Philip K." In-Reply-To: <87o8n8j9g7.fsf@gnus.org> (message from Lars Ingebrigtsen on Tue, 18 Aug 2020 16:49:12 +0200) Date: Tue, 18 Aug 2020 20:53:37 +0200 Message-ID: <87y2mb3hvy.fsf@posteo.net> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Lars Ingebrigtsen writes: > Lars Ingebrigtsen writes: > >> Philip K writes: >> >>> Previous implementation didn't correctly handle the result of >>> dns-query, and didn't implement the necessary record selection >>> algorithm as specified on the wiki (https://wiki.libravatar.org/api/, >>> "Federated servers"). >>> >>> * lisp/image/gravatar.el (gravatar--service-libravatar): Fix >>> libravatar image host resolver algorithm. >> >> Looks good to me, although this didn't apply either, since the code has >> been rewritten to be asynchronous. Could you re-spin this patch, too, >> and I'll get it applied... > > Philip, have you had time to look at this? The patch below should implement the fixes from bug#40354. I found a libravatar user here[0], and could test it by evaluating (gravatar--service-libravatar "who@zerokspot.com" #'message) or (gravatar--service-libravatar "who@gnu.org" #'message) as an example for a domain that doesn't use libravatar. Both work as expected, and don't lag. [0]: https://zerokspot.com/weblog/2020/05/26/avatars-without-gravatar/ -- Philip K. --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0001-Fix-Libravatar-federation-handling.patch >From 9b345b965cce8f79aa31b6a8989ff466c84b6798 Mon Sep 17 00:00:00 2001 From: Philip K Date: Tue, 18 Aug 2020 20:50:07 +0200 Subject: [PATCH] Fix Libravatar federation handling Previous implementation didn't correctly handle the result of dns-query, and didn't implement the necessary record selection algorithm as specified on the wiki (https://wiki.libravatar.org/api/, "Federated servers"). * lisp/image/gravatar.el (gravatar--service-libravatar): Implement correct algorithm --- lisp/image/gravatar.el | 49 ++++++++++++++++++++++++++++++++++++------ 1 file changed, 42 insertions(+), 7 deletions(-) diff --git a/lisp/image/gravatar.el b/lisp/image/gravatar.el index e917033562..cca737656c 100644 --- a/lisp/image/gravatar.el +++ b/lisp/image/gravatar.el @@ -158,18 +158,53 @@ gravatar--service-libravatar (setq func (lambda (result) (cond - (result - (funcall callback (format "%s://%s/avatar" - (cdar records) result))) - ((> (length records) 1) - (pop records) + ((and result ;there is a result + (let* ((data (mapcar (lambda (record) + (dns-get 'data (cdr record))) + (dns-get 'answers result))) + (priorities (mapcar (lambda (r) (dns-get 'priority r)) + data)) + (max-priority (if priorities + (apply #'max priorities) + 0)) + (sum 0) top) + ;; Attempt to find all records with the same maximal + ;; priority, and calculate the sum of their weights. + (dolist (ent data) + (when (= max-priority (dns-get 'priority ent)) + (setq sum (+ sum (dns-get 'weight ent))) + (push ent top))) + ;; In case there is more than one maximal priority + ;; record, choose one at random, while taking the + ;; individual record weights into consideration. + (catch 'done + (dolist (ent top) + (when (and (or (= 0 sum) + (<= 0 (random sum) (dns-get 'weight ent))) + ;; Ensure that port and domain data are + ;; valid. In case non of the results + ;; were valid, `catch' will evaluate to + ;; nil, and the next cond clause will be + ;; tested. + (<= 1 (dns-get 'port ent) 65535) + (string-match-p "\\`[-.0-9A-Za-z]+\\'" + (dns-get 'target ent))) + (funcall callback + (url-normalize-url (format "%s://%s:%s/avatar" + (cdar records) + (dns-get 'target ent) + (dns-get 'port ent)))) + (throw 'done t)) + (setq sum (- sum (dns-get 'weight ent)))))))) + ((setq records (cdr records)) ;in case there are at least two methods (dns-query-asynchronous (concat (caar records) "._tcp." domain) func 'SRV)) - (t + (t ;fallback (funcall callback "https://seccdn.libravatar.org/avatar"))))) (dns-query-asynchronous - (concat (caar records) "._tcp." domain) func 'SRV))))) + (concat (caar records) "._tcp." domain) + func 'SRV t))))) (defun gravatar-hash (mail-address) "Return the Gravatar hash for MAIL-ADDRESS." -- 2.26.2 --=-=-=-- From unknown Sun Jun 22 22:48:19 2025 X-Loop: help-debbugs@gnu.org Subject: bug#40354: [PATCH] Fix Libravatar federation handling Resent-From: Lars Ingebrigtsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 18 Aug 2020 19:21:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 40354 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch To: "Philip K." Cc: 40354@debbugs.gnu.org Received: via spool by 40354-submit@debbugs.gnu.org id=B40354.159777843925107 (code B ref 40354); Tue, 18 Aug 2020 19:21:01 +0000 Received: (at 40354) by debbugs.gnu.org; 18 Aug 2020 19:20:39 +0000 Received: from localhost ([127.0.0.1]:37054 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k879w-0006Wj-3q for submit@debbugs.gnu.org; Tue, 18 Aug 2020 15:20:39 -0400 Received: from quimby.gnus.org ([95.216.78.240]:35838) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k879r-0006WH-Sv for 40354@debbugs.gnu.org; Tue, 18 Aug 2020 15:20:34 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=yrhpsA0O7z+I1bzUgGHuOGekt//xzUV08hMZuDAvuEs=; b=IqmTnzevV2OJGwt82SBbxzcwD2 tihc/xVIQh+ZFwKFbUZulA2PVF9PncKo/9I4ZIAhtx5OsP4ExQJUHcTqsmVY+5Fup1NnB8MeVowV4 xVMzzFFJEDpTydEOJxl5U08qed3/pJ2CZg8M7zLAIv/JAwiKLBkLH7TlVqTDx6Z1ujGA=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1k879b-00029R-D9; Tue, 18 Aug 2020 21:20:25 +0200 From: Lars Ingebrigtsen References: <20200331180324.2943-1-philip@warpmail.net> <87y2mb3hvy.fsf@posteo.net> X-Now-Playing: This Mortal Coil's _Filigree & Shadow_: "The Jeweller" Date: Tue, 18 Aug 2020 21:20:14 +0200 In-Reply-To: <87y2mb3hvy.fsf@posteo.net> (Philip K.'s message of "Tue, 18 Aug 2020 20:53:37 +0200") Message-ID: <87tuwz3gnl.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: "Philip K." writes: > The patch below should implement the fixes from bug#40354. I found a > libravatar user here[0], and could test it by evaluating > > (gravatar--service-libravatar "who@zerokspot.com" #'message) > > o [...] Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) "Philip K." writes: > The patch below should implement the fixes from bug#40354. I found a > libravatar user here[0], and could test it by evaluating > > (gravatar--service-libravatar "who@zerokspot.com" #'message) > > or > > (gravatar--service-libravatar "who@gnu.org" #'message) > > as an example for a domain that doesn't use libravatar. Both work as > expected, and don't lag. Thanks; I've applied the patch to Emacs 28. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 18 15:20:42 2020 Received: (at control) by debbugs.gnu.org; 18 Aug 2020 19:20:42 +0000 Received: from localhost ([127.0.0.1]:37059 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k87A1-0006X7-Re for submit@debbugs.gnu.org; Tue, 18 Aug 2020 15:20:42 -0400 Received: from quimby.gnus.org ([95.216.78.240]:35852) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k879x-0006WU-2b for control@debbugs.gnu.org; Tue, 18 Aug 2020 15:20:37 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Subject:From:To:Message-Id:Date:Sender:Reply-To:Cc: MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=/wNoZO3xvJvKA3lvKSeTOWgUEHIkae8XWBPYObsSB6c=; b=b36VYY3WAg0p3YwnReXt/EatcH SRJ0duCmAi/hvuESwjMNl57a/asJs2LdJCHkWeR6m5qzNF6MhXtGxbGffZuTAh9LLRe6j8JT1E56X Od2bMc32jsp+6hDPqH1lrAZ5rmOpqCRIlyidkgDmcSJ0HyBJSSySPXvsLH4Ky5nBPRME=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1k879p-00029d-Al for control@debbugs.gnu.org; Tue, 18 Aug 2020 21:20:31 +0200 Date: Tue, 18 Aug 2020 21:20:28 +0200 Message-Id: <87sgcj3gn7.fsf@gnus.org> To: control@debbugs.gnu.org From: Lars Ingebrigtsen Subject: control message for bug #40354 X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: tags 40354 fixed close 40354 28.1 quit Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) tags 40354 fixed close 40354 28.1 quit