Re: [libvirt PATCH 3/3] rpc/ssh: ssh_userauth_agent() is not supported on win32

2023-04-11 Thread Marc-André Lureau
Hi

On Tue, Apr 11, 2023 at 11:10 AM Michal Prívozník 
wrote:

> On 4/6/23 17:58, marcandre.lur...@redhat.com wrote:
> > From: Marc-André Lureau 
> >
> > The function does not exist on win32.
> >
> > Signed-off-by: Marc-André Lureau 
> > ---
> >  src/rpc/virnetlibsshsession.c | 14 --
> >  1 file changed, 12 insertions(+), 2 deletions(-)
> >
> > diff --git a/src/rpc/virnetlibsshsession.c
> b/src/rpc/virnetlibsshsession.c
> > index e71a79d0fb..e94b0d7a2e 100644
> > --- a/src/rpc/virnetlibsshsession.c
> > +++ b/src/rpc/virnetlibsshsession.c
> > @@ -60,7 +60,9 @@ typedef enum {
> >  VIR_NET_LIBSSH_AUTH_KEYBOARD_INTERACTIVE,
> >  VIR_NET_LIBSSH_AUTH_PASSWORD,
> >  VIR_NET_LIBSSH_AUTH_PRIVKEY,
> > -VIR_NET_LIBSSH_AUTH_AGENT
> > +#ifndef WIN32
> > +VIR_NET_LIBSSH_AUTH_AGENT,
> > +#endif
> >  } virNetLibsshAuthMethods;
> >
>
> I'd just drop this hunk, and ...
>
> >
> > @@ -698,6 +700,7 @@ virNetLibsshAuthenticate(virNetLibsshSession *sess)
> >  /* try to authenticate using the keyboard interactive way */
> >  ret = virNetLibsshAuthenticateKeyboardInteractive(sess,
> auth);
> >  break;
> > +#ifndef WIN32
> >  case VIR_NET_LIBSSH_AUTH_AGENT:
> >  /* try to authenticate using ssh-agent */
> >  ret = ssh_userauth_agent(sess->session, NULL);
> > @@ -708,6 +711,7 @@ virNetLibsshAuthenticate(virNetLibsshSession *sess)
> > errmsg);
> >  }
> >  break;
> > +#endif
>
>
> .. here just wrap the actual ssh_userauth_agent() call in ifdnef. The
> @ret is set to SSH_AUTH_DENIED beforehand, and later in the code a
> proper error message is reported.
>
> >  case VIR_NET_LIBSSH_AUTH_PRIVKEY:
> >  /* try to authenticate using the provided ssh key */
> >  ret = virNetLibsshAuthenticatePrivkey(sess, auth);
> > @@ -861,8 +865,13 @@
> virNetLibsshSessionAuthAddPasswordAuth(virNetLibsshSession *sess,
> >  }
> >
> >  int
> > -virNetLibsshSessionAuthAddAgentAuth(virNetLibsshSession *sess)
> > +virNetLibsshSessionAuthAddAgentAuth(virNetLibsshSession *sess
> G_GNUC_UNUSED)
> >  {
> > +#ifdef WIN32
> > +virReportError(VIR_ERR_LIBSSH, "%s",
> > +   _("Agent authentication is not supported on this
> host"));
> > +return -1;
> > +#else
> >  virNetLibsshAuthMethod *auth;
> >
> >  virObjectLock(sess);
> > @@ -873,6 +882,7 @@
> virNetLibsshSessionAuthAddAgentAuth(virNetLibsshSession *sess)
> >
> >  virObjectUnlock(sess);
> >  return 0;
> > +#endif
> >  }
> >
> >  int
>
> This hunk alone is enough to ensure agent is not available on WIN32.
>
>
Sure, that's fine with me.

thanks


Re: [libvirt PATCH 3/3] rpc/ssh: ssh_userauth_agent() is not supported on win32

2023-04-11 Thread Michal Prívozník
On 4/6/23 17:58, marcandre.lur...@redhat.com wrote:
> From: Marc-André Lureau 
> 
> The function does not exist on win32.
> 
> Signed-off-by: Marc-André Lureau 
> ---
>  src/rpc/virnetlibsshsession.c | 14 --
>  1 file changed, 12 insertions(+), 2 deletions(-)
> 
> diff --git a/src/rpc/virnetlibsshsession.c b/src/rpc/virnetlibsshsession.c
> index e71a79d0fb..e94b0d7a2e 100644
> --- a/src/rpc/virnetlibsshsession.c
> +++ b/src/rpc/virnetlibsshsession.c
> @@ -60,7 +60,9 @@ typedef enum {
>  VIR_NET_LIBSSH_AUTH_KEYBOARD_INTERACTIVE,
>  VIR_NET_LIBSSH_AUTH_PASSWORD,
>  VIR_NET_LIBSSH_AUTH_PRIVKEY,
> -VIR_NET_LIBSSH_AUTH_AGENT
> +#ifndef WIN32
> +VIR_NET_LIBSSH_AUTH_AGENT,
> +#endif
>  } virNetLibsshAuthMethods;
>  

I'd just drop this hunk, and ...

>  
> @@ -698,6 +700,7 @@ virNetLibsshAuthenticate(virNetLibsshSession *sess)
>  /* try to authenticate using the keyboard interactive way */
>  ret = virNetLibsshAuthenticateKeyboardInteractive(sess, auth);
>  break;
> +#ifndef WIN32
>  case VIR_NET_LIBSSH_AUTH_AGENT:
>  /* try to authenticate using ssh-agent */
>  ret = ssh_userauth_agent(sess->session, NULL);
> @@ -708,6 +711,7 @@ virNetLibsshAuthenticate(virNetLibsshSession *sess)
> errmsg);
>  }
>  break;
> +#endif


.. here just wrap the actual ssh_userauth_agent() call in ifdnef. The
@ret is set to SSH_AUTH_DENIED beforehand, and later in the code a
proper error message is reported.

>  case VIR_NET_LIBSSH_AUTH_PRIVKEY:
>  /* try to authenticate using the provided ssh key */
>  ret = virNetLibsshAuthenticatePrivkey(sess, auth);
> @@ -861,8 +865,13 @@ 
> virNetLibsshSessionAuthAddPasswordAuth(virNetLibsshSession *sess,
>  }
>  
>  int
> -virNetLibsshSessionAuthAddAgentAuth(virNetLibsshSession *sess)
> +virNetLibsshSessionAuthAddAgentAuth(virNetLibsshSession *sess G_GNUC_UNUSED)
>  {
> +#ifdef WIN32
> +virReportError(VIR_ERR_LIBSSH, "%s",
> +   _("Agent authentication is not supported on this host"));
> +return -1;
> +#else
>  virNetLibsshAuthMethod *auth;
>  
>  virObjectLock(sess);
> @@ -873,6 +882,7 @@ virNetLibsshSessionAuthAddAgentAuth(virNetLibsshSession 
> *sess)
>  
>  virObjectUnlock(sess);
>  return 0;
> +#endif
>  }
>  
>  int

This hunk alone is enough to ensure agent is not available on WIN32.

Michal



[libvirt PATCH 3/3] rpc/ssh: ssh_userauth_agent() is not supported on win32

2023-04-06 Thread marcandre . lureau
From: Marc-André Lureau 

The function does not exist on win32.

Signed-off-by: Marc-André Lureau 
---
 src/rpc/virnetlibsshsession.c | 14 --
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/rpc/virnetlibsshsession.c b/src/rpc/virnetlibsshsession.c
index e71a79d0fb..e94b0d7a2e 100644
--- a/src/rpc/virnetlibsshsession.c
+++ b/src/rpc/virnetlibsshsession.c
@@ -60,7 +60,9 @@ typedef enum {
 VIR_NET_LIBSSH_AUTH_KEYBOARD_INTERACTIVE,
 VIR_NET_LIBSSH_AUTH_PASSWORD,
 VIR_NET_LIBSSH_AUTH_PRIVKEY,
-VIR_NET_LIBSSH_AUTH_AGENT
+#ifndef WIN32
+VIR_NET_LIBSSH_AUTH_AGENT,
+#endif
 } virNetLibsshAuthMethods;
 
 
@@ -698,6 +700,7 @@ virNetLibsshAuthenticate(virNetLibsshSession *sess)
 /* try to authenticate using the keyboard interactive way */
 ret = virNetLibsshAuthenticateKeyboardInteractive(sess, auth);
 break;
+#ifndef WIN32
 case VIR_NET_LIBSSH_AUTH_AGENT:
 /* try to authenticate using ssh-agent */
 ret = ssh_userauth_agent(sess->session, NULL);
@@ -708,6 +711,7 @@ virNetLibsshAuthenticate(virNetLibsshSession *sess)
errmsg);
 }
 break;
+#endif
 case VIR_NET_LIBSSH_AUTH_PRIVKEY:
 /* try to authenticate using the provided ssh key */
 ret = virNetLibsshAuthenticatePrivkey(sess, auth);
@@ -861,8 +865,13 @@ virNetLibsshSessionAuthAddPasswordAuth(virNetLibsshSession 
*sess,
 }
 
 int
-virNetLibsshSessionAuthAddAgentAuth(virNetLibsshSession *sess)
+virNetLibsshSessionAuthAddAgentAuth(virNetLibsshSession *sess G_GNUC_UNUSED)
 {
+#ifdef WIN32
+virReportError(VIR_ERR_LIBSSH, "%s",
+   _("Agent authentication is not supported on this host"));
+return -1;
+#else
 virNetLibsshAuthMethod *auth;
 
 virObjectLock(sess);
@@ -873,6 +882,7 @@ virNetLibsshSessionAuthAddAgentAuth(virNetLibsshSession 
*sess)
 
 virObjectUnlock(sess);
 return 0;
+#endif
 }
 
 int
-- 
2.39.2