git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v3 2/4] imap-send: add wrapper to get server credentials if needed

From
Junio C Hamano <gitster@pobox.com>
Date
Aug 23, 2017, 20:13 UTC
Message-ID
<xmqqtw0yxcsk.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<9df045f4-71bd-92a1-20bb-4931e25b22c3@morey-chaisemartin.com>
Nicolas Morey-Chaisemartin <nicolas@morey-chaisemartin.com> writes:
Show 32 quoted lines
> Signed-off-by: Nicolas Morey-Chaisemartin <nicolas@morey-chaisemartin.com>
> ---
>  imap-send.c | 34 ++++++++++++++++++++--------------
>  1 file changed, 20 insertions(+), 14 deletions(-)
>
> diff --git a/imap-send.c b/imap-send.c
> index 09f29ea95..448a4a0b3 100644
> --- a/imap-send.c
> +++ b/imap-send.c
> @@ -926,6 +926,25 @@ static int auth_cram_md5(struct imap_store *ctx, struct imap_cmd *cmd, const cha
>  	return 0;
>  }
>  
> +static void server_fill_credential(struct imap_server_conf *srvc, struct credential *cred)
> +{
> +	if (srvc->user && srvc->pass)
> +		return;
> +
> +	cred->protocol = xstrdup(srvc->use_ssl ? "imaps" : "imap");
> +	cred->host = xstrdup(srvc->host);
> +
> +	cred->username = xstrdup_or_null(srvc->user);
> +	cred->password = xstrdup_or_null(srvc->pass);
> +
> +	credential_fill(cred);
> +
> +	if (!srvc->user)
> +		srvc->user = xstrdup(cred->username);
> +	if (!srvc->pass)
> +		srvc->pass = xstrdup(cred->password);
> +}
> +

This looks straight-forward code movement. The only thing that makes me wonder is if this is "server". The existing naming of the variables screams at me that this is not "server" but is "service".

Show 25 quoted lines
>  static struct imap_store *imap_open_store(struct imap_server_conf *srvc, char *folder)
>  {
>  	struct credential cred = CREDENTIAL_INIT;
> @@ -1078,20 +1097,7 @@ static struct imap_store *imap_open_store(struct imap_server_conf *srvc, char *f
>  		}
>  #endif
>  		imap_info("Logging in...\n");
> -		if (!srvc->user || !srvc->pass) {
> -			cred.protocol = xstrdup(srvc->use_ssl ? "imaps" : "imap");
> -			cred.host = xstrdup(srvc->host);
> -
> -			cred.username = xstrdup_or_null(srvc->user);
> -			cred.password = xstrdup_or_null(srvc->pass);
> -
> -			credential_fill(&cred);
> -
> -			if (!srvc->user)
> -				srvc->user = xstrdup(cred.username);
> -			if (!srvc->pass)
> -				srvc->pass = xstrdup(cred.password);
> -		}
> +		server_fill_credential(srvc, &cred);
>  
>  		if (srvc->auth_method) {
>  			struct imap_cmd_cb cb;
Previous: Nicolas Morey-ChaisemartinNext: Nicolas Morey-Chaisemartin
Message 7 of 13 in “imap-send: Fix and enable curl by default”
  1. 0/4 imap-send: Fix and enable curl by defaultNicolas Morey-Chaisemartin, Aug 22, 2017
  2. 1/4 imap-send: return with error if curl failedNicolas Morey-Chaisemartin, Aug 22, 2017
  3. Junio C HamanoAug 23, 2017
  4. Junio C HamanoAug 23, 2017
  5. Nicolas Morey-ChaisemartinAug 24, 2017
  6. 2/4 imap-send: add wrapper to get server credentials if neededNicolas Morey-Chaisemartin, Aug 22, 2017
  7. Junio C HamanoAug 23, 2017
  8. Nicolas Morey-ChaisemartinAug 24, 2017
  9. Junio C HamanoAug 24, 2017
  10. 3/4 imap_send: setup_curl: retreive credentials if not set in config fileNicolas Morey-Chaisemartin, Aug 22, 2017
  11. 4/4 imap-send: use curl by defaultNicolas Morey-Chaisemartin, Aug 22, 2017
  12. Junio C HamanoAug 23, 2017
  13. Nicolas Morey-ChaisemartinAug 24, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.