aboutsummaryrefslogtreecommitdiff
path: root/src/supplemental/tls
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2020-12-19 10:21:54 -0800
committerGarrett D'Amore <garrett@damore.org>2020-12-19 12:50:05 -0800
commitd12e169c1e733b255d146847ed57037b74681285 (patch)
treee4a59142a6cf097dfdda8620635f173f53db9e7a /src/supplemental/tls
parent2033988343bce413763d3e9664e3e8372da48591 (diff)
downloadnng-d12e169c1e733b255d146847ed57037b74681285.tar.gz
nng-d12e169c1e733b255d146847ed57037b74681285.tar.bz2
nng-d12e169c1e733b255d146847ed57037b74681285.zip
fixes #1372 nni_reap could be smaller
Diffstat (limited to 'src/supplemental/tls')
-rw-r--r--src/supplemental/tls/tls_common.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/supplemental/tls/tls_common.c b/src/supplemental/tls/tls_common.c
index e23fb4d8..6e5e6757 100644
--- a/src/supplemental/tls/tls_common.c
+++ b/src/supplemental/tls/tls_common.c
@@ -78,7 +78,7 @@ typedef struct {
size_t tcp_send_len;
size_t tcp_send_head;
size_t tcp_send_tail;
- struct nni_reap_item reap;
+ nni_reap_node reap;
// ... engine connection data follows
} tls_conn;
@@ -89,10 +89,16 @@ static void tls_do_send(tls_conn *);
static void tls_do_recv(tls_conn *);
static void tls_tcp_send_start(tls_conn *);
static void tls_free(void *);
+static void tls_reap(void *);
static int tls_alloc(tls_conn **, nng_tls_config *, nng_aio *);
static int tls_start(tls_conn *, nng_stream *);
static void tls_tcp_error(tls_conn *, int);
+static nni_reap_list tls_conn_reap_list = {
+ .rl_offset = offsetof(tls_conn, reap),
+ .rl_func = tls_reap,
+};
+
typedef struct {
nng_stream_dialer ops;
nng_stream_dialer *d; // underlying TCP dialer
@@ -331,8 +337,7 @@ static const nni_option tls_dialer_opts[] = {
};
static int
-tls_dialer_get(
- void *arg, const char *name, void *buf, size_t *szp, nni_type t)
+tls_dialer_get(void *arg, const char *name, void *buf, size_t *szp, nni_type t)
{
tls_dialer *d = arg;
int rv;
@@ -873,7 +878,7 @@ tls_free(void *arg)
{
tls_conn *conn = arg;
- nni_reap(&conn->reap, tls_reap, conn);
+ nni_reap(&tls_conn_reap_list, conn);
}
static int
@@ -1501,6 +1506,7 @@ nni_tls_sys_init(void)
void
nni_tls_sys_fini(void)
{
+ nni_reap_drain();
NNG_TLS_ENGINE_FINI();
}