All pastes #25122 Raw Edit

Stuff

public text v1 · immutable
#25122 ·published 2005-10-10 14:03 UTC
rendered paste body
static int authenticate(struct mansession *s, struct message *m)
{
        struct opbx_config *cfg;
        char iabuf[INET_ADDRSTRLEN];
        char *cat;
        char *user = astman_get_header(m, "Username");
        char *pass = astman_get_header(m, "Secret");
        char *authtype = astman_get_header(m, "AuthType");
        char *key = astman_get_header(m, "Key");
        char *events = astman_get_header(m, "Events");

        cfg = opbx_config_load("manager.conf");
        if (!cfg)
                return -1;
        cat = opbx_category_browse(cfg, NULL);
        while(cat) {
                if (strcasecmp(cat, "general")) {
                        /* This is a user */
                        if (!strcasecmp(cat, user)) {
                                struct opbx_variable *v;
                                struct opbx_ha *ha = NULL;
                                char *password = NULL;
                                v = opbx_variable_browse(cfg, cat);
                                while (v) {
                                        if (!strcasecmp(v->name, "secret")) {
                                                password = v->value;
                                        } else if (!strcasecmp(v->name, "permit") ||
                                                   !strcasecmp(v->name, "deny")) {
                                                ha = opbx_append_ha(v->name, v->value, ha);
                                        } else if (!strcasecmp(v->name, "writetimeout")) {
                                                int val = atoi(v->value);

                                                if (val < 100)
                                                        opbx_log(LOG_WARNING, "Invalid writetimeout value '%s' at line %d\n", v->value, v->lineno);
                                                else
                                                        s->writetimeout = val;
                                        }

                                        v = v->next;