void vacm_parse_config_group(const char *token, char *line) { struct vacm_groupEntry group; struct vacm_groupEntry *gptr; char *securityName = (char *) &group.securityName; char *groupName; size_t len; group.status = atoi(line); line = skip_token(line); group.storageType = atoi(line); line = skip_token(line); group.securityModel = atoi(line); line = skip_token(line); len = sizeof(group.securityName); line = read_config_read_octet_string(line, (u_char **) & securityName, &len); gptr = vacm_createGroupEntry(group.securityModel, group.securityName); if (!gptr) return; gptr->status = group.status; gptr->storageType = group.storageType; groupName = (char *) gptr->groupName; len = sizeof(group.groupName); line = read_config_read_octet_string(line, (u_char **) & groupName, &len); }
void vacm_parse_group(const char *token, char *param) { char group[VACMSTRINGLEN], model[VACMSTRINGLEN], security[VACMSTRINGLEN]; int imodel; struct vacm_groupEntry *gp = NULL; char *st; st = copy_nword(param, group, sizeof(group)-1); st = copy_nword(st, model, sizeof(model)-1); st = copy_nword(st, security, sizeof(security)-1); if (group[0] == 0) { config_perror("missing GROUP parameter"); return; } if (model[0] == 0) { config_perror("missing MODEL parameter"); return; } if (security[0] == 0) { config_perror("missing SECURITY parameter"); return; } if (strcasecmp(model, "v1") == 0) imodel = SNMP_SEC_MODEL_SNMPv1; else if (strcasecmp(model, "v2c") == 0) imodel = SNMP_SEC_MODEL_SNMPv2c; else if (strcasecmp(model, "any") == 0) { config_perror ("bad security model \"any\" should be: v1, v2c, usm or a registered security plugin name - installing anyway"); imodel = SNMP_SEC_MODEL_ANY; } else { if ((imodel = se_find_value_in_slist("snmp_secmods", model)) == SE_DNE) { config_perror ("bad security model, should be: v1, v2c or usm or a registered security plugin name"); return; } } if (strlen(security) + 1 > sizeof(gp->groupName)) { config_perror("security name too long"); return; } gp = vacm_createGroupEntry(imodel, security); if (!gp) { config_perror("failed to create group entry"); return; } strncpy(gp->groupName, group, sizeof(gp->groupName)); gp->groupName[ sizeof(gp->groupName)-1 ] = 0; gp->storageType = SNMP_STORAGE_PERMANENT; gp->status = SNMP_ROW_ACTIVE; free(gp->reserved); gp->reserved = NULL; }
void vacm_parse_group (char *token, char *param) { char *group, *model, *security; int imodel; struct vacm_groupEntry *gp = NULL; group = strtok (param, " \t\n"); model = strtok (NULL, " \t\n"); security = strtok (NULL, " \t\n"); if (group == NULL || *group == 0) { config_perror("missing GROUP parameter"); return; } if (model == NULL || *model == 0) { config_perror("missing MODEL parameter"); return; } if (security == NULL || *security == 0) { config_perror("missing SECURITY parameter"); return; } if (strcasecmp(model, "any") == 0) imodel = SNMP_SEC_MODEL_ANY; else if (strcasecmp(model, "v1") == 0) imodel = SNMP_SEC_MODEL_SNMPv1; else if (strcasecmp(model, "v2c") == 0) imodel = SNMP_SEC_MODEL_SNMPv2c; else if (strcasecmp(model, "v2p") == 0) imodel = SNMP_SEC_MODEL_SNMPv2p; else if (strcasecmp(model, "usm") == 0) imodel = SNMP_SEC_MODEL_USM; else { config_perror("bad security model"); return; } gp = vacm_createGroupEntry(imodel, security); strcpy (gp->groupName, group); gp->storageType = SNMP_STORAGE_PERMANENT; gp->status = SNMP_ROW_ACTIVE; free (gp->reserved); gp->reserved = NULL; }