]> jfr.im git - irc/quakenet/newserv.git/blame - nterface/nterfacer_relay.h
Add jupe support
[irc/quakenet/newserv.git] / nterface / nterfacer_relay.h
CommitLineData
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
49typedef struct regex {
50 pcre *phrase;
51 pcre_extra *hint;
52} regex;
53
54typedef 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
67struct rld *list = NULL;
68
69int relay_handler(struct rline *ri, int argc, char **argv);
70void relay_messages(nick *target, int messagetype, void **args);
71void dispose_rld_prev(struct rld *item, struct rld *prev);
72void dispose_rld_dontquit(struct rld *item, int dontquit);
73void relay_timeout(void *arg);
74void relay_quits(int hook, void *args);
75void relay_disconnect(int hook, void *args);
76void relay_rehash(int hook, void *args);
77int load_config(void);
78
79#endif