rendered paste body#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 *);