GNU bug report logs -
#45340
erc-services.el: Auth-source support for passwords
Previous Next
Reported by: Leon Vack <dev <at> lgcl.de>
Date: Sun, 20 Dec 2020 14:55:03 UTC
Severity: normal
Tags: fixed, patch
Fixed in version 28.1
Done: Lars Ingebrigtsen <larsi <at> gnus.org>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 45340 in the body.
You can then email your comments to 45340 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#45340
; Package
emacs
.
(Sun, 20 Dec 2020 14:55:03 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Leon Vack <dev <at> lgcl.de>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Sun, 20 Dec 2020 14:55:03 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Adds an option to erc-services.el to query auth-source for NickServ
passwords.
This is my first patch to emacs, so please let me know if I missed any
standards. I am about to start the process of assigning the copyright
to the FSF.
[0001-erc-services.el-Auth-source-support-for-passwords.patch (text/x-patch, attachment)]
Added tag(s) patch.
Request was from
Leon Vack <dev <at> lgcl.de>
to
control <at> debbugs.gnu.org
.
(Sun, 20 Dec 2020 18:06:02 GMT)
Full text and
rfc822 format available.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#45340
; Package
emacs
.
(Mon, 21 Dec 2020 04:47:02 GMT)
Full text and
rfc822 format available.
Message #10 received at 45340 <at> debbugs.gnu.org (full text, mbox):
Leon Vack <dev <at> lgcl.de> writes:
> Adds an option to erc-services.el to query auth-source for NickServ
> passwords.
>
> This is my first patch to emacs, so please let me know if I missed any
> standards. I am about to start the process of assigning the copyright
> to the FSF.
Looks good to me; perhaps Amin (added to the Ccs) will have some
comments.
Have you already started the assignment process, or do you need the
assignment form to get started?
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#45340
; Package
emacs
.
(Mon, 21 Dec 2020 05:45:01 GMT)
Full text and
rfc822 format available.
Message #13 received at 45340 <at> debbugs.gnu.org (full text, mbox):
> Have you already started the assignment process, or do you need the
> assignment form to get started?
Yes, I have the form and started the assignment process with it. Thanks
for asking.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#45340
; Package
emacs
.
(Tue, 29 Dec 2020 00:13:02 GMT)
Full text and
rfc822 format available.
Message #16 received at 45340 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Hello Leon, Lars,
Thanks for your patch, Leon. I've left some stylistic comments below,
until I get a chance to have a closer look at your patch and take it for
a test run in the next week or so. :-)
* * *
Leon Vack writes:
>> Have you already started the assignment process, or do you need the
>> assignment form to get started?
>
> Yes, I have the form and started the assignment process with it. Thanks
> for asking.
Great. Please let me know when you hear from the copyright clerk about
the completion of the process.
* * *
Leon Vack writes:
> Adds an option to erc-services.el to query auth-source for NickServ
> passwords.
>
> This is my first patch to emacs, so please let me know if I missed any
> standards. I am about to start the process of assigning the copyright
> to the FSF.
Thanks!
To begin with, please use spaces for indenting on the lines you change
or the new lines you add throughout your patch.
>>From 367593cc4cbfdfbdac778fd15ceb79fd61d7f64c Mon Sep 17 00:00:00 2001
> From: Leon Vack <dev <at> lgcl.de>
> Date: Sun, 20 Dec 2020 10:53:33 +0100
> Subject: [PATCH] erc-services.el: Auth-source support for passwords
Please rewrite the subject to conform to the conventions laid out in
emacs.git's CONTRIBUTE file. Perhaps something like this:
Support using auth-source for NickServ passwords in ERC
> * lisp/etc/erc-services.el (erc-nickserv-passwords): Document that
> the passwords are only used when erc-prompt-for-nickserv-password is
> nil.
> * lisp/etc/erc-services.el
> (erc-use-auth-source-for-nickserv-password): New customizable
> variable to enable checking auth-source for NickServ passwords.
> * lisp/etc/erc-services.el (etc-nickserv-get-password): New function
> to handle the lookup of the NickServ password from both auth-source
> and the erc-nickserv-passwords variable.
> * lisp/etc/erc-services.el (erc-nickserv-call-identify-function):
> Use new erc-nickserv-get-password function to lookup NickServ
> passwords.
> * lisp/etc/erc-services.el (erc-nickserv-identify-autodetect)
> (erc-nickserv-identify-on-connect)
> (erc-nickserv-identify-on-nick-change): Call
> erc-nickserv-call-identify-function when
> erc-use-auth-source-for-nickserv-password is set.
You don't have to repeat the "* lisp/etc/erc-services.el" at the
beginning of each of those subsequent lines. You can simply start those
lines with parenthesized name of the modified function/variable,
followed by a colon, followed by the change description.
Also, for the last entry, you can merge the multiple parenthesized names
into one, like so:
(erc-nickserv-identify-autodetect, erc-nickserv-identify-on-connect,
erc-nickserv-identify-on-nick-change): Call ......
Lastly, please add a simple line like "* etc/NEWS: Document change."
about the etc/NEWS update also.
> ---
> etc/NEWS | 4 ++++
> lisp/erc/erc-services.el | 50 ++++++++++++++++++++++++++++++++--------
> 2 files changed, 45 insertions(+), 9 deletions(-)
>
> diff --git a/etc/NEWS b/etc/NEWS
> index 4a8e70e6a6..c9e0fa7459 100644
> --- a/etc/NEWS
> +++ b/etc/NEWS
> @@ -1283,6 +1283,10 @@ https://www.w3.org/TR/xml/#charsets). Now it rejects such strings.
>
> ** erc
>
> +*** erc-services.el now supports NickServ passwords from auth-source.
> +The 'erc-use-auth-source-for-nickserv-password' enables querying
> +auth-source for NickServ passwords.
> +
> ---
> *** The '/ignore' command will now ask for a timeout to stop ignoring the user.
> Allowed inputs are seconds or ISO8601-like periods like "1h" or "4h30m".
Please consider adding example(s) of use to the NEWS entry.
> diff --git a/lisp/erc/erc-services.el b/lisp/erc/erc-services.el
> index c0011f9808..0710813e9d 100644
> --- a/lisp/erc/erc-services.el
> +++ b/lisp/erc/erc-services.el
> @@ -168,9 +168,23 @@ erc-prompt-for-nickserv-password
> :group 'erc-services
> :type 'boolean)
>
> +(defcustom erc-use-auth-source-for-nickserv-password nil
> + "Query auth-source for a password when identifiying to NickServ.
> +
> +
> +This option has an no effect `erc-prompt-for-nickserv-password'
^
add missing 'if'
> +is not nil and passwords from `erc-nickserv-passwords' take
^
add missing comma ','
> +precedence."
> + :version "28.1"
> + :group 'erc-services
> + :type 'boolean)
> +
> (defcustom erc-nickserv-passwords nil
> "Passwords used when identifying to NickServ automatically.
>
> +`erc-prompt-for-nickserv-password' must be nil for these
> +passwords to be used.
> +
> Example of use:
> (setq erc-nickserv-passwords
> \\='((freenode ((\"nick-one\" . \"password\")
> @@ -199,7 +213,7 @@ erc-nickserv-passwords
> (cons :tag "Identity"
> (string :tag "Nick")
> (string :tag "Password"
> - :secret ?*))))))
> + :secret ?*))))))
>
> ;; Variables:
>
> @@ -375,7 +389,8 @@ erc-nickserv-identify-autodetect
> If `erc-prompt-for-nickserv-password' is non-nil, prompt the user for the
> password for this nickname, otherwise try to send it automatically."
> (unless (and (null erc-nickserv-passwords)
> - (null erc-prompt-for-nickserv-password))
> + (null erc-prompt-for-nickserv-password)
> + (null erc-use-auth-source-for-nickserv-password))
> (let* ((network (erc-network))
> (sender (erc-nickserv-alist-sender network))
> (identify-regex (erc-nickserv-alist-regexp network))
> @@ -394,7 +409,8 @@ erc-nickserv-identify-autodetect
> (defun erc-nickserv-identify-on-connect (_server nick)
> "Identify to Nickserv after the connection to the server is established."
> (unless (or (and (null erc-nickserv-passwords)
> - (null erc-prompt-for-nickserv-password))
> + (null erc-prompt-for-nickserv-password)
> + (null erc-use-auth-source-for-nickserv-password))
> (and (eq erc-nickserv-identify-mode 'both)
> (erc-nickserv-alist-regexp (erc-network))))
> (erc-nickserv-call-identify-function nick)))
> @@ -402,22 +418,38 @@ erc-nickserv-identify-on-connect
> (defun erc-nickserv-identify-on-nick-change (nick _old-nick)
> "Identify to Nickserv whenever your nick changes."
> (unless (or (and (null erc-nickserv-passwords)
> - (null erc-prompt-for-nickserv-password))
> + (null erc-prompt-for-nickserv-password)
> + (null erc-use-auth-source-for-nickserv-password))
> (and (eq erc-nickserv-identify-mode 'both)
> (erc-nickserv-alist-regexp (erc-network))))
> (erc-nickserv-call-identify-function nick)))
>
> +(defun erc-nickserv-get-password (nickname)
> + "Return the password for NICKNAME from configured sources.
> +
> +It uses `erc-nickserv-passwords' and additionally auth-source
> +when `erc-use-auth-source-for-nickserv-password' is not nil."
> + (or (when erc-nickserv-passwords
> + (cdr (assoc nickname
Strange formatting/indentation. I would prefer it if
"(when erc-nickserv-passwords" started on its own line, and
"(cdr (assoc nickname" on the line below it, and the region
indented using spaces and properly, in a way that the lines
fit the 70-character line length convention.
> + (nth 1 (assoc (erc-network)
> + erc-nickserv-passwords)))))
> + (when erc-use-auth-source-for-nickserv-password
> + (let* ((secret (nth 0 (auth-source-search
> + :max 1 :require '(:secret)
> + :host (erc-with-server-buffer erc-session-server)
> + :port (format ; ensure we have a string
> + "%s" (erc-with-server-buffer erc-session-port))
> + :user nickname))))
> + (when secret (let ((passwd (plist-get secret :secret)))
> + (if (functionp passwd) (funcall passwd) passwd)))))))
> +
> (defun erc-nickserv-call-identify-function (nickname)
> "Call `erc-nickserv-identify'.
> Either call it interactively or run it with NICKNAME's password,
> depending on the value of `erc-prompt-for-nickserv-password'."
> (if erc-prompt-for-nickserv-password
> (call-interactively 'erc-nickserv-identify)
> - (when erc-nickserv-passwords
> - (erc-nickserv-identify
> - (cdr (assoc nickname
> - (nth 1 (assoc (erc-network)
> - erc-nickserv-passwords))))))))
> + (when password (erc-nickserv-identify (erc-nickserv-get-password nickname)))))
This line is too long; please reformat.
>
> (defvar erc-auto-discard-away)
* * *
Thanks!
--
https://bndl.org
Free Software activist | GNU maintainer & webmaster
GPG: BE62 7373 8E61 6D6D 1B3A 08E8 A21A 0202 4881 6103
[signature.asc (application/pgp-signature, inline)]
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#45340
; Package
emacs
.
(Tue, 29 Dec 2020 08:25:01 GMT)
Full text and
rfc822 format available.
Message #19 received at 45340 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Hello Amin,
>
> Thanks for your patch, Leon. I've left some stylistic comments below,
> until I get a chance to have a closer look at your patch and take it for
> a test run in the next week or so. :-)
>
Thanks for the pointers. I attached a new patch with all of them addressed.
[0001-Support-using-auth-source-for-NickServ-passwords-in-.patch (text/x-patch, attachment)]
[Message part 3 (text/plain, inline)]
>>> Have you already started the assignment process, or do you need the
>>> assignment form to get started?
>>
>> Yes, I have the form and started the assignment process with it. Thanks
>> for asking.
>
> Great. Please let me know when you hear from the copyright clerk about
> the completion of the process.
>
I have already sent the singed paperwork and will let you know once I
have the copy singed by the FSF.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#45340
; Package
emacs
.
(Sat, 09 Jan 2021 07:23:02 GMT)
Full text and
rfc822 format available.
Message #22 received at 45340 <at> debbugs.gnu.org (full text, mbox):
>>>> Have you already started the assignment process, or do you need the
>>>> assignment form to get started?
>>>
>>> Yes, I have the form and started the assignment process with it. Thanks
>>> for asking.
>>
>> Great. Please let me know when you hear from the copyright clerk about
>> the completion of the process.
>>
>
> I have already sent the singed paperwork and will let you know once I
> have the copy singed by the FSF.
I have now received the paperwork countersigned by the FSF.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#45340
; Package
emacs
.
(Sun, 10 Jan 2021 11:51:02 GMT)
Full text and
rfc822 format available.
Message #25 received at 45340 <at> debbugs.gnu.org (full text, mbox):
Leon Vack <dev <at> lgcl.de> writes:
> Thanks for the pointers. I attached a new patch with all of them addressed.
This leads to the following warning:
In erc-nickserv-call-identify-function:
erc/erc-services.el:454:11: Warning: reference to free variable `password'
And the code in that function doesn't look correct to me...
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#45340
; Package
emacs
.
(Mon, 11 Jan 2021 14:39:01 GMT)
Full text and
rfc822 format available.
Message #28 received at 45340 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Lars Ingebrigtsen <larsi <at> gnus.org> writes:
> Leon Vack <dev <at> lgcl.de> writes:
>
>> Thanks for the pointers. I attached a new patch with all of them addressed.
>
> This leads to the following warning:
>
> In erc-nickserv-call-identify-function:
> erc/erc-services.el:454:11: Warning: reference to free variable `password'
>
> And the code in that function doesn't look correct to me...
Yes, that is a mistake on my part, it must have slipped through from an
earlier implementation I wrote and used. Sorry about that.
I have fixed that in the attached patch and done some testing (without
changing anything after it this time).
[0001-Support-using-auth-source-for-NickServ-passwords-in-.patch (text/x-patch, inline)]
From 02d6ddfe3b07a793855dd87ea0d9ba4daee8af3f Mon Sep 17 00:00:00 2001
From: Leon Vack <dev <at> lgcl.de>
Date: Sun, 20 Dec 2020 10:53:33 +0100
Subject: [PATCH] Support using auth-source for NickServ passwords in ERC
* lisp/etc/erc-services.el (erc-nickserv-passwords): Document that
the passwords are only used when erc-prompt-for-nickserv-password
is nil.
* (erc-use-auth-source-for-nickserv-password): New customizable
variable to enable checking auth-source for NickServ passwords.
* (etc-nickserv-get-password): New function to handle the lookup
of the NickServ password from both auth-source and the
erc-nickserv-passwords variable.
* (erc-nickserv-call-identify-function): Use new
erc-nickserv-get-password function to lookup NickServ passwords.
* (erc-nickserv-identify-autodetect, erc-nickserv-identify-on-connect,
erc-nickserv-identify-on-nick-change): Call
erc-nickserv-call-identify-function when
erc-use-auth-source-for-nickserv-password is set.
* etc/NEWS: Document change.
---
etc/NEWS | 9 ++++++
lisp/erc/erc-services.el | 59 ++++++++++++++++++++++++++++++++--------
2 files changed, 56 insertions(+), 12 deletions(-)
diff --git a/etc/NEWS b/etc/NEWS
index 4a8e70e6a6..d722592fd3 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1283,6 +1283,15 @@ https://www.w3.org/TR/xml/#charsets). Now it rejects such strings.
** erc
+*** erc-services.el now supports NickServ passwords from auth-source.
+The 'erc-use-auth-source-for-nickserv-password' enables querying
+auth-source for NickServ passwords. To enable this, add the following
+to your init file:
+
+ (setq erc-prompt-for-nickserv-password nil
+ erc-use-auth-source-for-nickserv-password t)
+
+
---
*** The '/ignore' command will now ask for a timeout to stop ignoring the user.
Allowed inputs are seconds or ISO8601-like periods like "1h" or "4h30m".
diff --git a/lisp/erc/erc-services.el b/lisp/erc/erc-services.el
index c0011f9808..60c7852edf 100644
--- a/lisp/erc/erc-services.el
+++ b/lisp/erc/erc-services.el
@@ -168,9 +168,23 @@ erc-prompt-for-nickserv-password
:group 'erc-services
:type 'boolean)
+(defcustom erc-use-auth-source-for-nickserv-password nil
+ "Query auth-source for a password when identifiying to NickServ.
+
+
+This option has an no effect if `erc-prompt-for-nickserv-password'
+is not nil, and passwords from `erc-nickserv-passwords' take
+precedence."
+ :version "28.1"
+ :group 'erc-services
+ :type 'boolean)
+
(defcustom erc-nickserv-passwords nil
"Passwords used when identifying to NickServ automatically.
+`erc-prompt-for-nickserv-password' must be nil for these
+passwords to be used.
+
Example of use:
(setq erc-nickserv-passwords
\\='((freenode ((\"nick-one\" . \"password\")
@@ -375,7 +389,8 @@ erc-nickserv-identify-autodetect
If `erc-prompt-for-nickserv-password' is non-nil, prompt the user for the
password for this nickname, otherwise try to send it automatically."
(unless (and (null erc-nickserv-passwords)
- (null erc-prompt-for-nickserv-password))
+ (null erc-prompt-for-nickserv-password)
+ (null erc-use-auth-source-for-nickserv-password))
(let* ((network (erc-network))
(sender (erc-nickserv-alist-sender network))
(identify-regex (erc-nickserv-alist-regexp network))
@@ -394,30 +409,49 @@ erc-nickserv-identify-autodetect
(defun erc-nickserv-identify-on-connect (_server nick)
"Identify to Nickserv after the connection to the server is established."
(unless (or (and (null erc-nickserv-passwords)
- (null erc-prompt-for-nickserv-password))
- (and (eq erc-nickserv-identify-mode 'both)
- (erc-nickserv-alist-regexp (erc-network))))
+ (null erc-prompt-for-nickserv-password)
+ (null erc-use-auth-source-for-nickserv-password))
+ (and (eq erc-nickserv-identify-mode 'both)
+ (erc-nickserv-alist-regexp (erc-network))))
(erc-nickserv-call-identify-function nick)))
(defun erc-nickserv-identify-on-nick-change (nick _old-nick)
"Identify to Nickserv whenever your nick changes."
(unless (or (and (null erc-nickserv-passwords)
- (null erc-prompt-for-nickserv-password))
- (and (eq erc-nickserv-identify-mode 'both)
- (erc-nickserv-alist-regexp (erc-network))))
+ (null erc-prompt-for-nickserv-password)
+ (null erc-use-auth-source-for-nickserv-password))
+ (and (eq erc-nickserv-identify-mode 'both)
+ (erc-nickserv-alist-regexp (erc-network))))
(erc-nickserv-call-identify-function nick)))
+(defun erc-nickserv-get-password (nickname)
+ "Return the password for NICKNAME from configured sources.
+
+It uses `erc-nickserv-passwords' and additionally auth-source
+when `erc-use-auth-source-for-nickserv-password' is not nil."
+ (or
+ (when erc-nickserv-passwords
+ (cdr (assoc nickname
+ (nth 1 (assoc (erc-network)
+ erc-nickserv-passwords)))))
+ (when erc-use-auth-source-for-nickserv-password
+ (let* ((secret (nth 0 (auth-source-search
+ :max 1 :require '(:secret)
+ :host (erc-with-server-buffer erc-session-server)
+ :port (format ; ensure we have a string
+ "%s" (erc-with-server-buffer erc-session-port))
+ :user nickname))))
+ (when secret
+ (let ((passwd (plist-get secret :secret)))
+ (if (functionp passwd) (funcall passwd) passwd)))))))
+
(defun erc-nickserv-call-identify-function (nickname)
"Call `erc-nickserv-identify'.
Either call it interactively or run it with NICKNAME's password,
depending on the value of `erc-prompt-for-nickserv-password'."
(if erc-prompt-for-nickserv-password
(call-interactively 'erc-nickserv-identify)
- (when erc-nickserv-passwords
- (erc-nickserv-identify
- (cdr (assoc nickname
- (nth 1 (assoc (erc-network)
- erc-nickserv-passwords))))))))
+ (erc-nickserv-identify (erc-nickserv-get-password nickname))))
(defvar erc-auto-discard-away)
@@ -451,6 +485,7 @@ erc-nickserv-identify
(provide 'erc-services)
+
;;; erc-services.el ends here
;;
;; Local Variables:
--
2.28.0
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#45340
; Package
emacs
.
(Mon, 11 Jan 2021 14:52:02 GMT)
Full text and
rfc822 format available.
Message #31 received at 45340 <at> debbugs.gnu.org (full text, mbox):
Leon Vack <dev <at> lgcl.de> writes:
> Yes, that is a mistake on my part, it must have slipped through from an
> earlier implementation I wrote and used. Sorry about that.
>
> I have fixed that in the attached patch and done some testing (without
> changing anything after it this time).
Thanks; looks good to me, so I've pushed it to Emacs 28. Should there
be something in the erc manual, though?
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#45340
; Package
emacs
.
(Mon, 11 Jan 2021 16:05:02 GMT)
Full text and
rfc822 format available.
Message #34 received at 45340 <at> debbugs.gnu.org (full text, mbox):
Lars Ingebrigtsen <larsi <at> gnus.org> writes:
> Thanks; looks good to me, so I've pushed it to Emacs 28. Should there
> be something in the erc manual, though?
I am happy to have my first contribution pushed!
About documentation, I would have added to the manual, if there was
anything substantial about erc-services or ERC's NickServ
capabilities. It is only mentioned in the list of modules with a one
sentence explanation of what it does and no options are documented.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#45340
; Package
emacs
.
(Mon, 11 Jan 2021 16:07:01 GMT)
Full text and
rfc822 format available.
Message #37 received at 45340 <at> debbugs.gnu.org (full text, mbox):
Leon Vack <dev <at> lgcl.de> writes:
> About documentation, I would have added to the manual, if there was
> anything substantial about erc-services or ERC's NickServ
> capabilities. It is only mentioned in the list of modules with a one
> sentence explanation of what it does and no options are documented.
Ah, right, so I guess there's nothing more here to be done. Thanks for
checking.
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
Added tag(s) fixed.
Request was from
Lars Ingebrigtsen <larsi <at> gnus.org>
to
control <at> debbugs.gnu.org
.
(Mon, 11 Jan 2021 16:07:02 GMT)
Full text and
rfc822 format available.
bug marked as fixed in version 28.1, send any further explanations to
45340 <at> debbugs.gnu.org and Leon Vack <dev <at> lgcl.de>
Request was from
Lars Ingebrigtsen <larsi <at> gnus.org>
to
control <at> debbugs.gnu.org
.
(Mon, 11 Jan 2021 16:07:02 GMT)
Full text and
rfc822 format available.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#45340
; Package
emacs
.
(Wed, 13 Jan 2021 08:28:01 GMT)
Full text and
rfc822 format available.
Message #44 received at 45340 <at> debbugs.gnu.org (full text, mbox):
https://git.savannah.gnu.org/cgit/emacs.git/diff/lisp/window.el?id=42e72f4adee8809ed754a14e11e058f40b337f78
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#45340
; Package
emacs
.
(Fri, 15 Jan 2021 09:47:02 GMT)
Full text and
rfc822 format available.
Message #47 received at submit <at> debbugs.gnu.org (full text, mbox):
Hi,
Sorry to be late to the party, but what is exactly this bug (and the patch)
about? I'm asking this because I've been using auth source for NickServ
passwords for a while now, without any patch. And I just want to make sure
that this is going to continue to work (of course, I don't mind possibly
changing some configuration variables if required). I've skimmed through the
bug report and the patch, and while I see no particular problem there, I
wonder if some existing things have not been overlooked.
I have `erc-prompt-for-password' set to nil (not `erc-prompt-for-nickserv-
password'), and indeed I get prompted for a NickServ password. At this point,
I just hit ENTER without entering anything, and my password from auth source
is automatically picked up. So there seems to be an already existing mechanism
for getting the password used for NickServ from auth source.
Or is it a confusion on my part, and the introduced functionality is in fact
different?
Regards.
--
Olivier Certner
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#45340
; Package
emacs
.
(Fri, 15 Jan 2021 09:47:02 GMT)
Full text and
rfc822 format available.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#45340
; Package
emacs
.
(Fri, 15 Jan 2021 11:11:01 GMT)
Full text and
rfc822 format available.
Message #53 received at submit <at> debbugs.gnu.org (full text, mbox):
Olivier Certner <ocert.dev <at> free.fr> writes:
> Hi,
>
Hello,
> Sorry to be late to the party, but what is exactly this bug (and the patch)
> about? I'm asking this because I've been using auth source for NickServ
> passwords for a while now, without any patch. And I just want to make sure
> that this is going to continue to work (of course, I don't mind possibly
> changing some configuration variables if required). I've skimmed through the
> bug report and the patch, and while I see no particular problem there, I
> wonder if some existing things have not been overlooked.
>
> I have `erc-prompt-for-password' set to nil (not `erc-prompt-for-nickserv-
> password'), and indeed I get prompted for a NickServ password. At this point,
> I just hit ENTER without entering anything, and my password from auth source
> is automatically picked up. So there seems to be an already existing mechanism
> for getting the password used for NickServ from auth source.
I was not aware of this, but I have done some debugging and the NickServ
authentication you use mostly likely does not go through erc-services,
but the core erc functionality to connect, which sends a PASS command
with a password from auth source. At least freenode accepts this as a way
to do NickServ authentication and the patch does not effect this
functionality at all. To check if that is indeed the case, maybe try
connecting without having the erc-services module loaded.
>
> Or is it a confusion on my part, and the introduced functionality is in fact
> different?
>
This patch introduces a different functionality as described above, as
erc-services, which only handles authentication with actual /nickserv
identify commands (not handled by the core connect functionality), did
not query auth source before this patch.
> Regards.
Regards,
Leon Vack
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#45340
; Package
emacs
.
(Fri, 15 Jan 2021 11:11:01 GMT)
Full text and
rfc822 format available.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#45340
; Package
emacs
.
(Fri, 15 Jan 2021 12:42:01 GMT)
Full text and
rfc822 format available.
Message #59 received at submit <at> debbugs.gnu.org (full text, mbox):
Hi Leon,
> I was not aware of this, but I have done some debugging and the NickServ
> authentication you use mostly likely does not go through erc-services,
> but the core erc functionality to connect, which sends a PASS command
> with a password from auth source. At least freenode accepts this as a way
> to do NickServ authentication and the patch does not effect this
> functionality at all. To check if that is indeed the case, maybe try
> connecting without having the erc-services module loaded.
Yes, seems to me that you are right, after activating IRC protocol debug
(`erc-toggle-debug-irc-protocol'), reconnecting to Freenode and looking at the
logs.
> This patch introduces a different functionality as described above, as
> erc-services, which only handles authentication with actual /nickserv
> identify commands (not handled by the core connect functionality), did
> not query auth source before this patch.
Fine, I thought this may have been already implemented somehow because of
Freenode's special behavior.
Thanks for looking at this, and for this patch!
After reviewing the code more in details, I think it is great that `erc-
nickserv-get-password' first tries to find a password in `erc-nickserv-
passwords' before proceeding with auth source. `erc-nickserv-passwords' is the
easiest to customize, and I suspect it is mostly used for interactive override
or common presets in the init file.
I also have some further suggestion, beyond this enhancement. I think it would
be even more useful that `erc-prompt-for-nickserv-password' is not required to
be nil for auth source (or `erc-nickserv-passwords', for that purpose) to be
used, but rather that, if search in `erc-nickserv-passwords' and auth source
(if enabled) fails, then prompting should be used as a last resort (if
enabled). I think this would cover all the use cases I can think of (with
proper settings of `erc-prompt-for-nickserv-password' and `erc-use-auth-
source-for-nickserv-password'). If more customizations are required, or just
for the sake of 'simplicity' (YMMV), than maybe replacing these booleans with
a single list indicating the means to get the password and their order could
be nice.
What do people think?
Regards.
--
Olivier Certner
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#45340
; Package
emacs
.
(Fri, 15 Jan 2021 12:42:02 GMT)
Full text and
rfc822 format available.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#45340
; Package
emacs
.
(Fri, 15 Jan 2021 21:49:02 GMT)
Full text and
rfc822 format available.
Message #65 received at 45340 <at> debbugs.gnu.org (full text, mbox):
Richard Copley <rcopley <at> gmail.com> writes:
> https://git.savannah.gnu.org/cgit/emacs.git/diff/lisp/window.el?id=42e72f4adee8809ed754a14e11e058f40b337f78
Thanks for catching that; fixed.
; Remove recent spurious addition in window.el
f45be48ddb 2021-01-15 21:46:54 +0000
https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=f45be48ddbde00610e1e08fca6590dcf24a4e1b5
--
Basil
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#45340
; Package
emacs
.
(Wed, 20 Jan 2021 10:43:01 GMT)
Full text and
rfc822 format available.
Message #68 received at submit <at> debbugs.gnu.org (full text, mbox):
Hello Olivier,
sorry for the long time it took me to reply.
Olivier Certner <ocert.dev <at> free.fr> writes:
> I also have some further suggestion, beyond this enhancement. I think it would
> be even more useful that `erc-prompt-for-nickserv-password' is not required to
> be nil for auth source (or `erc-nickserv-passwords', for that purpose) to be
> used, but rather that, if search in `erc-nickserv-passwords' and auth source
> (if enabled) fails, then prompting should be used as a last resort (if
> enabled). I think this would cover all the use cases I can think of (with
> proper settings of `erc-prompt-for-nickserv-password' and `erc-use-auth-
> source-for-nickserv-password'). If more customizations are required, or just
> for the sake of 'simplicity' (YMMV), than maybe replacing these booleans with
> a single list indicating the means to get the password and their order could
> be nice.
>
> What do people think?
>
I personally agree with you on this. Having to change
`erc-prompt-for-nickserv-password' for `erc-nickserv-passwords' to have
an effect caught me off guard in the beginning as well.
The list of NickServ password sources seems like the more flexible
solution, but would be a bit more complex to implement, considering how
the current system works. Changing the precedence to
`erc-nickserv-passwords', auth source and then prompt (if enabled), on
the other hand, should be a rather simple patch.
I think we should discuss this not on this bug, but on the emacs-erc
mailing list before we change that.
Regards,
Leon Vack
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#45340
; Package
emacs
.
(Wed, 20 Jan 2021 10:43:01 GMT)
Full text and
rfc822 format available.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Wed, 17 Feb 2021 12:24:09 GMT)
Full text and
rfc822 format available.
This bug report was last modified 4 years and 208 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.