diff options
Diffstat (limited to 'src/transport/zerotier')
| -rw-r--r-- | src/transport/zerotier/zerotier.c | 48 |
1 files changed, 34 insertions, 14 deletions
diff --git a/src/transport/zerotier/zerotier.c b/src/transport/zerotier/zerotier.c index fa8458c1..3535a248 100644 --- a/src/transport/zerotier/zerotier.c +++ b/src/transport/zerotier/zerotier.c @@ -2251,6 +2251,18 @@ zt_ep_init(void **epp, nni_url *url, nni_sock *sock, int mode) return (0); } +static int +zt_dialer_init(void **epp, nni_url *url, nni_sock *sock) +{ + return (zt_ep_init(epp, url, sock, NNI_EP_MODE_DIAL)); +} + +static int +zt_listener_init(void **epp, nni_url *url, nni_sock *sock) +{ + return (zt_ep_init(epp, url, sock, NNI_EP_MODE_LISTEN)); +} + static void zt_ep_close(void *arg) { @@ -3022,25 +3034,33 @@ static nni_tran_option zt_ep_options[] = { }, }; -static nni_tran_ep_ops zt_ep_ops = { - .ep_init = zt_ep_init, - .ep_fini = zt_ep_fini, - .ep_connect = zt_ep_connect, - .ep_bind = zt_ep_bind, - .ep_accept = zt_ep_accept, - .ep_close = zt_ep_close, - .ep_options = zt_ep_options, +static nni_tran_dialer_ops zt_dialer_ops = { + .d_init = zt_dialer_init, + .d_fini = zt_ep_fini, + .d_connect = zt_ep_connect, + .d_close = zt_ep_close, + .d_options = zt_ep_options, +}; + +static nni_tran_listener_ops zt_listener_ops = { + .l_init = zt_listener_init, + .l_fini = zt_ep_fini, + .l_bind = zt_ep_bind, + .l_accept = zt_ep_accept, + .l_close = zt_ep_close, + .l_options = zt_ep_options, }; // This is the ZeroTier transport linkage, and should be the // only global symbol in this entire file. static struct nni_tran zt_tran = { - .tran_version = NNI_TRANSPORT_VERSION, - .tran_scheme = "zt", - .tran_ep = &zt_ep_ops, - .tran_pipe = &zt_pipe_ops, - .tran_init = zt_tran_init, - .tran_fini = zt_tran_fini, + .tran_version = NNI_TRANSPORT_VERSION, + .tran_scheme = "zt", + .tran_dialer = &zt_dialer_ops, + .tran_listener = &zt_listener_ops, + .tran_pipe = &zt_pipe_ops, + .tran_init = zt_tran_init, + .tran_fini = zt_tran_fini, }; int |
