diff options
Diffstat (limited to 'src/ipcpd/normal')
-rw-r--r-- | src/ipcpd/normal/connmgr.c | 7 | ||||
-rw-r--r-- | src/ipcpd/normal/dht.c | 2 | ||||
-rw-r--r-- | src/ipcpd/normal/dht.h | 2 | ||||
-rw-r--r-- | src/ipcpd/normal/dir.c | 10 | ||||
-rw-r--r-- | src/ipcpd/normal/dir.h | 2 |
5 files changed, 21 insertions, 2 deletions
diff --git a/src/ipcpd/normal/connmgr.c b/src/ipcpd/normal/connmgr.c index 843eb280..6301baed 100644 --- a/src/ipcpd/normal/connmgr.c +++ b/src/ipcpd/normal/connmgr.c @@ -33,6 +33,7 @@ #include "comp.h" #include "connmgr.h" +#include "dir.h" #include "enroll.h" #include "ipcp.h" @@ -376,7 +377,8 @@ int connmgr_alloc(enum comp_id id, return -1; } - if (connmgr.comps[id].info.pref_version != conn->conn_info.pref_version) { + if (connmgr.comps[id].info.pref_version != + conn->conn_info.pref_version) { log_dbg("Unknown protocol version."); flow_dealloc(conn->flow_info.fd); return -1; @@ -391,6 +393,9 @@ int connmgr_alloc(enum comp_id id, switch (id) { case COMPID_DT: notifier_event(NOTIFY_DT_CONN_ADD, conn); +#ifdef IPCP_CONN_WAIT_DIR + dir_wait_running(); +#endif break; case COMPID_MGMT: notifier_event(NOTIFY_MGMT_CONN_ADD, conn); diff --git a/src/ipcpd/normal/dht.c b/src/ipcpd/normal/dht.c index 1fabcb84..5e63f748 100644 --- a/src/ipcpd/normal/dht.c +++ b/src/ipcpd/normal/dht.c @@ -295,7 +295,7 @@ static int dht_set_state(struct dht * dht, return 0; } -static int dht_wait_running(struct dht * dht) +int dht_wait_running(struct dht * dht) { int ret = 0; diff --git a/src/ipcpd/normal/dht.h b/src/ipcpd/normal/dht.h index b49e860d..00410ff4 100644 --- a/src/ipcpd/normal/dht.h +++ b/src/ipcpd/normal/dht.h @@ -47,4 +47,6 @@ int dht_unreg(struct dht * dht, uint64_t dht_query(struct dht * dht, const uint8_t * key); +int dht_wait_running(struct dht * dht); + #endif /* OUROBOROS_IPCPD_NORMAL_DHT_H */ diff --git a/src/ipcpd/normal/dir.c b/src/ipcpd/normal/dir.c index 2428e1b6..1c883974 100644 --- a/src/ipcpd/normal/dir.c +++ b/src/ipcpd/normal/dir.c @@ -84,3 +84,13 @@ uint64_t dir_query(const uint8_t * hash) { return dht_query(dht, hash); } + +int dir_wait_running(void) +{ + if (dht_wait_running(dht)) { + log_warn("Directory did not bootstrap."); + return -1; + } + + return 0; +} diff --git a/src/ipcpd/normal/dir.h b/src/ipcpd/normal/dir.h index 365341ad..eb7a8aea 100644 --- a/src/ipcpd/normal/dir.h +++ b/src/ipcpd/normal/dir.h @@ -35,4 +35,6 @@ int dir_unreg(const uint8_t * hash); uint64_t dir_query(const uint8_t * hash); +int dir_wait_running(void); + #endif /* OUROBOROS_IPCPD_NORMAL_DIR_H */ |