From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Ted Zlatanov Newsgroups: gmane.emacs.devel Subject: Re: Committing new smtpmail.el later tonight Date: Wed, 22 Jun 2011 15:27:13 -0500 Organization: =?utf-8?B?0KLQtdC+0LTQvtGAINCX0LvQsNGC0LDQvdC+0LI=?= @ Cienfuegos Message-ID: <878vstfw7y.fsf@lifelogs.com> References: <878vt52ykv.fsf@lifelogs.com> <878vt25tbf.fsf@lifelogs.com> <87zklbnet1.fsf@lifelogs.com> <87hb7ig7p5.fsf@gmail.com> <877h8eg6v1.fsf@gmail.com> <8762nxkgpf.fsf@lifelogs.com> Reply-To: emacs-devel@gnu.org NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: dough.gmane.org 1308774489 16377 80.91.229.12 (22 Jun 2011 20:28:09 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Wed, 22 Jun 2011 20:28:09 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Jun 22 22:28:03 2011 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1QZU1q-0000Dd-IZ for ged-emacs-devel@m.gmane.org; Wed, 22 Jun 2011 22:28:02 +0200 Original-Received: from localhost ([::1]:47166 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QZU1p-0002Pg-B4 for ged-emacs-devel@m.gmane.org; Wed, 22 Jun 2011 16:28:01 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]:54705) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QZU1S-0002O4-0a for emacs-devel@gnu.org; Wed, 22 Jun 2011 16:27:41 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QZU1L-0000QG-D2 for emacs-devel@gnu.org; Wed, 22 Jun 2011 16:27:37 -0400 Original-Received: from lo.gmane.org ([80.91.229.12]:45927) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QZU1K-0000Pw-SW for emacs-devel@gnu.org; Wed, 22 Jun 2011 16:27:31 -0400 Original-Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1QZU1J-0008LS-4F for emacs-devel@gnu.org; Wed, 22 Jun 2011 22:27:29 +0200 Original-Received: from 38.98.147.133 ([38.98.147.133]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 22 Jun 2011 22:27:29 +0200 Original-Received: from tzz by 38.98.147.133 with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 22 Jun 2011 22:27:29 +0200 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: emacs-devel@gnu.org Original-Lines: 71 Original-X-Complaints-To: usenet@dough.gmane.org X-Gmane-NNTP-Posting-Host: 38.98.147.133 X-Face: bd.DQ~'29fIs`T_%O%C\g%6jW)yi[zuz6; d4V0`@y-~$#3P_Ng{@m+e4o<4P'#(_GJQ%TT= D}[Ep*b!\e,fBZ'j_+#"Ps?s2!4H2-Y"sx" Mail-Copies-To: never User-Agent: Gnus/5.110018 (No Gnus v0.18) Emacs/24.0.50 (gnu/linux) Cancel-Lock: sha1:lc+Z6ZBwKHJbyHiq2icxc28GbjI= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 80.91.229.12 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:140879 Archived-At: On Wed, 22 Jun 2011 21:24:00 +0200 Lars Magne Ingebrigtsen wrote: LMI> Ted Zlatanov writes: >> At least for netrc files, :create should DTRT as you describe. It's >> used that way in nnimap.el: LMI> If I had LMI> machine foo port bar login zot LMI> and used LMI> (auth-source-search :max 1 LMI> :host "foo" LMI> :port "bar" LMI> :require '(:user :secret)) LMI> it wouldn't return anything, LMI> and if I added LMI> :create t LMI> then it would prompt for both the user name and the secret. Didn't we do this for nnimap.el? It saves the netrc line only if the login is successful. You can do a preliminary search to see if you find the :host and :port without :max; if so you can fill the :user into the `auth-source-creation-defaults' dynamic override. So, something like the following untested code, partly from `nnimap-credentials': #+begin_src text (let* ((users (delq nil (loop for result in (auth-source-search :host "foo":port "bar") collect (plist-get result :user)))) (auth-source-creation-prompts '((user . "SMTP user at %h: ") (secret . "SMTP password for %u@%h: "))) (auth-source-creation-defaults '((user . (nth 0 users)))) (found (nth 0 (auth-source-search :max 1 :host "foo" :port "bar" :user users :require '(:user :secret) :create t)))) (if found (list (plist-get found :user) (let ((secret (plist-get found :secret))) (if (functionp secret) (funcall secret) secret)) (plist-get found :save-function)) nil)) #+end_src This will create a new line iff you call the :save-function. LMI> I think my latest changes to auth-source fixes this, but I'd appreciate LMI> it if you'd go over the changes and check whether I was misunderstanding LMI> something in the code. :-) I think they are reasonable. But maybe the above will work? It seems to me it would work for `nnimap-credentials' as well, which perhaps argues that it should be in the auth-source API. Ted