From 28736450686d37aee0bf003b4bcf09b30fdfb0ff Mon Sep 17 00:00:00 2001 From: Willem Toorop Date: Fri, 17 Jun 2016 16:50:47 +0200 Subject: [PATCH] get current (pluggable) eventloop from context So applications can schedule events against it... --- src/context.c | 14 ++++++++++++++ src/getdns/getdns_extra.h.in | 5 +++++ 2 files changed, 19 insertions(+) diff --git a/src/context.c b/src/context.c index 5acba6cf..b46dc3bd 100644 --- a/src/context.c +++ b/src/context.c @@ -3266,6 +3266,20 @@ getdns_context_set_eventloop(getdns_context* context, getdns_eventloop* loop) return GETDNS_RETURN_GOOD; } +getdns_return_t +getdns_context_get_eventloop(getdns_context *context, getdns_eventloop **loop) +{ + if (!context || !loop) + return GETDNS_RETURN_INVALID_PARAMETER; + + if (!context->extension) + return GETDNS_RETURN_GENERIC_ERROR; + else + *loop = context->extension; + + return GETDNS_RETURN_GOOD; +} + static in_port_t upstream_port(getdns_upstream *upstream) { diff --git a/src/getdns/getdns_extra.h.in b/src/getdns/getdns_extra.h.in index dd0574c7..8593fda4 100644 --- a/src/getdns/getdns_extra.h.in +++ b/src/getdns/getdns_extra.h.in @@ -119,6 +119,11 @@ getdns_return_t getdns_context_set_eventloop(getdns_context* context, getdns_eventloop *eventloop); +/* get the currently active (pluggable) eventloop from the context */ +getdns_return_t +getdns_context_get_eventloop(getdns_context* context, + getdns_eventloop **eventloop); + /* detach the eventloop from the context */ getdns_return_t getdns_context_detach_eventloop(getdns_context *context);