From fae1d60ae113e1d4696c81b9fdb34232009a72e0 Mon Sep 17 00:00:00 2001 From: Dmitry Simonenko Date: Fri, 31 Mar 2017 13:51:02 +0300 Subject: [PATCH] machinarium: support tls use with connected io --- src/machinarium.h | 6 +++--- src/mm_io.c | 7 ------- src/mm_tls_io.c | 14 ++++++++++++++ 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/src/machinarium.h b/src/machinarium.h index 077bc7b0..07fcefdb 100644 --- a/src/machinarium.h +++ b/src/machinarium.h @@ -121,9 +121,6 @@ machine_error(machine_io_t); MACHINE_API int machine_fd(machine_io_t); -MACHINE_API void -machine_set_tls(machine_io_t, machine_tls_t); - MACHINE_API int machine_set_nodelay(machine_io_t, int enable); @@ -133,6 +130,9 @@ machine_set_keepalive(machine_io_t, int enable, int delay); MACHINE_API int machine_set_readahead(machine_io_t, int size); +MACHINE_API int +machine_set_tls(machine_io_t, machine_tls_t); + /* dns */ MACHINE_API int diff --git a/src/mm_io.c b/src/mm_io.c index fe07c301..ec9e540e 100644 --- a/src/mm_io.c +++ b/src/mm_io.c @@ -128,13 +128,6 @@ machine_close(machine_io_t obj) mm_io_close_handle(io, (uv_handle_t*)&io->handle); } -MACHINE_API void -machine_set_tls(machine_io_t obj, machine_tls_t tls_obj) -{ - mm_io_t *io = obj; - io->tls_obj = tls_obj; -} - MACHINE_API int machine_errno(machine_io_t obj) { diff --git a/src/mm_tls_io.c b/src/mm_tls_io.c index 072a99a3..14c65156 100644 --- a/src/mm_tls_io.c +++ b/src/mm_tls_io.c @@ -414,3 +414,17 @@ int mm_tlsio_read(mm_tlsio_t *io, char *buf, int size) } return 0; } + +MACHINE_API int +machine_set_tls(machine_io_t obj, machine_tls_t tls_obj) +{ + mm_io_t *io = obj; + if (io->tls_obj) { + mm_io_set_errno(io, EINPROGRESS); + return -1; + } + io->tls_obj = tls_obj; + if (! io->connected) + return 0; + return mm_tlsio_connect(&io->tls, io->tls_obj); +}