966031afc857df971c58fe0ffa6c380f330d1e2d
[sip-router] / route.h
1 /*
2  * $Id$
3  */
4
5 #ifndef route_h
6 #define route_h
7
8 #include <sys/types.h>
9 #include <regex.h>
10 #include <netdb.h>
11
12 #include "config.h"
13 #include "error.h"
14 #include "route_struct.h"
15 #include "msg_parser.h"
16
17 /*#include "cfg_parser.h" */
18
19
20
21 struct route_elem{
22         struct route_elem* next;
23
24         struct expr* condition;
25         struct action* actions;
26
27         int ok; /* set to 0 if an error was found sendig a pkt*/
28         /*counters*/
29         int errors;
30         int tx;
31         int tx_bytes;
32 };
33
34 /* main "routing table" */
35 extern struct route_elem* rlist[RT_NO];
36
37
38 void free_re(struct route_elem* re);
39 struct route_elem* init_re();
40 void push(struct route_elem* re, struct route_elem** head);
41 void clear_rlist(struct route_elem** rl);
42 int add_rule(struct expr* e, struct action* a, struct route_elem** head);
43 struct route_elem* route_match(struct sip_msg* msg,struct route_elem** rl);
44 void print_rl();
45
46
47
48
49
50 #endif