diff options
Diffstat (limited to '')
-rw-r--r-- | general_network.c | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/general_network.c b/general_network.c index 63d3d7d..9da36ce 100644 --- a/general_network.c +++ b/general_network.c @@ -27,11 +27,60 @@ // OTHER DEALINGS IN THE SOFTWARE. #include <string.h> +#include <limits.h> #include "network.h" #include "tls.h" #include "config.h" +char channel_mode_types[UCHAR_MAX] = { + ['v'] = MODE_TYPE_USERS, + ['h'] = MODE_TYPE_USERS, + ['o'] = MODE_TYPE_USERS, + ['a'] = MODE_TYPE_USERS, + ['q'] = MODE_TYPE_USERS, + ['b'] = MODE_TYPE_MULTIPLE, + ['e'] = MODE_TYPE_MULTIPLE, + ['I'] = MODE_TYPE_MULTIPLE, + ['c'] = MODE_TYPE_NOARGS, + ['d'] = MODE_TYPE_REPLACE, + ['f'] = MODE_TYPE_REPLACE, + ['g'] = MODE_TYPE_MULTIPLE, + ['i'] = MODE_TYPE_NOARGS, + ['j'] = MODE_TYPE_REPLACE, + ['k'] = MODE_TYPE_REPLACE, + ['l'] = MODE_TYPE_REPLACE, + ['m'] = MODE_TYPE_NOARGS, + ['n'] = MODE_TYPE_NOARGS, + ['p'] = MODE_TYPE_NOARGS, + ['r'] = MODE_TYPE_NOARGS, + ['s'] = MODE_TYPE_NOARGS, + ['t'] = MODE_TYPE_NOARGS, + ['u'] = MODE_TYPE_NOARGS, + ['w'] = MODE_TYPE_MULTIPLE, + ['z'] = MODE_TYPE_NOARGS, + ['A'] = MODE_TYPE_NOARGS, + ['B'] = MODE_TYPE_NOARGS, + ['C'] = MODE_TYPE_NOARGS, + ['D'] = MODE_TYPE_NOARGS, + ['E'] = MODE_TYPE_REPLACE, + ['F'] = MODE_TYPE_REPLACE, + ['G'] = MODE_TYPE_NOARGS, + ['H'] = MODE_TYPE_REPLACE, + ['J'] = MODE_TYPE_REPLACE, + ['K'] = MODE_TYPE_NOARGS, + ['L'] = MODE_TYPE_REPLACE, + ['M'] = MODE_TYPE_NOARGS, + ['N'] = MODE_TYPE_NOARGS, + ['O'] = MODE_TYPE_NOARGS, + ['P'] = MODE_TYPE_NOARGS, + ['Q'] = MODE_TYPE_NOARGS, + ['R'] = MODE_TYPE_NOARGS, + ['S'] = MODE_TYPE_NOARGS, + ['T'] = MODE_TYPE_NOARGS, + ['X'] = MODE_TYPE_MULTIPLE, +}; + int PRIVMSG(struct string source, struct string target, struct string message) { if (!(target.len == 9 && memcmp(target.data, "1HC000001", 9) == 0)) { // if not sending to our one local user if (source.len != 0) { |