diff options
author | dimitri staessens <[email protected]> | 2017-10-12 02:15:39 +0200 |
---|---|---|
committer | dimitri staessens <[email protected]> | 2017-10-14 13:19:10 +0200 |
commit | bedd1d4eadde9ab64f924c69eba716b015599e67 (patch) | |
tree | b521ef89c8752334448bee1582b51dbe97851839 /src/ipcpd/normal/dht.c | |
parent | a483bc8597e5c19e796dc55c0587f1a045bc7281 (diff) | |
download | ouroboros-bedd1d4eadde9ab64f924c69eba716b015599e67.tar.gz ouroboros-bedd1d4eadde9ab64f924c69eba716b015599e67.zip |
lib: Deprecate ouroboros_init and ourboros_fini
This commit deprecates ouroboros_init and ouroboros_fini and adds them
as a constructor or destructor, causing these function to be run
automatically when a program that links to the library calls and exits
main(). For this to fully work, the library had to be split so that we
can avoid the irmd calling these functions (the IRMd has to create the
shm structures on which these calls depend).
The library is split in 3 parts: libouroboros-dev, libouroboros-irm
and libouroboros-common. The latter is linked to the other two so that
including libouroboros-dev or libouroboros-irm will also link
libouroboros-common.
Diffstat (limited to 'src/ipcpd/normal/dht.c')
-rw-r--r-- | src/ipcpd/normal/dht.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/ipcpd/normal/dht.c b/src/ipcpd/normal/dht.c index 7ca555ab..161bf292 100644 --- a/src/ipcpd/normal/dht.c +++ b/src/ipcpd/normal/dht.c @@ -1420,7 +1420,9 @@ static int send_msg(struct dht * dht, kad_msg_t * msg, uint64_t addr) { +#ifndef __DHT_TEST__ struct shm_du_buff * sdb; +#endif size_t len; int retr = 0; @@ -1451,12 +1453,11 @@ static int send_msg(struct dht * dht, if (len == 0) goto fail_msg; +#ifndef __DHT_TEST__ if (ipcp_sdb_reserve(&sdb, len)) goto fail_msg; - kad_msg__pack(msg, shm_du_buff_head(sdb)); -#ifndef __DHT_TEST__ while (retr >= 0) { if (dt_write_sdu(addr, QOS_CUBE_BE, dht->fd, sdb)) retr--; @@ -1470,7 +1471,6 @@ static int send_msg(struct dht * dht, #else (void) addr; (void) retr; - ipcp_sdb_release(sdb); #endif /* __DHT_TEST__ */ if (msg->code < KAD_STORE && dht_get_state(dht) != DHT_SHUTDOWN) @@ -2363,8 +2363,9 @@ static void * dht_handle_sdu(void * o) i = shm_du_buff_tail(cmd->sdb) - shm_du_buff_head(cmd->sdb); msg = kad_msg__unpack(NULL, i, shm_du_buff_head(cmd->sdb)); - +#ifndef __DHT_TEST__ ipcp_sdb_release(cmd->sdb); +#endif free(cmd); if (msg == NULL) { |