summaryrefslogtreecommitdiff
path: root/proto/rpki
diff options
context:
space:
mode:
authorMaria Matejka <mq@ucw.cz>2020-02-04 10:15:35 +0100
committerMaria Matejka <mq@ucw.cz>2020-02-04 10:15:35 +0100
commit027a3e66f786be8863784aefb043097b41090896 (patch)
tree4049bdb280e338384ace7cedac87e5f4963aa486 /proto/rpki
parent4bbc10614f3431c37e6352f5a6ea5c693c31021e (diff)
RPKI: Allow build without libSSH
Diffstat (limited to 'proto/rpki')
-rw-r--r--proto/rpki/config.Y4
-rw-r--r--proto/rpki/rpki.c8
-rw-r--r--proto/rpki/ssh_transport.c4
-rw-r--r--proto/rpki/transport.h2
4 files changed, 18 insertions, 0 deletions
diff --git a/proto/rpki/config.Y b/proto/rpki/config.Y
index 63c7105c..924066f8 100644
--- a/proto/rpki/config.Y
+++ b/proto/rpki/config.Y
@@ -117,9 +117,13 @@ rpki_transport_tcp_init:
rpki_transport_ssh_init:
{
+#if HAVE_LIBSSH
rpki_check_unused_transport();
RPKI_CFG->tr_config.spec = cfg_allocz(sizeof(struct rpki_tr_ssh_config));
RPKI_CFG->tr_config.type = RPKI_TR_SSH;
+#else
+ cf_error("This build doesn't support SSH");
+#endif
};
rpki_transport_ssh_opts:
diff --git a/proto/rpki/rpki.c b/proto/rpki/rpki.c
index 70cd0cdd..aa07f7d9 100644
--- a/proto/rpki/rpki.c
+++ b/proto/rpki/rpki.c
@@ -579,7 +579,9 @@ rpki_init_cache(struct rpki_proto *p, struct rpki_config *cf)
switch (cf->tr_config.type)
{
case RPKI_TR_TCP: rpki_tr_tcp_init(cache->tr_sock); break;
+#if HAVE_LIBSSH
case RPKI_TR_SSH: rpki_tr_ssh_init(cache->tr_sock); break;
+#endif
};
CACHE_DBG(cache, "Connection object created");
@@ -683,6 +685,7 @@ rpki_reconfigure_cache(struct rpki_proto *p UNUSED, struct rpki_cache *cache, st
CACHE_TRACE(D_EVENTS, cache, "Transport type changed");
return NEED_RESTART;
}
+#if HAVE_LIBSSH
else if (new->tr_config.type == RPKI_TR_SSH)
{
struct rpki_tr_ssh_config *ssh_old = (void *) old->tr_config.spec;
@@ -695,6 +698,7 @@ rpki_reconfigure_cache(struct rpki_proto *p UNUSED, struct rpki_cache *cache, st
try_fast_reconnect = 1;
}
}
+#endif
#define TEST_INTERVAL(name, Name) \
if (cache->name##_interval != new->name##_interval || \
@@ -813,7 +817,9 @@ rpki_show_proto_info(struct proto *P)
switch (cf->tr_config.type)
{
+#if HAVE_LIBSSH
case RPKI_TR_SSH: transport_name = "SSHv2"; break;
+#endif
case RPKI_TR_TCP: transport_name = "Unprotected over TCP"; break;
};
@@ -887,9 +893,11 @@ rpki_check_config(struct rpki_config *cf)
/* Set default port numbers */
switch (cf->tr_config.type)
{
+#if HAVE_LIBSSH
case RPKI_TR_SSH:
cf->port = RPKI_SSH_PORT;
break;
+#endif
default:
cf->port = RPKI_TCP_PORT;
}
diff --git a/proto/rpki/ssh_transport.c b/proto/rpki/ssh_transport.c
index 13e061fc..469eb199 100644
--- a/proto/rpki/ssh_transport.c
+++ b/proto/rpki/ssh_transport.c
@@ -17,6 +17,8 @@
#include "rpki.h"
+#if HAVE_LIBSSH
+
static int
rpki_tr_ssh_open(struct rpki_tr_sock *tr)
{
@@ -71,3 +73,5 @@ rpki_tr_ssh_init(struct rpki_tr_sock *tr)
tr->open_fp = &rpki_tr_ssh_open;
tr->ident_fp = &rpki_tr_ssh_ident;
}
+
+#endif
diff --git a/proto/rpki/transport.h b/proto/rpki/transport.h
index f90b7e42..bb8d41eb 100644
--- a/proto/rpki/transport.h
+++ b/proto/rpki/transport.h
@@ -51,7 +51,9 @@ const char *rpki_tr_ident(struct rpki_tr_sock *tr);
/* Types of supported transports */
enum rpki_tr_type {
RPKI_TR_TCP, /* Unprotected transport over TCP */
+#if HAVE_LIBSSH
RPKI_TR_SSH, /* Protected transport by SSHv2 connection */
+#endif
};
/* Common configure structure for transports */