| NET_DIRECTION = enum("SERVER", "CLIENT")␊ |
| FIREWALL_ACTION = enum("ACCEPT", "DROP", "REJECT")␊ |
| NET_SOURCE = enum("ADDRESS", "GROUP")␊ |
| TYPES = enum("GROUP", "ADDR", "PROTO")␊ |
| TYPES = enum("GROUP", "ADDR", "PROTO", "WILDCARD")␊ |
| ␊ |
| class RuleStruct(Struct):␊ |
| direction = None␊ |
|
| returnlst.extend(getIPsInGroup(i.value))␊ |
| elif i.object_type == TYPES.ADDR:␊ |
| returnlst.append(object_defs[i.value])␊ |
| elif i.object_type == TYPES.WILDCARD:␊ |
| for obj in object_defs.iterkeys():␊ |
| if obj.startswith(i.value):␊ |
| returnlst.append(object_defs[obj])␊ |
| return returnlst␊ |
| ␊ |
| try:␊ |
|
| if CURRENT_STATE == PARSER_STATES.GLOBAL:␊ |
| object_defs[parts[1]] = parts[2]␊ |
| elif CURRENT_STATE == PARSER_STATES.GROUP_DEF:␊ |
| group_defs[current_group].append(ObjectType(object_type=TYPES.ADDR, value=parts[1])) # initilize the dct on group entry...␊ |
| if parts[1][len(parts[1]) - 1] == "+":␊ |
| group_defs[current_group].append(ObjectType(object_type=TYPES.WILDCARD, value=parts[1].strip("+"))) # initilize the dct on group entry...␊ |
| else:␊ |
| group_defs[current_group].append(ObjectType(object_type=TYPES.ADDR, value=parts[1])) # initilize the dct on group entry...␊ |
| elif parts[0] == "group":␊ |
| if CURRENT_STATE == PARSER_STATES.GROUP_DEF:␊ |
| group_defs[current_group].append(ObjectType(object_type=TYPES.GROUP, value=parts[1]))␊ |
|
| if parts[1] == "group":␊ |
| source = ObjectType(object_type=TYPES.GROUP, value=parts[2])␊ |
| elif parts[1] == "object":␊ |
| source = ObjectType(object_type=TYPES.ADDR, value=parts[2])␊ |
| if parts[2][len(parts[2]) - 1] == "+":␊ |
| source = ObjectType(object_type=TYPES.WILDCARD, value=parts[2].strip("+"))␊ |
| else:␊ |
| source = ObjectType(object_type=TYPES.ADDR, value=parts[2])␊ |
| elif parts[1] == "proto":␊ |
| source = ObjectType(object_type=TYPES.PROTO, value=parts[2])␊ |
| if CURRENT_STATE == PARSER_STATES.GLOBAL:␊ |