#define ILLEGAL_FILE_NAME 'F' #define ILLEGAL_IP_ADDRESS 'I' #define ILLEGAL_UID 'U' #define ILLEGAL_PORT 'P' #define ILLEGAL_PROGRAM 'R' #define OK '\0' struct ElementList { char *element; struct ElementList *next; }; struct ConfigLine { struct ElementList *uids; struct ElementList *programs; struct ElementList *IPAddresses; struct ElementList *ports; }; struct ConfigEntry { char *uid; char *program; char *IPAddress; int port; }; struct FirewallConfig { struct ConfigEntry *entry; struct FirewallConfig *left; struct FirewallConfig *right; }; extern int compareEntry (struct ConfigEntry *, struct ConfigEntry *); extern struct ConfigLine *parseLine (char *, int *);