git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* git calls SSH_ASKPASS even if DISPLAY is not set
@ 2010-12-11  3:24 Xin Wang
  2010-12-12 12:32 ` [RFC/PATCH] " Alexander Sulfrian
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Xin Wang @ 2010-12-11  3:24 UTC (permalink / raw)
  To: git

Hi all,

I'm using git 1.7.3.2 in Fedora 14. In Fedora, SSH_ASKPASS will set to
be /usr/libexec/openssh/gnome-ssh-askpass in
/etc/profile.d/gnome-ssh-askpass.sh, so this environment is set by
login shell, and it will still be set even when X11 is not inuse.

According to ssh's manpage: "If ssh does not have a terminal
associated with it but DISPLAY and SSH_ASKPASS are set, it will
execute the program specified by SSH_ASKPASS and open an X11 window to
read the passphrase." But git will call SSH_ASKPASS even if there is a
terminal associated with it and DISPLAY is not set, then following
warning is displayed and git failed to go through.

$ git fetch

(gnome-ssh-askpass:1487): Gtk-WARNING **: cannot open display:

I think it‘s better if git could implement behavior conforming to ssh.


Thanks,
Xin Wang

^ permalink raw reply	[flat|nested] 9+ messages in thread
* Re: [PATCH] git_getpass: fix ssh-askpass behaviour
@ 2010-12-13  4:09 Xin Wang
  0 siblings, 0 replies; 9+ messages in thread
From: Xin Wang @ 2010-12-13  4:09 UTC (permalink / raw)
  To: git

Junio C Hamano <gitster <at> pobox.com> writes:

>
> Alexander Sulfrian <alexander <at> sulfrian.net> writes:
>
> > call ssh-askpass only if the display environment variable is also set
> > ---
>
> I do not use it at all so I don't know for sure, but doesn't this break
> OSX?
>
>   20f3490 (web--browse: fix Mac OS X GUI detection for 10.6, 2009-09-14)
>
> is an example that you can be fully graphical without having DISPLAY set
> in some environment.  MinGW folks may want to chime in as well.
>

How about test whether git is associated with a terminal or not?

> >  connect.c |    7 +++++--
> >  1 files changed, 5 insertions(+), 2 deletions(-)
> >
> > diff --git a/connect.c b/connect.c
> > index 57dc20c..2810e3b 100644
> > --- a/connect.c
> > +++ b/connect.c
> > @@ -621,7 +621,7 @@ int finish_connect(struct child_process *conn)
> >
> >  char *git_getpass(const char *prompt)
> >  {
> > -	const char *askpass;
> > +	const char *askpass, *display;
> >  	struct child_process pass;
> >  	const char *args[3];
> >  	static struct strbuf buffer = STRBUF_INIT;
> > @@ -631,7 +631,10 @@ char *git_getpass(const char *prompt)
> >  		askpass = askpass_program;
> >  	if (!askpass)
> >  		askpass = getenv("SSH_ASKPASS");
> > -	if (!askpass || !(*askpass)) {
> > +
> > +	/* only call askpass if display is set */
> > +	display = getenv("DISPLAY");
> > +	if (!display || !(*display) || !askpass || !(*askpass))
> >  		char *result = getpass(prompt);
> >  		if (!result)
> >  			die_errno("Could not read password");
>
>

Xin Wang

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2012-05-07 21:42 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-12-11  3:24 git calls SSH_ASKPASS even if DISPLAY is not set Xin Wang
2010-12-12 12:32 ` [RFC/PATCH] " Alexander Sulfrian
2010-12-12 12:32 ` [PATCH] git_getpass: fix ssh-askpass behaviour Alexander Sulfrian
2010-12-12 13:07   ` Alexander Sulfrian
2010-12-13  0:41   ` Junio C Hamano
2010-12-13 22:00     ` hvoigt
2010-12-13  9:48   ` Johannes Sixt
2012-05-07 21:42 ` git calls SSH_ASKPASS even if DISPLAY is not set LarryMartell
  -- strict thread matches above, loose matches on Subject: below --
2010-12-13  4:09 [PATCH] git_getpass: fix ssh-askpass behaviour Xin Wang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).