void vacm_parse_config_group (const char *token, const 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_const (line); group.storageType = atoi (line); line = skip_token_const (line); group.securityModel = atoi (line); line = skip_token_const (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_config_view(const char *token, const char *line) { struct vacm_viewEntry view; struct vacm_viewEntry *vptr; char *viewName = (char *) &view.viewName; oid *viewSubtree = (oid *) & view.viewSubtree; u_char *viewMask; size_t len; view.viewStatus = atoi(line); line = skip_token_const(line); view.viewStorageType = atoi(line); line = skip_token_const(line); view.viewType = atoi(line); line = skip_token_const(line); len = sizeof(view.viewName); line = read_config_read_octet_string(line, (u_char **) & viewName, &len); view.viewSubtreeLen = MAX_OID_LEN; line = read_config_read_objid_const(line, (oid **) & viewSubtree, &view.viewSubtreeLen); vptr = vacm_createViewEntry(view.viewName, view.viewSubtree, view.viewSubtreeLen); if (!vptr) { return; } vptr->viewStatus = view.viewStatus; vptr->viewStorageType = view.viewStorageType; vptr->viewType = view.viewType; viewMask = vptr->viewMask; vptr->viewMaskLen = sizeof(vptr->viewMask); line = read_config_read_octet_string(line, &viewMask, &vptr->viewMaskLen); }
char *_vacm_parse_config_access_common (struct vacm_accessEntry **aptr, const char *line) { struct vacm_accessEntry access; char *cPrefix = (char *) &access.contextPrefix; char *gName = (char *) &access.groupName; size_t len; access.status = atoi (line); line = skip_token_const (line); access.storageType = atoi (line); line = skip_token_const (line); access.securityModel = atoi (line); line = skip_token_const (line); access.securityLevel = atoi (line); line = skip_token_const (line); access.contextMatch = atoi (line); line = skip_token_const (line); len = sizeof (access.groupName); line = read_config_read_octet_string (line, (u_char **) & gName, &len); len = sizeof (access.contextPrefix); line = read_config_read_octet_string (line, (u_char **) & cPrefix, &len); *aptr = vacm_getAccessEntry (access.groupName, access.contextPrefix, access.securityModel, access.securityLevel); if (!*aptr) *aptr = vacm_createAccessEntry (access.groupName, access.contextPrefix, access.securityModel, access.securityLevel); if (!*aptr) return NULL; (*aptr)->status = access.status; (*aptr)->storageType = access.storageType; (*aptr)->securityModel = access.securityModel; (*aptr)->securityLevel = access.securityLevel; (*aptr)->contextMatch = access.contextMatch; return NETSNMP_REMOVE_CONST (char *, line); }
void vacm_parse_config_auth_access (const char *token, const char *line) { struct vacm_accessEntry *aptr; int authtype; char *view; size_t len; line = _vacm_parse_config_access_common (&aptr, line); if (!line) return; authtype = atoi (line); line = skip_token_const (line); view = (char *) aptr->views[authtype]; len = sizeof (aptr->views[authtype]); line = read_config_read_octet_string (line, (u_char **) & view, &len); }