IMHO: - The first approach is simple to remove in the future. - The second one is easy to read and understand. -- Julio Cesar Faracco 2018-05-04 16:10 GMT-03:00 Jiri Denemark <jdenemar@xxxxxxxxxx>: > On Tue, May 01, 2018 at 13:21:15 -0300, Julio Faracco wrote: >> After 0.7.5 release, libssh deprecated ssh_get_publickey() method to >> introduce ssh_get_server_publickey(). This commit check the current >> version of libssh and use the proper method during the compilation. >> See the error: >> >> make[3]: Entering directory '/home/julio/Desktop/virt/libvirt/src' >> CC rpc/libvirt_net_rpc_la-virnetlibsshsession.lo >> rpc/virnetlibsshsession.c:217:9: error: 'ssh_get_publickey' is deprecated [-Werror,-Wdeprecated-declarations] >> if (ssh_get_publickey(sess->session, &key) != SSH_OK) { >> ^ >> /usr/include/libssh/libssh.h:489:1: note: 'ssh_get_publickey' has been explicitly marked deprecated here >> SSH_DEPRECATED LIBSSH_API int ssh_get_publickey(ssh_session session, ssh_key *key); >> ^ >> /usr/include/libssh/libssh.h:99:40: note: expanded from macro 'SSH_DEPRECATED' >> ^ >> 1 error generated. >> Makefile:8604: recipe for target 'rpc/libvirt_net_rpc_la-virnetlibsshsession.lo' failed >> >> Signed-off-by: Julio Faracco <jcfaracco@xxxxxxxxx> >> --- >> src/rpc/virnetlibsshsession.c | 4 ++++ >> 1 file changed, 4 insertions(+) >> >> diff --git a/src/rpc/virnetlibsshsession.c b/src/rpc/virnetlibsshsession.c >> index 309e8a9340..96c5bc0882 100644 >> --- a/src/rpc/virnetlibsshsession.c >> +++ b/src/rpc/virnetlibsshsession.c >> @@ -214,7 +214,11 @@ virLibsshServerKeyAsString(virNetLibsshSessionPtr sess) >> size_t keyhashlen; >> char *str; >> >> +#if LIBSSH_VERSION_INT > 0x0705 /* 0.7.5 */ >> + if (ssh_get_server_publickey(sess->session, &key) != SSH_OK) { >> +#else >> if (ssh_get_publickey(sess->session, &key) != SSH_OK) { >> +#endif >> virReportError(VIR_ERR_LIBSSH, "%s", >> _("failed to get the key of the current " >> "session")); > > How about making it easier to read and harder to mess up: > > #if LIBSSH_VERSION_INT > 0x0705 /* 0.7.5 */ > rc = ssh_get_server_publickey(sess->session, &key); > #else > rc = ssh_get_publickey(sess->session, &key); > #endif > > if (rc != SSH_OK) { > ... > } > > Jirka -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list