Home | History | Annotate | Download | only in ns

Lines Matching refs:plugin

66 		 * 'src' is a filename.  Prepend default plugin directory path.
98 "plugin '%s': %s",
114 ns_plugin_t *plugin = NULL;
121 plugin = isc_mem_get(mctx, sizeof(*plugin));
122 *plugin = (ns_plugin_t){
126 isc_mem_attach(mctx, &plugin->mctx);
128 ISC_LINK_INIT(plugin, link);
130 r = uv_dlopen(modpath, &plugin->handle);
132 const char *errmsg = uv_dlerror(&plugin->handle);
138 "failed to dlopen() plugin '%s': %s", modpath,
143 CHECK(load_symbol(&plugin->handle, modpath, "plugin_version",
152 "plugin API version mismatch: %d/%d", version,
157 CHECK(load_symbol(&plugin->handle, modpath, "plugin_check",
158 (void **)&plugin->check_func));
159 CHECK(load_symbol(&plugin->handle, modpath, "plugin_register",
160 (void **)&plugin->register_func));
161 CHECK(load_symbol(&plugin->handle, modpath, "plugin_destroy",
162 (void **)&plugin->destroy_func));
164 *pluginp = plugin;
171 "failed to dynamically load plugin '%s': %s", modpath,
174 unload_plugin(&plugin);
181 ns_plugin_t *plugin = NULL;
185 plugin = *pluginp;
189 ISC_LOG_DEBUG(1), "unloading plugin '%s'",
190 plugin->modpath);
192 if (plugin->inst != NULL) {
193 plugin->destroy_func(&plugin->inst);
196 uv_dlclose(&plugin->handle);
197 isc_mem_free(plugin->mctx, plugin->modpath);
198 isc_mem_putanddetach(&plugin->mctx, plugin, sizeof(*plugin));
207 ns_plugin_t *plugin = NULL;
214 ISC_LOG_INFO, "loading plugin '%s'", modpath);
216 CHECK(load_plugin(mctx, modpath, &plugin));
219 ISC_LOG_INFO, "registering plugin '%s'", modpath);
221 CHECK(plugin->check_func(parameters, cfg, cfg_file, cfg_line, mctx,
224 CHECK(plugin->register_func(parameters, cfg, cfg_file, cfg_line, mctx,
226 &plugin->inst));
228 ISC_LIST_APPEND(*(ns_plugins_t *)view->plugins, plugin, link);
231 if (result != ISC_R_SUCCESS && plugin != NULL) {
232 unload_plugin(&plugin);
243 ns_plugin_t *plugin = NULL;
245 CHECK(load_plugin(mctx, modpath, &plugin));
247 result = plugin->check_func(parameters, cfg, cfg_file, cfg_line, mctx,
251 if (plugin != NULL) {
252 unload_plugin(&plugin);
346 ns_plugin_t *plugin = NULL, *next = NULL;
353 for (plugin = ISC_LIST_HEAD(*list); plugin != NULL; plugin = next) {
354 next = ISC_LIST_NEXT(plugin, link);
355 ISC_LIST_UNLINK(*list, plugin, link);
356 unload_plugin(&plugin);