]>
Commit | Line | Data |
---|---|---|
18f8bd28 CP |
1 | /* |
2 | nterfacer relay4 | |
3 | Copyright (C) 2004 Chris Porter. | |
4 | */ | |
5 | ||
6 | #ifndef __nterfacer_relay_H | |
7 | #define __nterfacer_relay_H | |
8 | ||
9 | #include <pcre.h> | |
10 | ||
11 | #include "../lib/sstring.h" | |
12 | #include "../localuser/localuserchannel.h" | |
13 | #include "nterfacer.h" | |
14 | ||
15 | #define MESSAGE_TIMEOUT 10 | |
16 | ||
17 | #define RELAY_PARSE_ERROR 0x01 | |
18 | #define RELAY_NICK_NOT_FOUND 0x02 | |
19 | #define RELAY_MEMORY_ERROR 0x03 | |
20 | #define RELAY_UNLOADED 0x04 | |
21 | #define RELAY_KILLED 0x05 | |
22 | #define RELAY_OVER_BUFFER 0x06 /* deprecated, use BF_OVER instead */ | |
23 | #define RELAY_NICK_ERROR 0x07 | |
24 | #define RELAY_TIMEOUT 0x08 | |
25 | #define RELAY_TARGET_LEFT 0x09 | |
26 | #define RELAY_O_AUTH_ERROR 0x0A | |
27 | #define RELAY_REGEX_ERROR 0x0B | |
28 | #define RELAY_REGEX_HINT_ERROR 0x0C | |
29 | #define RELAY_NOT_ON_IRC 0x0D | |
30 | #define RELAY_DISCONNECTED 0x0E | |
16d29ce2 CP |
31 | #define RELAY_SERVER_NOT_FOUND 0x0F |
32 | #define RELAY_INVALID_COMMAND 0x10 | |
33 | #define RELAY_INVALID_CHARS 0x11 | |
6bc02131 | 34 | #define RELAY_LOCAL_USER 0x12 |
18f8bd28 CP |
35 | |
36 | #define MODE_TAG 0x01 | |
37 | #define MODE_LINES 0x02 | |
38 | #define MODE_IS_O 0x04 | |
39 | #define MODE_O_AUTH1 0x08 | |
40 | #define MODE_O_AUTH2 0x10 | |
16d29ce2 | 41 | #define MODE_STATS 0x20 |
18f8bd28 CP |
42 | |
43 | #define PCRE_FLAGS PCRE_CASELESS | PCRE_ANCHORED | |
44 | ||
c5c119a6 CP |
45 | #define DEFAULT_NICK_PREFIX "nterfacer" |
46 | ||
18f8bd28 CP |
47 | #define dispose_rld(a) dispose_rld_dontquit(a, 0) |
48 | ||
49 | typedef struct regex { | |
50 | pcre *phrase; | |
51 | pcre_extra *hint; | |
52 | } regex; | |
53 | ||
54 | typedef struct rld { | |
55 | short mode; | |
56 | union { | |
57 | int remaining_lines; | |
58 | regex pcre; | |
59 | } termination; | |
60 | struct rline *rline; | |
61 | nick *nick; | |
62 | nick *dest; | |
63 | struct rld *next; | |
64 | void *schedule; | |
65 | } rld; | |
66 | ||
67 | struct rld *list = NULL; | |
68 | ||
69 | int relay_handler(struct rline *ri, int argc, char **argv); | |
70 | void relay_messages(nick *target, int messagetype, void **args); | |
71 | void dispose_rld_prev(struct rld *item, struct rld *prev); | |
72 | void dispose_rld_dontquit(struct rld *item, int dontquit); | |
73 | void relay_timeout(void *arg); | |
74 | void relay_quits(int hook, void *args); | |
75 | void relay_disconnect(int hook, void *args); | |
76 | void relay_rehash(int hook, void *args); | |
77 | int load_config(void); | |
78 | ||
79 | #endif |