if (ret != 0) {
return ret;
}
+ /* Initialize network */
+ network_init(&engine->net, uv_default_loop());
return ret;
}
return;
}
+ network_deinit(&engine->net);
+
/* Unload modules. */
for (size_t i = 0; i < engine->modules.len; ++i) {
kr_module_unload(&engine->modules.at[i]);
struct lua_State;
#include "lib/resolve.h"
-#include "lib/generic/array.h"
+#include "daemon/network.h"
struct engine {
struct kr_context resolver;
modulelist_t modules;
+ struct network net;
mm_ctx_t *pool;
struct lua_State *L;
};
loop->data = &worker;
/* Bind to sockets. */
- struct network net;
- network_init(&net, loop);
- ret = network_listen(&net, addr, (uint16_t)port, NET_UDP|NET_TCP);
+ ret = network_listen(&engine.net, addr, (uint16_t)port, NET_UDP|NET_TCP);
if (ret != 0) {
fprintf(stderr, "[system] bind to '%s#%d' %s\n", addr, port, knot_strerror(ret));
ret = EXIT_FAILURE;
/* Cleanup. */
fprintf(stderr, "\n[system] quitting\n");
- network_deinit(&net);
engine_deinit(&engine);
return ret;