[libvirt] [PATCH] rpc: fixing compilation error due to deprecated ssh_get_publickey().
Julio Faracco
jcfaracco at gmail.com
Fri May 4 21:01:57 UTC 2018
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 at redhat.com>:
> 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 at gmail.com>
>> ---
>> 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
More information about the libvir-list
mailing list