Lines Matching defs:am

77 auditfilter_module_free(struct auditfilter_module *am)
80 if (am->am_modulename != NULL)
81 free(am->am_modulename);
82 if (am->am_arg_buffer != NULL)
83 free(am->am_arg_buffer);
84 if (am->am_argv != NULL)
85 free(am->am_argv);
96 struct auditfilter_module *am;
99 am = TAILQ_FIRST(list);
100 TAILQ_REMOVE(list, am, am_list);
101 auditfilter_module_free(am);
110 auditfilter_module_detach(struct auditfilter_module *am)
113 if (am->am_detach != NULL)
114 am->am_detach(am);
115 am->am_cookie = NULL;
116 (void)dlclose(am->am_dlhandle);
117 am->am_dlhandle = NULL;
127 struct auditfilter_module *am;
129 TAILQ_FOREACH(am, list, am_list)
130 auditfilter_module_detach(am);
140 auditfilter_module_attach(struct auditfilter_module *am)
143 am->am_dlhandle = dlopen(am->am_modulename, RTLD_NOW);
144 if (am->am_dlhandle == NULL) {
145 warnx("auditfilter_module_attach: %s: %s", am->am_modulename,
155 am->am_attach = dlsym(am->am_dlhandle, AUDIT_FILTER_ATTACH_STRING);
156 am->am_reinit = dlsym(am->am_dlhandle, AUDIT_FILTER_REINIT_STRING);
157 am->am_record = dlsym(am->am_dlhandle, AUDIT_FILTER_RECORD_STRING);
158 am->am_rawrecord = dlsym(am->am_dlhandle,
160 am->am_detach = dlsym(am->am_dlhandle, AUDIT_FILTER_DETACH_STRING);
162 if (am->am_attach != NULL) {
163 if (am->am_attach(am, am->am_argc, am->am_argv)
166 am->am_modulename);
167 dlclose(am->am_dlhandle);
168 am->am_dlhandle = NULL;
169 am->am_cookie = NULL;
170 am->am_attach = NULL;
171 am->am_reinit = NULL;
172 am->am_record = NULL;
173 am->am_rawrecord = NULL;
174 am->am_detach = NULL;
188 auditfilter_module_reinit(struct auditfilter_module *am)
191 if (am->am_reinit == NULL)
194 if (am->am_reinit(am, am->am_argc, am->am_argv) !=
197 am->am_modulename);
219 struct auditfilter_module *am;
221 am = malloc(sizeof(*am));
222 if (am == NULL) {
226 bzero(am, sizeof(*am));
242 am->am_modulename = strdup(module);
243 if (am->am_modulename == NULL) {
245 auditfilter_module_free(am);
249 am->am_arg_buffer = strdup(buffer);
250 if (am->am_arg_buffer == NULL) {
252 auditfilter_module_free(am);
261 am->am_argv = malloc(sizeof(char *) * AUDITFILTERD_CONF_MAXARGS);
262 if (am->am_argv == NULL) {
264 auditfilter_module_free(am);
267 bzero(am->am_argv, sizeof(char *) * AUDITFILTERD_CONF_MAXARGS);
268 am->am_argc = 0;
269 for (ap = am->am_argv; (*ap = strsep(&arguments, " \t")) != NULL;) {
271 am->am_argc++;
272 if (++ap >= &am->am_argv[AUDITFILTERD_CONF_MAXARGS])
276 if (ap >= &am->am_argv[AUDITFILTERD_CONF_MAXARGS]) {
279 auditfilter_module_free(am);
283 return (am);
296 struct auditfilter_module *am;
308 am = auditfilter_module_parse(filename, linenumber, buffer);
309 if (am == NULL) {
313 TAILQ_INSERT_HEAD(list, am, am_list);
500 struct auditfilter_module *am;
502 am = (struct auditfilter_module *)instance;
503 *cookie = am->am_cookie;
509 struct auditfilter_module *am;
511 am = (struct auditfilter_module *)instance;
512 am->am_cookie = cookie;