static apr_status_t assign_profile_group_handler()

in flood_profile.c [368:400]


static apr_status_t assign_profile_group_handler(profile_events_t *events,
                                                 const char *class_name,
                                                 const char *group_name)
{
    profile_event_handler_t *p;
    profile_group_handler_t *g;
    const char **handlers;

    /* Find our group. */
    for (g = &profile_group_handlers[0]; g && g->class; g++) 
    {
        if (!strncasecmp(class_name, g->class, FLOOD_STRLEN_MAX) &&
            !strncasecmp(group_name, g->group_name, FLOOD_STRLEN_MAX))
            break;
    }

    if (!g->class) {
        apr_file_printf(local_stderr, "Invalid class '%s' or groupname '%s'.\n",
                        class_name, group_name);
        return APR_EGENERAL;
    }

    /* For all of the handlers, set them. */
    for (handlers = g->handlers; *handlers; handlers++)
    {
        for (p = profile_event_handlers; p && p->handler_name; p++) {
            if (!strncasecmp(p->impl_name, *handlers, FLOOD_STRLEN_MAX))
                assign_profile_event_handler(events, p->handler_name, 
                                             p->impl_name);
        }
    }
    return APR_SUCCESS;
}