static void module_instance_free_old(CONF_SECTION *cs, module_instance_t *node, time_t when) { fr_module_hup_t *mh, **last; /* * Walk the list, freeing up old instances. */ last = &(node->mh); while (*last) { mh = *last; /* * Free only every 60 seconds. */ if ((when - mh->when) < 60) { last = &(mh->next); continue; } cf_section_parse_free(cs, mh->insthandle); if (node->entry->module->detach) { if ((node->entry->module->detach)(mh->insthandle) < 0) { DEBUG("WARNING: Failed detaching module %s cleanly. Doing forcible shutdown", node->name); } } else { free(mh->insthandle); } *last = mh->next; free(mh); } }
static void module_instance_free_old(CONF_SECTION *cs, module_instance_t *node, time_t when) { fr_module_hup_t *mh, **last; /* * Walk the list, freeing up old instances. */ last = &(node->mh); while (*last) { mh = *last; /* * Free only every 60 seconds. */ if ((when - mh->when) < 60) { last = &(mh->next); continue; } cf_section_parse_free(cs, mh->insthandle); if (node->entry->module->detach) { (node->entry->module->detach)(mh->insthandle); } else { free(mh->insthandle); } *last = mh->next; free(mh); } }