route.h
512dcd98
 /*
  * $Id$
  */
 
 #ifndef route_h
 #define route_h
 
 #include <sys/types.h>
 #include <regex.h>
 #include <netdb.h>
 
 #include "cfg_parser.h"
 
 #define E_OUT_OF_MEM  -2
 #define E_BAD_RE      -3
 #define E_BAD_ADDRESS -4
 
 struct route_elem{
 	struct route_elem* next;
 	regex_t method;
 	regex_t uri;
 	struct hostent host;
 	int current_addr_idx;
 	int ok; /* set to 0 if an error was found sendig a pkt*/
 	/*counters*/
 	int errors;
 	int tx;
 	int tx_bytes;
 };
 
 /* main "routing table" */
 extern struct route_elem* rlist;
 
 
 void free_re(struct route_elem* re);
 struct route_elem* init_re();
 void push(struct route_elem* re, struct route_elem** head);
 void clear_rlist(struct route_elem** rl);
 int add_rule(struct cfg_line* cl, struct route_elem** head);
 struct route_elem* route_match(char* method, char* uri, struct route_elem** rl);void print_rl();
 
 
 
 
 
 #endif