Anope IRC Services  Version 1.8
rageircd.c
Go to the documentation of this file.
1 /* Rage IRCD functions
2  *
3  * (C) 2003-2014 Anope Team
4  * Contact us at team@anope.org
5  *
6  * Please read COPYING and README for further details.
7  *
8  * Based on the original code of Epona by Lara.
9  * Based on the original code of Services by Andy Church.
10  *
11  *
12  */
13 
14 #include "services.h"
15 #include "pseudo.h"
16 #include "rageircd.h"
17 #include "version.h"
18 
20  {"RageIRCd 2.0.*", /* ircd name */
21  "+d", /* nickserv mode */
22  "+d", /* chanserv mode */
23  "+d", /* memoserv mode */
24  "+d", /* hostserv mode */
25  "+di", /* operserv mode */
26  "+d", /* botserv mode */
27  "+dh", /* helpserv mode */
28  "+di", /* Dev/Null mode */
29  "+di", /* Global mode */
30  "+o", /* nickserv alias mode */
31  "+o", /* chanserv alias mode */
32  "+o", /* memoserv alias mode */
33  "+io", /* hostserv alias mode */
34  "+io", /* operserv alias mode */
35  "+o", /* botserv alias mode */
36  "+o", /* helpserv alias mode */
37  "+i", /* Dev/Null alias mode */
38  "+io", /* Global alias mode */
39  "+", /* Used by BotServ Bots */
40  3, /* Chan Max Symbols */
41  "-ilmnpRstcOACNM", /* Modes to Remove */
42  "+o", /* Channel Umode used by Botserv bots */
43  1, /* SVSNICK */
44  1, /* Vhost */
45  0, /* Has Owner */
46  NULL, /* Mode to set for an owner */
47  NULL, /* Mode to unset for an owner */
48  "+a", /* Mode to set for channel admin */
49  "-a", /* Mode to unset for channel admin */
50  "+rd", /* Mode On Reg */
51  NULL, /* Mode on ID for Roots */
52  NULL, /* Mode on ID for Admins */
53  NULL, /* Mode on ID for Opers */
54  "-rd", /* Mode on UnReg */
55  "-r+d", /* Mode on Nick Change */
56  1, /* Supports SGlines */
57  1, /* Supports SQlines */
58  0, /* Supports SZlines */
59  1, /* Supports Halfop +h */
60  3, /* Number of server args */
61  0, /* Join 2 Set */
62  0, /* Join 2 Message */
63  1, /* Has exceptions +e */
64  0, /* TS Topic Forward */
65  0, /* TS Topic Backward */
66  0, /* Protected Umode */
67  1, /* Has Admin */
68  1, /* Chan SQlines */
69  1, /* Quit on Kill */
70  0, /* SVSMODE unban */
71  0, /* Has Protect */
72  0, /* Reverse */
73  1, /* Chan Reg */
74  CMODE_r, /* Channel Mode */
75  0, /* vidents */
76  1, /* svshold */
77  1, /* time stamp on mode */
78  1, /* NICKIP */
79  0, /* O:LINE */
80  1, /* UMODE */
81  1, /* VHOST ON NICK */
82  0, /* Change RealName */
83  CMODE_p, /* No Knock */
84  CMODE_A, /* Admin Only */
85  DEFAULT_MLOCK, /* Default MLOCK */
86  UMODE_x, /* Vhost Mode */
87  0, /* +f */
88  0, /* +L */
89  0,
90  0,
91  1,
92  0, /* No Knock requires +i */
93  NULL, /* CAPAB Chan Modes */
94  0, /* We support TOKENS */
95  1, /* TOKENS are CASE inSensitive */
96  0, /* TIME STAMPS are BASE64 */
97  1, /* +I support */
98  0, /* SJOIN ban char */
99  0, /* SJOIN except char */
100  0, /* SJOIN invite char */
101  0, /* Can remove User Channel Modes with SVSMODE */
102  0, /* Sglines are not enforced until user reconnects */
103  "x", /* vhost char */
104  0, /* ts6 */
105  1, /* support helper umode */
106  0, /* p10 */
107  NULL, /* character set */
108  1, /* reports sync state */
109  0, /* CIDR channelbans */
110  0, /* +j */
111  0, /* +j mode */
112  0, /* Use delayed client introduction. */
113  }
114  ,
115  {NULL}
116 };
117 
119  {
120  CAPAB_NOQUIT, /* NOQUIT */
121  CAPAB_TSMODE, /* TSMODE */
122  CAPAB_UNCONNECT, /* UNCONNECT */
123  0, /* NICKIP */
124  0, /* SJOIN */
125  CAPAB_ZIP, /* ZIP */
126  CAPAB_BURST, /* BURST */
127  0, /* TS5 */
128  0, /* TS3 */
129  CAPAB_DKEY, /* DKEY */
130  0, /* PT4 */
131  0, /* SCS */
132  0, /* QS */
133  CAPAB_UID, /* UID */
134  0, /* KNOCK */
135  0, /* CLIENT */
136  0, /* IPV6 */
137  0, /* SSJ5 */
138  CAPAB_SN2, /* SN2 */
139  CAPAB_TOKEN, /* TOKEN */
140  CAPAB_VHOST, /* VHOST */
141  CAPAB_SSJ3, /* SSJ3 */
142  0, /* NICK2 */
143  0, /* UMODE2 */
144  0, /* VL */
145  0, /* TLKEXT */
146  0, /* DODKEY */
147  0, /* DOZIP */
148  0, 0, 0}
149 };
150 
151 
152 unsigned long umodes[128] = {
153  0, 0, 0, /* Unused */
154  0, 0, 0, /* Unused */
155  0, 0, 0, /* Unused, Unused, Horzontal Tab */
156  0, 0, 0, /* Line Feed, Unused, Unused */
157  0, 0, 0, /* Carriage Return, Unused, Unused */
158  0, 0, 0, /* Unused */
159  0, 0, 0, /* Unused */
160  0, 0, 0, /* Unused */
161  0, 0, 0, /* Unused */
162  0, 0, 0, /* Unused */
163  0, 0, 0, /* Unused, Unused, Space */
164  0, 0, 0, /* ! " # */
165  0, 0, 0, /* $ % & */
166  0, 0, 0, /* ! ( ) */
167  0, 0, 0, /* * + , */
168  0, 0, 0, /* - . / */
169  0, 0, /* 0 1 */
170  0, 0, /* 2 3 */
171  0, 0, /* 4 5 */
172  0, 0, /* 6 7 */
173  0, 0, /* 8 9 */
174  0, 0, /* : ; */
175  0, 0, 0, /* < = > */
176  0, 0, /* ? @ */
177  UMODE_A, 0, 0, /* A B C */
178  0, 0, 0, /* D E F */
179  0, 0, 0, /* G H I */
180  0, 0, 0, /* J K L */
181  0, 0, 0, /* M N O */
182  0, 0, UMODE_R, /* P Q R */
183  0, 0, 0, /* S T U */
184  0, 0, 0, /* V W X */
185  0, /* Y */
186  0, /* Z */
187  0, 0, 0, /* [ \ ] */
188  0, 0, 0, /* ^ _ ` */
189  UMODE_a, 0, 0, /* a b c */
190  0, 0, 0, /* d e f */
191  0, UMODE_h, UMODE_i, /* g h i */
192  0, 0, 0, /* j k l */
193  0, 0, UMODE_o, /* m n o */
194  0, 0, UMODE_r, /* p q r */
195  0, 0, 0, /* s t u */
196  0, UMODE_w, 0, /* v w x */
197  0, /* y */
198  0, /* z */
199  0, 0, 0, /* { | } */
200  0, 0 /* ~ � */
201 };
202 
203 char myCsmodes[128] = {
204  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
205  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
206 
207  0,
208  0,
209  0, 0, 0,
210  'h', /* (37) % Channel halfops */
211  0, 0, 0, 0,
212  'a', /* * Channel Admins */
213 
214  'v', 0, 0, 0, 0,
215  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
216 
217  'o', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
218  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
219 
220  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
221  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
222 };
223 
224 
226  {NULL}, {NULL}, {NULL},
227  {NULL}, {NULL}, {NULL},
228  {NULL}, {NULL}, {NULL},
229  {NULL}, {NULL}, {NULL},
230  {NULL}, {NULL}, {NULL},
231  {NULL}, {NULL}, {NULL},
232  {NULL}, {NULL}, {NULL},
233  {NULL}, {NULL}, {NULL},
234  {NULL}, {NULL}, {NULL},
235  {NULL}, {NULL}, {NULL},
236  {NULL}, {NULL}, {NULL},
237  {NULL}, {NULL}, {NULL},
238  {NULL}, {NULL}, {NULL},
239  {NULL}, {NULL}, {NULL},
240  {NULL}, {NULL}, {NULL},
241  {NULL}, {NULL}, {NULL},
242  {NULL}, {NULL}, {NULL},
243  {NULL}, {NULL}, {NULL},
244  {NULL}, {NULL}, {NULL},
245  {NULL}, {NULL}, {NULL},
246  {NULL}, {NULL}, {NULL},
247  {NULL}, {NULL}, {NULL},
248  {NULL}, {NULL}, {NULL}, /* BCD */
249  {NULL}, {NULL}, {NULL}, /* EFG */
250  {NULL}, /* H */
252  {NULL}, /* J */
253  {NULL}, {NULL}, {NULL}, /* KLM */
254  {NULL}, {NULL}, {NULL}, /* NOP */
255  {NULL}, {NULL}, {NULL}, /* QRS */
256  {NULL}, {NULL}, {NULL}, /* TUV */
257  {NULL}, {NULL}, {NULL}, /* WXY */
258  {NULL}, /* Z */
259  {NULL}, {NULL}, /* (char 91 - 92) */
260  {NULL}, {NULL}, {NULL}, /* (char 93 - 95) */
261  {NULL}, /* ` (char 96) */
262  {NULL}, /* a (char 97) */
263  {add_ban, del_ban},
264  {NULL},
265  {NULL},
267  {NULL},
268  {NULL},
269  {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
270  {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
271  {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}
272 };
273 
274 
276  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
277  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
278  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
279  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
280  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
281  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
282  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
283  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
284  {0},
285  {CMODE_A, CBM_NO_USER_MLOCK, NULL, NULL},
286  {0}, /* B */
287  {CMODE_C, 0, NULL, NULL},
288  {0}, /* D */
289  {0}, /* E */
290  {0}, /* F */
291  {0}, /* G */
292  {0}, /* H */
293  {0}, /* I */
294  {0}, /* J */
295  {0}, /* K */
296  {0}, /* L */
297  {CMODE_M, 0, NULL, NULL}, /* M */
298  {CMODE_N, 0, NULL, NULL}, /* N */
299  {CMODE_O, CBM_NO_USER_MLOCK, NULL, NULL},
300  {0}, /* P */
301  {0}, /* Q */
302  {CMODE_R, 0, NULL, NULL}, /* R */
303  {CMODE_S, 0, NULL, NULL}, /* S */
304  {0}, /* T */
305  {0}, /* U */
306  {0}, /* V */
307  {0}, /* W */
308  {0}, /* X */
309  {0}, /* Y */
310  {0}, /* Z */
311  {0}, {0}, {0}, {0}, {0}, {0},
312  {0}, /* a */
313  {0}, /* b */
314  {CMODE_c, 0, NULL, NULL},
315  {0}, /* d */
316  {0}, /* e */
317  {0}, /* f */
318  {0}, /* g */
319  {0}, /* h */
320  {CMODE_i, 0, NULL, NULL},
321  {0}, /* j */
324  {CMODE_m, 0, NULL, NULL},
325  {CMODE_n, 0, NULL, NULL},
326  {0}, /* o */
327  {CMODE_p, 0, NULL, NULL},
328  {0}, /* q */
329  {CMODE_r, CBM_NO_MLOCK, NULL, NULL},
330  {CMODE_s, 0, NULL, NULL},
331  {CMODE_t, 0, NULL, NULL},
332  {0},
333  {0}, /* v */
334  {0}, /* w */
335  {0}, /* x */
336  {0}, /* y */
337  {0}, /* z */
338  {0}, {0}, {0}, {0}
339 };
340 
342  {'c', CMODE_c, 0, NULL, NULL},
343  {'i', CMODE_i, 0, NULL, NULL},
344  {'k', CMODE_k, 0, get_key, cs_get_key},
346  {'m', CMODE_m, 0, NULL, NULL},
347  {'n', CMODE_n, 0, NULL, NULL},
348  {'p', CMODE_p, 0, NULL, NULL},
349  {'r', CMODE_r, 0, NULL, NULL},
350  {'s', CMODE_s, 0, NULL, NULL},
351  {'t', CMODE_t, 0, NULL, NULL},
352  {'A', CMODE_A, 0, NULL, NULL},
353  {'C', CMODE_C, 0, NULL, NULL},
354  {'M', CMODE_M, 0, NULL, NULL},
355  {'N', CMODE_N, 0, NULL, NULL},
356  {'O', CMODE_O, 0, NULL, NULL},
357  {'R', CMODE_R, 0, NULL, NULL},
358  {0}
359 };
360 
362  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
363  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
364  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
365  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
366 
367  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
368  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
369  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
370  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
371 
372  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
373  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
374  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
375  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
376 
377  {0},
379  {0}, /* b */
380  {0}, /* c */
381  {0}, /* d */
382  {0}, /* e */
383  {0}, /* f */
384  {0}, /* g */
386  {0}, /* i */
387  {0}, /* j */
388  {0}, /* k */
389  {0}, /* l */
390  {0}, /* m */
391  {0}, /* n */
393  {0}, /* p */
394  {0}, /* q */
395  {0}, /* r */
396  {0}, /* s */
397  {0}, /* t */
398  {0}, /* u */
399  {CUS_VOICE, 0, NULL},
400  {0}, /* w */
401  {0}, /* x */
402  {0}, /* y */
403  {0}, /* z */
404  {0}, {0}, {0}, {0}, {0}
405 };
406 
407 
408 
409 void rageircd_cmd_bot_unban(ChannelInfo * ci, char *nick)
410 {
411  send_cmd(ServerName, "SVSMODE %s -b %s", ci->name, nick);
412 }
413 
414 int anope_event_sjoin(char *source, int ac, char **av)
415 {
416  do_sjoin(source, ac, av);
417  return MOD_CONT;
418 }
419 
420 int anope_event_nick(char *source, int ac, char **av)
421 {
422  User *user;
423 
424  if (ac != 2) {
425  user = do_nick(source, av[0], av[4], av[5], av[6], av[9],
426  strtoul(av[2], NULL, 10), strtoul(av[7], NULL, 0),
427  strtoul(av[8], NULL, 0), "*", NULL);
428  if (user)
429  anope_set_umode(user, 1, &av[3]);
430  } else {
431  do_nick(source, av[0], NULL, NULL, NULL, NULL,
432  strtoul(av[1], NULL, 10), 0, 0, NULL, NULL);
433  }
434  return MOD_CONT;
435 }
436 
437 /* Event: PROTOCTL */
438 int anope_event_capab(char *source, int ac, char **av)
439 {
440  capab_parse(ac, av);
441  return MOD_CONT;
442 }
443 
444 int anope_event_vhost(char *source, int ac, char **av)
445 {
446  User *u;
447 
448  if (ac != 2)
449  return MOD_CONT;
450 
451  u = finduser(av[0]);
452  if (!u) {
453  if (debug) {
454  alog("debug: VHOST for nonexistent user %s", av[0]);
455  }
456  return MOD_CONT;
457  }
458 
459  change_user_host(u, av[1]);
460  return MOD_CONT;
461 }
462 
463 /*
464 ** SNICK
465 ** source = NULL
466 ** parv[0] = nickname Trystan
467 ** parv[1] = timestamp 1090113640
468 ** parv[2] = hops 1
469 ** parv[3] = username Trystan
470 ** parv[4] = host c-24-2-101-227.client.comcast.net
471 ** parv[5] = IP 402810339
472 ** parv[6] = vhost mynet-27CCA80D.client.comcast.net
473 ** parv[7] = server rage2.nomadirc.net
474 ** parv[8] = servicestamp 0
475 ** parv[9] = modes +ix
476 ** parv[10] = info Dreams are answers to questions not yet asked
477 */
478 
479 int anope_event_snick(char *source, int ac, char **av)
480 {
481  User *user;
482 
483  if (ac != 2) {
484  user = do_nick(source, av[0], av[3], av[4], av[7], av[10],
485  strtoul(av[1], NULL, 10), strtoul(av[8], NULL, 0),
486  strtoul(av[5], NULL, 0), av[6], NULL);
487  if (user) {
488  anope_set_umode(user, 1, &av[9]);
489  }
490  }
491  return MOD_CONT;
492 }
493 
494 int anope_event_436(char *source, int ac, char **av)
495 {
496  if (ac < 1)
497  return MOD_CONT;
498 
499  m_nickcoll(av[0]);
500  return MOD_CONT;
501 }
502 
503 
504 /* *INDENT-OFF* */
505 void moduleAddIRCDMsgs(void) {
506  Message *m;
507 
508  updateProtectDetails("ADMIN","ADMINME","admin","deadmin","AUTOADMIN","+a","-a");
509 
545  m = createMessage("UNSQLINE", anope_event_null); addCoreMessage(IRCD,m);
558  m = createMessage("UNSGLINE", anope_event_null); addCoreMessage(IRCD,m);
559  m = createMessage("UNSZLINE", anope_event_null); addCoreMessage(IRCD,m);
569 }
570 
571 /* *INDENT-ON* */
572 int anope_event_error(char *source, int ac, char **av)
573 {
574  if (ac >= 1) {
575  if (debug) {
576  alog("debug: %s", av[0]);
577  }
578  }
579  return MOD_CONT;
580 }
581 
582 
583 int anope_event_burst(char *source, int ac, char **av)
584 {
585  Server *s;
586  s = findserver(servlist, source);
587  if (ac > 1) {
588  /* for future use - start burst */
589 } else {
590 
591  /* If we found a server with the given source, that one just
592  * finished bursting. If there was no source, then our uplink
593  * server finished bursting. -GD
594  */
595  if (!s && serv_uplink)
596  s = serv_uplink;
597  finish_sync(s, 1);
598 }
599 
600 return MOD_CONT;
601 }
602 
603 void rageircd_cmd_sqline(char *mask, char *reason)
604 {
605  if (!mask || !reason) {
606  return;
607  }
608 
609  send_cmd(NULL, "SQLINE %s :%s", mask, reason);
610 }
611 
612 void rageircd_cmd_unsgline(char *mask)
613 {
614  send_cmd(NULL, "UNSGLINE 0 :%s", mask);
615 }
616 
617 void rageircd_cmd_unszline(char *mask)
618 {
619  send_cmd(NULL, "UNSZLINE 0 %s", mask);
620 }
621 
622 void rageircd_cmd_szline(char *mask, char *reason, char *whom)
623 {
624  send_cmd(NULL, "SZLINE %s :%s", mask, reason);
625 }
626 
627 void rageircd_cmd_svsnoop(char *server, int set)
628 {
629  send_cmd(NULL, "SVSNOOP %s %s", server, (set ? "+" : "-"));
630 }
631 
632 void rageircd_cmd_svsadmin(char *server, int set)
633 {
634  rageircd_cmd_svsnoop(server, set);
635 }
636 
637 void rageircd_cmd_sgline(char *mask, char *reason)
638 {
639  send_cmd(NULL, "SGLINE %d :%s:%s", (int)strlen(mask), mask, reason);
640 
641 }
642 
643 void rageircd_cmd_remove_akill(char *user, char *host)
644 {
645  send_cmd(NULL, "RAKILL %s %s", host, user);
646 }
647 
648 
649 /* PART */
650 void rageircd_cmd_part(char *nick, char *chan, char *buf)
651 {
652  if (!nick || !chan) {
653  return;
654  }
655 
656  if (buf) {
657  send_cmd(nick, "PART %s :%s", chan, buf);
658  } else {
659  send_cmd(nick, "PART %s", chan);
660  }
661 }
662 
663 void rageircd_cmd_topic(char *whosets, char *chan, char *whosetit,
664  char *topic, time_t when)
665 {
666  send_cmd(whosets, "TOPIC %s %s %lu :%s", chan, whosetit,
667  (unsigned long int) when, topic);
668 }
669 
671 {
672  common_svsmode(u, "-x", NULL);
673  notice_lang(s_HostServ, u, HOST_OFF_UNREAL, u->nick, ircd->vhostchar);
674 }
675 
676 void rageircd_cmd_chghost(char *nick, char *vhost)
677 {
678  if (!nick || !vhost) {
679  return;
680  }
681  send_cmd(ServerName, "VHOST %s %s", nick, vhost);
682 }
683 
684 void rageircd_cmd_vhost_on(char *nick, char *vIdent, char *vhost)
685 {
686  send_cmd(s_HostServ, "SVSMODE %s +x", nick);
687  rageircd_cmd_chghost(nick, vhost);
688 }
689 
690 void rageircd_cmd_unsqline(char *user)
691 {
692  send_cmd(NULL, "UNSQLINE %s", user);
693 }
694 
695 void rageircd_cmd_join(char *user, char *channel, time_t chantime)
696 {
697  send_cmd(user, "SJOIN %ld %s", (long int) chantime, channel);
698 }
699 
700 void rageircd_cmd_akill(char *user, char *host, char *who, time_t when,
701  time_t expires, char *reason)
702 {
703  send_cmd(NULL, "AKILL %s %s %d %s %ld :%s", host, user, 86400 * 2, who,
704  (long int) time(NULL), reason);
705 }
706 
707 void rageircd_cmd_svskill(char *source, char *user, char *buf)
708 {
709  if (!buf) {
710  return;
711  }
712 
713  if (!source || !user) {
714  return;
715  }
716 
717  send_cmd(source, "SVSKILL %s :%s", user, buf);
718 }
719 
720 void rageircd_cmd_svsmode(User * u, int ac, char **av)
721 {
722  send_cmd(ServerName, "SVSMODE %s %ld %s%s%s", u->nick,
723  (long int) u->timestamp, av[0], (ac == 2 ? " " : ""),
724  (ac == 2 ? av[1] : ""));
725 }
726 
727 void rageircd_cmd_squit(char *servname, char *message)
728 {
729  send_cmd(NULL, "SQUIT %s :%s", servname, message);
730 }
731 
732 /* PONG */
733 void rageircd_cmd_pong(char *servname, char *who)
734 {
735  send_cmd(servname, "PONG %s", who);
736 }
737 
739 {
740  send_cmd(NULL, "SVINFO 5 3 0 %ld bluemoon 0", (long int) time(NULL));
741 }
742 
744 {
745  /* CAPAB BURST UNCONNECT ZIP SSJ3 SN2 VHOST SUID TOK1 TSMODE */
746  send_cmd(NULL, "CAPAB BURST UNCONNECT SSJ3 SN2 VHOST TSMODE");
747 }
748 
749 void rageircd_cmd_server(char *servname, int hop, char *descript)
750 {
751  send_cmd(NULL, "SERVER %s %d :%s", servname, hop, descript);
752 }
753 
754 /* PASS */
755 void rageircd_cmd_pass(char *pass)
756 {
757  send_cmd(NULL, "PASS %s :TS", pass);
758 }
759 
761 {
762  send_cmd(NULL, "BURST");
763 }
764 
766 {
767  if (Numeric) {
768  me_server =
770  } else {
771  me_server =
773  }
774 
775  if (servernum == 1)
777  else if (servernum == 2)
779  else if (servernum == 3)
782  if (Numeric) {
783  send_cmd(NULL, "MYID !%s", Numeric);
784  }
788 }
789 
791 {
792  /* Not used */
793 }
794 
795 void rageircd_set_umode(User * user, int ac, char **av)
796 {
797  int add = 1; /* 1 if adding modes, 0 if deleting */
798  char *modes = av[0];
799 
800  ac--;
801 
802  if (debug)
803  alog("debug: Changing mode for %s to %s", user->nick, modes);
804 
805  while (*modes) {
806 
807  /* This looks better, much better than "add ? (do_add) : (do_remove)".
808  * At least this is readable without paying much attention :) -GD
809  */
810  if (add)
811  user->mode |= umodes[(int) *modes];
812  else
813  user->mode &= ~umodes[(int) *modes];
814 
815  switch (*modes++) {
816  case '+':
817  add = 1;
818  break;
819  case '-':
820  add = 0;
821  break;
822  case 'd':
823  if (ac == 0) {
824  alog("user: umode +d with no parameter (?) for user %s",
825  user->nick);
826  break;
827  }
828 
829  ac--;
830  av++;
831  user->svid = strtoul(*av, NULL, 0);
832  break;
833  case 'o':
834  if (add) {
835  opcnt++;
836 
837  if (WallOper)
839  "\2%s\2 is now an IRC operator.",
840  user->nick);
841  display_news(user, NEWS_OPER);
842  if (is_services_oper(user)) {
843  common_svsmode(user, "+a", NULL);
844  user->mode |= UMODE_a;
845  }
846  } else {
847  opcnt--;
848  }
849  break;
850  case 'r':
851  if (add && !nick_identified(user)) {
852  common_svsmode(user, "-r", NULL);
853  user->mode &= ~UMODE_r;
854  }
855  break;
856  case 'x':
857  update_host(user);
858  break;
859  }
860  }
861 }
862 
863 /* GLOBOPS */
864 void rageircd_cmd_global(char *source, char *buf)
865 {
866  if (!buf) {
867  return;
868  }
869 
870  send_cmd(source ? source : ServerName, "GLOBOPS :%s", buf);
871 }
872 
873 void rageircd_cmd_notice_ops(char *source, char *dest, char *buf)
874 {
875  if (!buf) {
876  return;
877  }
878 
879  send_cmd(NULL, "NOTICE @%s :%s", dest, buf);
880 }
881 
882 
883 void rageircd_cmd_notice(char *source, char *dest, char *buf)
884 {
885  if (!buf) {
886  return;
887  }
888 
889  if (NSDefFlags & NI_MSG) {
890  rageircd_cmd_privmsg2(source, dest, buf);
891  } else {
892  send_cmd(source, "NOTICE %s :%s", dest, buf);
893  }
894 }
895 
896 void rageircd_cmd_notice2(char *source, char *dest, char *msg)
897 {
898  send_cmd(source, "NOTICE %s :%s", dest, msg);
899 }
900 
901 void rageircd_cmd_privmsg(char *source, char *dest, char *buf)
902 {
903  if (!buf) {
904  return;
905  }
906 
907  send_cmd(source, "PRIVMSG %s :%s", dest, buf);
908 }
909 
910 void rageircd_cmd_privmsg2(char *source, char *dest, char *msg)
911 {
912  send_cmd(source, "PRIVMSG %s :%s", dest, msg);
913 }
914 
915 void rageircd_cmd_serv_notice(char *source, char *dest, char *msg)
916 {
917  send_cmd(source, "NOTICE $%s :%s", dest, msg);
918 }
919 
920 void rageircd_cmd_serv_privmsg(char *source, char *dest, char *msg)
921 {
922  send_cmd(source, "PRIVMSG $%s :%s", dest, msg);
923 }
924 
925 int anope_event_away(char *source, int ac, char **av)
926 {
927  if (!source) {
928  return MOD_CONT;
929  }
930  m_away(source, (ac ? av[0] : NULL));
931  return MOD_CONT;
932 }
933 
934 int anope_event_ping(char *source, int ac, char **av)
935 {
936  if (ac < 1)
937  return MOD_CONT;
938  rageircd_cmd_pong(ac > 1 ? av[1] : ServerName, av[0]);
939  return MOD_CONT;
940 }
941 
942 void rageircd_cmd_351(char *source)
943 {
944  send_cmd(ServerName, "351 %s Anope-%s %s :%s - %s (%s) -- %s",
947 }
948 
949 void rageircd_cmd_mode(char *source, char *dest, char *buf)
950 {
951  if (!buf) {
952  return;
953  }
954 
955  if (ircdcap->tsmode) {
956  if (uplink_capab & ircdcap->tsmode || UseTSMODE) {
957  send_cmd(source, "MODE %s 0 %s", dest, buf);
958  } else {
959  send_cmd(source, "MODE %s %s", dest, buf);
960  }
961  } else {
962  send_cmd(source, "MODE %s %s", dest, buf);
963  }
964 }
965 
966 
967 void rageircd_cmd_kick(char *source, char *chan, char *user, char *buf)
968 {
969  if (buf) {
970  send_cmd(source, "KICK %s %s :%s", chan, user, buf);
971  } else {
972  send_cmd(source, "KICK %s %s", chan, user);
973  }
974 }
975 
976 void rageircd_cmd_372(char *source, char *msg)
977 {
978  send_cmd(ServerName, "372 %s :- %s", source, msg);
979 }
980 
981 void rageircd_cmd_372_error(char *source)
982 {
983  send_cmd(ServerName, "422 %s :- MOTD file not found! Please "
984  "contact your IRC administrator.", source);
985 }
986 
987 void rageircd_cmd_375(char *source)
988 {
989  send_cmd(ServerName, "375 %s :- %s Message of the Day",
990  source, ServerName);
991 }
992 
993 void rageircd_cmd_376(char *source)
994 {
995  send_cmd(ServerName, "376 %s :End of /MOTD command.", source);
996 }
997 
998 /* INVITE */
999 void rageircd_cmd_invite(char *source, char *chan, char *nick)
1000 {
1001  if (!source || !chan || !nick) {
1002  return;
1003  }
1004 
1005  send_cmd(source, "INVITE %s %s", nick, chan);
1006 }
1007 
1008 /* 391 */
1009 void rageircd_cmd_391(char *source, char *timestr)
1010 {
1011  if (!timestr) {
1012  return;
1013  }
1014  send_cmd(NULL, "391 :%s %s :%s", source, ServerName, timestr);
1015 }
1016 
1017 /* 250 */
1018 void rageircd_cmd_250(char *buf)
1019 {
1020  if (!buf) {
1021  return;
1022  }
1023 
1024  send_cmd(NULL, "250 %s", buf);
1025 }
1026 
1027 /* 307 */
1028 void rageircd_cmd_307(char *buf)
1029 {
1030  if (!buf) {
1031  return;
1032  }
1033 
1034  send_cmd(ServerName, "307 %s", buf);
1035 }
1036 
1037 /* 311 */
1038 void rageircd_cmd_311(char *buf)
1039 {
1040  if (!buf) {
1041  return;
1042  }
1043 
1044  send_cmd(ServerName, "311 %s", buf);
1045 }
1046 
1047 /* 312 */
1048 void rageircd_cmd_312(char *buf)
1049 {
1050  if (!buf) {
1051  return;
1052  }
1053 
1054  send_cmd(ServerName, "312 %s", buf);
1055 }
1056 
1057 /* 317 */
1058 void rageircd_cmd_317(char *buf)
1059 {
1060  if (!buf) {
1061  return;
1062  }
1063 
1064  send_cmd(ServerName, "317 %s", buf);
1065 }
1066 
1067 /* 219 */
1068 void rageircd_cmd_219(char *source, char *letter)
1069 {
1070  if (!source) {
1071  return;
1072  }
1073 
1074  if (letter) {
1075  send_cmd(NULL, "219 %s %c :End of /STATS report.", source,
1076  *letter);
1077  } else {
1078  send_cmd(NULL, "219 %s l :End of /STATS report.", source);
1079  }
1080 }
1081 
1082 /* 401 */
1083 void rageircd_cmd_401(char *source, char *who)
1084 {
1085  if (!source || !who) {
1086  return;
1087  }
1088  send_cmd(ServerName, "401 %s %s :No such service.", source, who);
1089 }
1090 
1091 /* 318 */
1092 void rageircd_cmd_318(char *source, char *who)
1093 {
1094  if (!source || !who) {
1095  return;
1096  }
1097 
1098  send_cmd(ServerName, "318 %s %s :End of /WHOIS list.", source, who);
1099 }
1100 
1101 /* 242 */
1102 void rageircd_cmd_242(char *buf)
1103 {
1104  if (!buf) {
1105  return;
1106  }
1107 
1108  send_cmd(NULL, "242 %s", buf);
1109 }
1110 
1111 /* 243 */
1112 void rageircd_cmd_243(char *buf)
1113 {
1114  if (!buf) {
1115  return;
1116  }
1117 
1118  send_cmd(NULL, "243 %s", buf);
1119 }
1120 
1121 /* 211 */
1122 void rageircd_cmd_211(char *buf)
1123 {
1124  if (!buf) {
1125  return;
1126  }
1127 
1128  send_cmd(NULL, "211 %s", buf);
1129 }
1130 
1131 void rageircd_cmd_nick(char *nick, char *name, char *modes)
1132 {
1133  EnforceQlinedNick(nick, NULL);
1134  send_cmd(NULL, "SNICK %s %ld 1 %s %s 0 * %s 0 %s :%s", nick,
1135  (long int) time(NULL), ServiceUser, ServiceHost, ServerName,
1136  modes, name);
1137  rageircd_cmd_sqline(nick, "Reserved for services");
1138 }
1139 
1140 /* EVENT : OS */
1141 int anope_event_os(char *source, int ac, char **av)
1142 {
1143  if (ac < 1)
1144  return MOD_CONT;
1145  m_privmsg(source, s_OperServ, av[0]);
1146  return MOD_CONT;
1147 }
1148 
1149 /* EVENT : NS */
1150 int anope_event_ns(char *source, int ac, char **av)
1151 {
1152  if (ac < 1)
1153  return MOD_CONT;
1154  m_privmsg(source, s_NickServ, av[0]);
1155  return MOD_CONT;
1156 }
1157 
1158 /* EVENT : MS */
1159 int anope_event_ms(char *source, int ac, char **av)
1160 {
1161  if (ac < 1)
1162  return MOD_CONT;
1163  m_privmsg(source, s_MemoServ, av[0]);
1164  return MOD_CONT;
1165 }
1166 
1167 /* EVENT : HS */
1168 int anope_event_hs(char *source, int ac, char **av)
1169 {
1170  if (ac < 1)
1171  return MOD_CONT;
1172  m_privmsg(source, s_HostServ, av[0]);
1173  return MOD_CONT;
1174 }
1175 
1176 /* EVENT : CS */
1177 int anope_event_cs(char *source, int ac, char **av)
1178 {
1179  if (ac < 1)
1180  return MOD_CONT;
1181  m_privmsg(source, s_ChanServ, av[0]);
1182  return MOD_CONT;
1183 }
1184 
1185 /* QUIT */
1186 void rageircd_cmd_quit(char *source, char *buf)
1187 {
1188  if (buf) {
1189  send_cmd(source, "QUIT :%s", buf);
1190  } else {
1191  send_cmd(source, "QUIT");
1192  }
1193 }
1194 
1195 void rageircd_cmd_bot_nick(char *nick, char *user, char *host, char *real,
1196  char *modes)
1197 {
1199  send_cmd(NULL, "SNICK %s %ld 1 %s %s 0 * %s 0 %s :%s", nick,
1200  (long int) time(NULL), user, host, ServerName, modes, real);
1201  rageircd_cmd_sqline(nick, "Reserved for services");
1202 }
1203 
1204 /* SVSMODE -b */
1205 void rageircd_cmd_unban(char *name, char *nick)
1206 {
1207  rageircd_cmd_svsmode_chan(name, "-b", nick);
1208 }
1209 
1210 
1211 /* SVSMODE channel modes */
1212 
1213 void rageircd_cmd_svsmode_chan(char *name, char *mode, char *nick)
1214 {
1215  if (nick) {
1216  send_cmd(ServerName, "SVSMODE %s %s %s", name, mode, nick);
1217  } else {
1218  send_cmd(ServerName, "SVSMODE %s %s", name, mode);
1219  }
1220 }
1221 
1222 void rageircd_cmd_bot_chan_mode(char *nick, char *chan)
1223 {
1224  anope_cmd_mode(nick, chan, "%s %s", ircd->botchanumode, nick);
1225 }
1226 
1227 int anope_event_server(char *source, int ac, char **av)
1228 {
1229  if (!stricmp(av[1], "1")) {
1230  uplink = sstrdup(av[0]);
1231  }
1232  do_server(source, av[0], av[1], av[2], NULL);
1233  return MOD_CONT;
1234 }
1235 
1236 
1237 int anope_event_privmsg(char *source, int ac, char **av)
1238 {
1239  if (ac != 2)
1240  return MOD_CONT;
1241  m_privmsg(source, av[0], av[1]);
1242  return MOD_CONT;
1243 }
1244 
1245 int anope_event_part(char *source, int ac, char **av)
1246 {
1247  if (ac < 1 || ac > 2)
1248  return MOD_CONT;
1249  do_part(source, ac, av);
1250  return MOD_CONT;
1251 }
1252 
1253 int anope_event_whois(char *source, int ac, char **av)
1254 {
1255  if (source && ac >= 1) {
1256  m_whois(source, av[0]);
1257  }
1258  return MOD_CONT;
1259 }
1260 
1261 
1262 int anope_event_482(char *source, int ac, char **av)
1263 {
1264  return MOD_CONT;
1265 }
1266 
1267 int anope_event_topic(char *source, int ac, char **av)
1268 {
1269  if (ac != 4)
1270  return MOD_CONT;
1271  do_topic(source, ac, av);
1272  return MOD_CONT;
1273 }
1274 
1275 int anope_event_squit(char *source, int ac, char **av)
1276 {
1277  if (ac != 2)
1278  return MOD_CONT;
1279  do_squit(source, ac, av);
1280  return MOD_CONT;
1281 }
1282 
1283 int anope_event_quit(char *source, int ac, char **av)
1284 {
1285  if (ac != 1)
1286  return MOD_CONT;
1287  do_quit(source, ac, av);
1288  return MOD_CONT;
1289 }
1290 
1291 
1292 int anope_event_mode(char *source, int ac, char **av)
1293 {
1294  if (ac < 2)
1295  return MOD_CONT;
1296 
1297  if (*av[0] == '#' || *av[0] == '&') {
1298  do_cmode(source, ac, av);
1299  } else {
1300  do_umode(source, ac, av);
1301  }
1302  return MOD_CONT;
1303 }
1304 
1305 
1306 int anope_event_kill(char *source, int ac, char **av)
1307 {
1308  if (ac != 2)
1309  return MOD_CONT;
1310 
1311  m_kill(av[0], av[1]);
1312  return MOD_CONT;
1313 }
1314 
1315 int anope_event_kick(char *source, int ac, char **av)
1316 {
1317  if (ac != 3)
1318  return MOD_CONT;
1319  do_kick(source, ac, av);
1320  return MOD_CONT;
1321 }
1322 
1323 
1324 int anope_event_join(char *source, int ac, char **av)
1325 {
1326  if (ac != 1)
1327  return MOD_CONT;
1328  do_join(source, ac, av);
1329  return MOD_CONT;
1330 }
1331 
1332 int anope_event_motd(char *source, int ac, char **av)
1333 {
1334  if (!source) {
1335  return MOD_CONT;
1336  }
1337 
1338  m_motd(source);
1339  return MOD_CONT;
1340 }
1341 
1342 /* SVSHOLD - set */
1343 void rageircd_cmd_svshold(char *nick)
1344 {
1345  send_cmd(ServerName, "SVSHOLD %s %d :%s", nick, NSReleaseTimeout,
1346  "Being held for registered user");
1347 }
1348 
1349 /* SVSHOLD - release */
1351 {
1352  send_cmd(ServerName, "SVSHOLD %s 0", nick);
1353 }
1354 
1355 void rageircd_cmd_svsnick(char *source, char *guest, time_t when)
1356 {
1357  if (!source || !guest) {
1358  return;
1359  }
1360  send_cmd(NULL, "SVSNICK %s %s :%ld", source, guest, (long int) when);
1361 }
1362 
1363 void rageircd_cmd_guest_nick(char *nick, char *user, char *host,
1364  char *real, char *modes)
1365 {
1366  send_cmd(NULL, "SNICK %s %ld 1 %s %s 0 * %s 0 %s :%s", nick,
1367  (long int) time(NULL), user, host, ServerName, modes, real);
1368 }
1369 
1370 
1371 void rageircd_cmd_svso(char *source, char *nick, char *flag)
1372 {
1373  /* Not Supported by this IRCD */
1374 }
1375 
1376 
1377 /* SVSMODE +d */
1378 /* sent if svid is something weird */
1379 void rageircd_cmd_svid_umode(char *nick, time_t ts)
1380 {
1381  send_cmd(ServerName, "SVSMODE %s %lu +d 1", nick,
1382  (unsigned long int) ts);
1383 }
1384 
1385 /* SVSMODE +d */
1386 /* nc_change was = 1, and there is no na->status */
1388 {
1389  common_svsmode(u, "+d", "1");
1390 }
1391 
1392 /* SVSMODE +d */
1393 void rageircd_cmd_svid_umode2(User * u, char *ts)
1394 {
1395  /* not used by bahamut ircds */
1396 }
1397 
1398 void rageircd_cmd_svid_umode3(User * u, char *ts)
1399 {
1400  if (u->svid != u->timestamp) {
1401  common_svsmode(u, "+rd", ts);
1402  } else {
1403  common_svsmode(u, "+r", NULL);
1404  }
1405 }
1406 
1407 /* NICK <newnick> */
1408 void rageircd_cmd_chg_nick(char *oldnick, char *newnick)
1409 {
1410  if (!oldnick || !newnick) {
1411  return;
1412  }
1413 
1414  send_cmd(oldnick, "NICK %s", newnick);
1415 }
1416 
1417 int anope_event_myid(char *source, int ac, char **av)
1418 {
1419  /* currently not used but removes the message : unknown message from server */
1420  return MOD_CONT;
1421 }
1422 
1423 int anope_event_pass(char *source, int ac, char **av)
1424 {
1425  /* currently not used but removes the message : unknown message from server */
1426  return MOD_CONT;
1427 }
1428 
1429 /*
1430  * SVINFO
1431  * parv[0] = sender prefix
1432  *
1433  * if (parc == 2)
1434  * parv[1] = ZIP (compression initialisation)
1435  *
1436  * if (parc > 2)
1437  * parv[1] = TS_CURRENT
1438  * parv[2] = TS_MIN
1439  * parv[3] = standalone or connected to non-TS (unused)
1440  * parv[4] = UTC time
1441  * parv[5] = ircd codename
1442  * parv[6] = masking keys
1443  */
1444 int anope_event_svinfo(char *source, int ac, char **av)
1445 {
1446  /* currently not used but removes the message : unknown message from server */
1447  return MOD_CONT;
1448 }
1449 
1450 int anope_event_gnotice(char *source, int ac, char **av)
1451 {
1452  /* currently not used but removes the message : unknown message from server */
1453  return MOD_CONT;
1454 }
1455 
1456 int anope_event_notice(char *source, int ac, char **av)
1457 {
1458  /* currently not used but removes the message : unknown message from server */
1459  return MOD_CONT;
1460 }
1461 
1462 int anope_event_sqline(char *source, int ac, char **av)
1463 {
1464  /* currently not used but removes the message : unknown message from server */
1465  return MOD_CONT;
1466 }
1467 
1468 void rageircd_cmd_svsjoin(char *source, char *nick, char *chan, char *param)
1469 {
1470  /* Find no reference to it in the code and docs */
1471 }
1472 
1473 void rageircd_cmd_svspart(char *source, char *nick, char *chan)
1474 {
1475  /* Find no reference to it in the code and docs */
1476 }
1477 
1478 void rageircd_cmd_swhois(char *source, char *who, char *mask)
1479 {
1480  /* not supported */
1481 }
1482 
1483 int anope_event_rehash(char *source, int ac, char **av)
1484 {
1485  return MOD_CONT;
1486 }
1487 
1488 int anope_event_credits(char *source, int ac, char **av)
1489 {
1490  return MOD_CONT;
1491 }
1492 
1493 int anope_event_admin(char *source, int ac, char **av)
1494 {
1495  return MOD_CONT;
1496 }
1497 
1498 int anope_event_globops(char *source, int ac, char **av)
1499 {
1500  return MOD_CONT;
1501 }
1502 
1504 {
1505  return 0;
1506 }
1507 
1509 {
1510  send_cmd(NULL, "BURST 0");
1511 }
1512 
1513 void rageircd_cmd_jupe(char *jserver, char *who, char *reason)
1514 {
1515  char rbuf[256];
1516 
1517  snprintf(rbuf, sizeof(rbuf), "Juped by %s%s%s", who,
1518  reason ? ": " : "", reason ? reason : "");
1519 
1520  if (findserver(servlist, jserver))
1521  rageircd_cmd_squit(jserver, rbuf);
1522  rageircd_cmd_server(jserver, 2, rbuf);
1523  new_server(me_server, jserver, rbuf, SERVER_JUPED, NULL);
1524 }
1525 
1526 /* GLOBOPS - to handle old WALLOPS */
1527 void rageircd_cmd_global_legacy(char *source, char *fmt)
1528 {
1529  send_cmd(source ? source : ServerName, "GLOBOPS :%s", fmt);
1530 }
1531 
1532 /*
1533  1 = valid nick
1534  0 = nick is in valid
1535 */
1536 int rageircd_valid_nick(char *nick)
1537 {
1538  /* no hard coded invalid nicks */
1539  return 1;
1540 }
1541 
1542 /*
1543  1 = valid chan
1544  0 = chan is in valid
1545 */
1546 int rageircd_valid_chan(char *chan)
1547 {
1548  /* no hard coded invalid nicks */
1549  return 1;
1550 }
1551 
1552 
1553 void rageircd_cmd_ctcp(char *source, char *dest, char *buf)
1554 {
1555  char *s;
1556 
1557  if (!buf) {
1558  return;
1559  } else {
1560  s = normalizeBuffer(buf);
1561  }
1562 
1563  send_cmd(source, "NOTICE %s :\1%s \1", dest, s);
1564  free(s);
1565 }
1566 
1567 
1573 {
1649 }
1650 
1654 int AnopeInit(int argc, char **argv)
1655 {
1656 
1657  moduleAddAuthor("Anope");
1659  (VERSION_STRING);
1661 
1662  pmodule_ircd_version("RageIRCd 2.0.x");
1663  pmodule_ircd_cap(myIrcdcap);
1664  pmodule_ircd_var(myIrcd);
1665  pmodule_ircd_cbmodeinfos(myCbmodeinfos);
1666  pmodule_ircd_cumodes(myCumodes);
1669  pmodule_ircd_cbmodes(myCbmodes);
1670  pmodule_ircd_cmmodes(myCmmodes);
1673 
1683 
1686 
1687  return MOD_CONT;
1688 }
1689 
1690 /* EOF */
void rageircd_cmd_release_svshold(char *nick)
Definition: rageircd.c:1350
E void pmodule_cmd_vhost_off(void(*func)(User *u))
Definition: ircd.c:713
E void pmodule_permchan_mode(int mode)
Definition: ircd.c:1206
int anope_event_admin(char *source, int ac, char **av)
Definition: rageircd.c:1493
void rageircd_cmd_svspart(char *source, char *nick, char *chan)
Definition: rageircd.c:1473
E int32 opcnt
Definition: extern.h:1140
E char * RemotePassword3
Definition: extern.h:270
E void pmodule_cmd_svspart(void(*func)(char *source, char *nick, char *chan))
Definition: ircd.c:1056
int anope_event_ns(char *source, int ac, char **av)
Definition: rageircd.c:1150
E void do_topic(const char *source, int ac, char **av)
Definition: channels.c:1249
E void do_server(const char *source, char *servername, char *hops, char *descript, char *numeric)
Definition: servers.c:360
void rageircd_cmd_server(char *servname, int hop, char *descript)
Definition: rageircd.c:749
E void pmodule_cmd_notice2(void(*func)(char *source, char *dest, char *msg))
Definition: ircd.c:798
E char * RemotePassword
Definition: extern.h:264
#define CAPAB_UID
Definition: services.h:1381
int anope_event_ping(char *source, int ac, char **av)
Definition: rageircd.c:934
E IRCDCAPAB * ircdcap
Definition: extern.h:40
E void pmodule_cmd_bot_chan_mode(void(*func)(char *nick, char *chan))
Definition: ircd.c:827
void rageircd_cmd_311(char *buf)
Definition: rageircd.c:1038
#define UMODE_R
Definition: bahamut.h:42
int anope_event_squit(char *source, int ac, char **av)
Definition: rageircd.c:1275
char nick[NICKMAX]
Definition: services.h:875
E void do_squit(const char *source, int ac, char **av)
Definition: servers.c:398
E int snprintf(char *buf, size_t size, const char *fmt,...)
Definition: compat.c:37
E int anope_event_null(char *source, int ac, char **av)
Definition: messages.c:441
E void pmodule_cmd_351(void(*func)(char *source))
Definition: ircd.c:832
MDE void updateProtectDetails(char *level_info_protect_word, char *level_info_protectme_word, char *fant_protect_add, char *fant_protect_del, char *level_protect_word, char *protect_set_mode, char *protect_unset_mode)
Definition: modules.c:2512
#define UMODE_w
Definition: bahamut.h:21
int anope_event_privmsg(char *source, int ac, char **av)
Definition: rageircd.c:1237
#define CBM_MINUS_NO_ARG
Definition: services.h:928
E char * s_BotServ
Definition: extern.h:287
E IRCDVar * ircd
Definition: extern.h:39
void rageircd_cmd_sgline(char *mask, char *reason)
Definition: rageircd.c:637
E void pmodule_cmd_nick(void(*func)(char *nick, char *name, char *modes))
Definition: ircd.c:756
E void chan_set_key(Channel *chan, char *value)
Definition: channels.c:1998
E void pmodule_ircd_cmmodes(CMMode modes[128])
Definition: ircd.c:1143
E void do_kick(const char *source, int ac, char **av)
Definition: channels.c:638
E void pmodule_cmd_372_error(void(*func)(char *source))
Definition: ircd.c:741
#define CMODE_p
Definition: bahamut.h:47
MDE int addCoreMessage(MessageHash *msgTable[], Message *m)
Definition: modules.c:1597
void rageircd_cmd_ctcp(char *source, char *dest, char *buf)
Definition: rageircd.c:1553
void rageircd_cmd_375(char *source)
Definition: rageircd.c:987
#define CAPAB_DKEY
Definition: services.h:1375
void rageircd_cmd_svsnoop(char *server, int set)
Definition: rageircd.c:627
E void pmodule_valid_nick(int(*func)(char *nick))
Definition: ircd.c:1082
#define CAPAB_NOQUIT
Definition: services.h:1366
E void cs_set_limit(ChannelInfo *ci, char *value)
Definition: chanserv.c:2558
void rageircd_cmd_svid_umode2(User *u, char *ts)
Definition: rageircd.c:1393
E int nick_identified(User *u)
Definition: nickserv.c:1111
void rageircd_cmd_mode(char *source, char *dest, char *buf)
Definition: rageircd.c:949
void rageircd_cmd_capab()
Definition: rageircd.c:743
E void pmodule_cmd_kick(void(*func)(char *source, char *chan, char *user, char *buf))
Definition: ircd.c:780
E void send_cmd(const char *source, const char *fmt,...) FORMAT(printf
E void pmodule_cmd_vhost_on(void(*func)(char *nick, char *vIdent, char *vhost))
Definition: ircd.c:966
E void pmodule_cmd_svsjoin(void(*func)(char *source, char *nick, char *chan, char *param))
Definition: ircd.c:1048
#define CBM_NO_MLOCK
Definition: services.h:929
E void pmodule_cmd_swhois(void(*func)(char *source, char *who, char *mask))
Definition: ircd.c:1061
E void pmodule_cmd_pong(void(*func)(char *servname, char *who))
Definition: ircd.c:842
E void pmodule_cmd_307(void(*func)(char *buf))
Definition: ircd.c:879
E char * get_limit(Channel *chan)
Definition: channels.c:1881
void rageircd_cmd_kick(char *source, char *chan, char *user, char *buf)
Definition: rageircd.c:967
void rageircd_cmd_notice(char *source, char *dest, char *buf)
Definition: rageircd.c:883
E void pmodule_cmd_211(void(*func)(char *buf))
Definition: ircd.c:924
#define CAPAB_VHOST
Definition: services.h:1387
void rageircd_cmd_svskill(char *source, char *user, char *buf)
Definition: rageircd.c:707
E void pmodule_cmd_unsqline(void(*func)(char *user))
Definition: ircd.c:853
E void pmodule_cmd_sgline(void(*func)(char *mask, char *reason))
Definition: ircd.c:1007
E int stricmp(const char *s1, const char *s2)
Definition: compat.c:58
E void pmodule_set_umode(void(*func)(User *user, int ac, char **av))
Definition: ircd.c:1077
E void pmodule_ircd_cap(IRCDCAPAB *cap)
Definition: ircd.c:1102
void rageircd_cmd_eob()
Definition: rageircd.c:1508
#define CMODE_l
Definition: bahamut.h:51
char * name
Definition: services.h:277
#define CMODE_N
Definition: inspircd11.h:48
E void pmodule_cmd_nc_change(void(*func)(User *u))
Definition: ircd.c:1028
E void pmodule_cmd_372(void(*func)(char *source, char *msg))
Definition: ircd.c:736
int anope_event_kill(char *source, int ac, char **av)
Definition: rageircd.c:1306
E char * ServerDesc
Definition: extern.h:275
E void pmodule_cmd_bob(void(*func)())
Definition: ircd.c:976
#define CMODE_C
Definition: inspircd11.h:45
E void pmodule_ircd_flood_mode_char_remove(char *mode)
Definition: ircd.c:1130
E void del_invite(Channel *chan, char *mask)
Definition: channels.c:1833
uint32 svid
Definition: services.h:888
void rageircd_cmd_bot_nick(char *nick, char *user, char *host, char *real, char *modes)
Definition: rageircd.c:1195
E void pmodule_cmd_ctcp(void(*func)(char *source, char *dest, char *buf))
Definition: ircd.c:1043
E void pmodule_cmd_invite(void(*func)(char *source, char *chan, char *nick))
Definition: ircd.c:859
void rageircd_cmd_global(char *source, char *buf)
Definition: rageircd.c:864
void rageircd_cmd_swhois(char *source, char *who, char *mask)
Definition: rageircd.c:1478
#define CMODE_M
Definition: bahamut.h:55
void rageircd_cmd_invite(char *source, char *chan, char *nick)
Definition: rageircd.c:999
E void pmodule_ircd_var(IRCDVar *ircdvar)
Definition: ircd.c:1097
E void do_umode(const char *source, int ac, char **av)
Definition: users.c:816
void rageircd_cmd_serv_notice(char *source, char *dest, char *msg)
Definition: rageircd.c:915
MDE Message * createMessage(const char *name, int(*func)(char *source, int ac, char **av))
Definition: modules.c:1470
void rageircd_cmd_svso(char *source, char *nick, char *flag)
Definition: rageircd.c:1371
E void add_invite(Channel *chan, char *mask)
Definition: channels.c:1402
#define CUS_VOICE
Definition: services.h:1342
#define IRCD
Definition: modules.h:63
#define CMODE_A
Definition: inspircd11.h:35
#define UMODE_i
Definition: bahamut.h:18
#define CAPAB_TOKEN
Definition: services.h:1388
E void pmodule_cmd_svsnoop(void(*func)(char *server, int set))
Definition: ircd.c:696
E void pmodule_cmd_squit(void(*func)(char *servname, char *message))
Definition: ircd.c:944
#define CMODE_n
Definition: bahamut.h:46
int anope_event_whois(char *source, int ac, char **av)
Definition: rageircd.c:1253
#define CMODE_R
Definition: bahamut.h:52
E void pmodule_cmd_unsgline(void(*func)(char *mask))
Definition: ircd.c:991
IRCDVar myIrcd[]
Definition: rageircd.c:19
void rageircd_cmd_372_error(char *source)
Definition: rageircd.c:981
int anope_event_sjoin(char *source, int ac, char **av)
Definition: rageircd.c:414
#define CAPAB_SN2
Definition: services.h:1386
MDE void moduleAddAuthor(const char *author)
Definition: modules.c:1772
E void EnforceQlinedNick(char *nick, char *killer)
Definition: misc.c:837
#define CMODE_t
Definition: bahamut.h:49
char name[CHANMAX]
Definition: services.h:654
E void notice_lang(char *source, User *dest, int message,...)
Definition: send.c:169
E char * cs_get_key(ChannelInfo *ci)
Definition: chanserv.c:2447
CBModeInfo myCbmodeinfos[]
Definition: rageircd.c:341
MDE void moduleSetType(MODType type)
Definition: modules.c:818
void rageircd_cmd_vhost_off(User *u)
Definition: rageircd.c:670
void rageircd_cmd_svsmode_chan(char *name, char *mode, char *nick)
Definition: rageircd.c:1213
int anope_event_burst(char *source, int ac, char **av)
Definition: rageircd.c:583
void rageircd_cmd_sqline(char *mask, char *reason)
Definition: rageircd.c:603
E void pmodule_cmd_jupe(void(*func)(char *jserver, char *who, char *reason))
Definition: ircd.c:1072
char * botchanumode
Definition: services.h:299
E void update_host(User *user)
Definition: users.c:104
void rageircd_cmd_svinfo()
Definition: rageircd.c:738
E void pmodule_cmd_243(void(*func)(char *buf))
Definition: ircd.c:919
void rageircd_cmd_243(char *buf)
Definition: rageircd.c:1112
void rageircd_cmd_part(char *nick, char *chan, char *buf)
Definition: rageircd.c:650
int anope_event_motd(char *source, int ac, char **av)
Definition: rageircd.c:1332
E void do_sjoin(const char *source, int ac, char **av)
Definition: channels.c:803
int anope_event_capab(char *source, int ac, char **av)
Definition: rageircd.c:438
void rageircd_cmd_guest_nick(char *nick, char *user, char *host, char *real, char *modes)
Definition: rageircd.c:1363
E void anope_set_umode(User *user, int ac, char **av)
Definition: ircd.c:130
E char * sstrdup(const char *s)
Definition: memory.c:105
E void do_join(const char *source, int ac, char **av)
Definition: channels.c:556
void rageircd_cmd_svshold(char *nick)
Definition: rageircd.c:1343
int anope_event_sqline(char *source, int ac, char **av)
Definition: rageircd.c:1462
int anope_event_482(char *source, int ac, char **av)
Definition: rageircd.c:1262
void rageircd_cmd_quit(char *source, char *buf)
Definition: rageircd.c:1186
int anope_event_quit(char *source, int ac, char **av)
Definition: rageircd.c:1283
int anope_event_nick(char *source, int ac, char **av)
Definition: rageircd.c:420
E int m_nickcoll(char *user)
Definition: messages.c:20
int anope_event_ms(char *source, int ac, char **av)
Definition: rageircd.c:1159
E void pmodule_cmd_375(void(*func)(char *source))
Definition: ircd.c:746
void rageircd_cmd_connect(int servernum)
Definition: rageircd.c:765
E void pmodule_key_mode(int mode)
Definition: ircd.c:1196
int anope_event_snick(char *source, int ac, char **av)
Definition: rageircd.c:479
void rageircd_cmd_pong(char *servname, char *who)
Definition: rageircd.c:733
E void pmodule_cmd_svsnick(void(*func)(char *source, char *guest, time_t when))
Definition: ircd.c:960
E char * s_OperServ
Definition: extern.h:289
void rageircd_cmd_jupe(char *jserver, char *who, char *reason)
Definition: rageircd.c:1513
int anope_event_436(char *source, int ac, char **av)
Definition: rageircd.c:494
E char * s_MemoServ
Definition: extern.h:286
E void pmodule_invis_umode(int mode)
Definition: ircd.c:1171
E void pmodule_cmd_svid_umode2(void(*func)(User *u, char *ts))
Definition: ircd.c:1033
E void pmodule_cmd_chg_nick(void(*func)(char *oldnick, char *newnick))
Definition: ircd.c:954
void rageircd_cmd_bot_chan_mode(char *nick, char *chan)
Definition: rageircd.c:1222
E char * ServiceHost
Definition: extern.h:277
#define UMODE_x
Definition: bahamut.h:23
E char * EncModule
Definition: extern.h:580
void rageircd_cmd_pass(char *pass)
Definition: rageircd.c:755
void rageircd_cmd_svid_umode(char *nick, time_t ts)
Definition: rageircd.c:1379
void rageircd_cmd_chg_nick(char *oldnick, char *newnick)
Definition: rageircd.c:1408
E void pmodule_invite_cmode(int mode)
Definition: ircd.c:1181
void rageircd_cmd_unszline(char *mask)
Definition: rageircd.c:617
#define CMODE_r
Definition: bahamut.h:53
E void pmodule_cmd_eob(void(*func)())
Definition: ircd.c:1066
#define CMODE_O
Definition: bahamut.h:57
E void pmodule_cmd_svid_umode3(void(*func)(User *u, char *ts))
Definition: ircd.c:1038
E void pmodule_cmd_376(void(*func)(char *source))
Definition: ircd.c:751
E char * uplink
Definition: extern.h:35
int anope_event_globops(char *source, int ac, char **av)
Definition: rageircd.c:1498
E User * finduser(const char *nick)
Definition: users.c:323
CMMode myCmmodes[128]
Definition: rageircd.c:225
void rageircd_cmd_svsjoin(char *source, char *nick, char *chan, char *param)
Definition: rageircd.c:1468
int anope_event_os(char *source, int ac, char **av)
Definition: rageircd.c:1141
E int m_kill(char *nick, char *msg)
Definition: messages.c:49
unsigned long umodes[128]
Definition: rageircd.c:152
E void pmodule_cmd_part(void(*func)(char *nick, char *chan, char *buf))
Definition: ircd.c:864
E int m_away(char *source, char *msg)
Definition: messages.c:29
void rageircd_cmd_unban(char *name, char *nick)
Definition: rageircd.c:1205
#define CAPAB_TSMODE
Definition: services.h:1367
MDE void moduleAddVersion(const char *version)
Definition: modules.c:1760
#define UMODE_a
Definition: bahamut.h:16
E void add_ban(Channel *chan, char *mask)
Definition: channels.c:1338
E void do_part(const char *source, int ac, char **av)
Definition: channels.c:710
#define CUS_HALFOP
Definition: services.h:1343
E void del_ban(Channel *chan, char *mask)
Definition: channels.c:1779
void rageircd_cmd_307(char *buf)
Definition: rageircd.c:1028
void rageircd_cmd_219(char *source, char *letter)
Definition: rageircd.c:1068
#define CUS_PROTECT
Definition: services.h:1345
E void pmodule_ircd_cumodes(CUMode modes[128])
Definition: ircd.c:1117
E const char version_flags[]
Definition: extern.h:771
void rageircd_cmd_vhost_on(char *nick, char *vIdent, char *vhost)
Definition: rageircd.c:684
int anope_event_kick(char *source, int ac, char **av)
Definition: rageircd.c:1315
void moduleAddAnopeCmds()
Definition: rageircd.c:1572
E int check_valid_admin(User *user, Channel *chan, int servermode)
Definition: chanserv.c:1255
E uint32 uplink_capab
Definition: extern.h:1054
E void alog(const char *fmt,...) FORMAT(printf
E int servernum
Definition: extern.h:615
void rageircd_cmd_svsnick(char *source, char *guest, time_t when)
Definition: rageircd.c:1355
CBMode myCbmodes[128]
Definition: rageircd.c:275
void rageircd_cmd_chghost(char *nick, char *vhost)
Definition: rageircd.c:676
void rageircd_cmd_burst()
Definition: rageircd.c:760
void rageircd_cmd_privmsg2(char *source, char *dest, char *msg)
Definition: rageircd.c:910
int rageircd_flood_mode_check(char *value)
Definition: rageircd.c:1503
#define MOD_CONT
Definition: modules.h:54
E int m_motd(char *source)
Definition: messages.c:97
E void pmodule_cmd_svsmode(void(*func)(User *u, int ac, char **av))
Definition: ircd.c:731
E void do_quit(const char *source, int ac, char **av)
Definition: users.c:854
#define CAPAB_UNCONNECT
Definition: services.h:1368
E void pmodule_cmd_bot_nick(void(*func)(char *nick, char *user, char *host, char *real, char *modes))
Definition: ircd.c:773
E void pmodule_private_cmode(int mode)
Definition: ircd.c:1191
E void display_news(User *u, int16 type)
Definition: news.c:269
#define CAPAB_SSJ3
Definition: services.h:1389
int rageircd_valid_nick(char *nick)
Definition: rageircd.c:1536
E Server * findserver(Server *s, const char *name)
Definition: servers.c:261
void rageircd_cmd_372(char *source, char *msg)
Definition: rageircd.c:976
E void pmodule_cmd_svid_umode(void(*func)(char *nick, time_t ts))
Definition: ircd.c:1023
E int m_privmsg(char *source, char *receiver, char *msg)
Definition: messages.c:130
E void pmodule_ircd_csmodes(char mode[128])
Definition: ircd.c:1151
E void pmodule_cmd_242(void(*func)(char *buf))
Definition: ircd.c:914
IRCDCAPAB myIrcdcap[]
Definition: rageircd.c:118
#define NI_MSG
Definition: services.h:1292
E int debug
Definition: extern.h:775
int anope_event_server(char *source, int ac, char **av)
Definition: rageircd.c:1227
int anope_event_away(char *source, int ac, char **av)
Definition: rageircd.c:925
E void set_limit(Channel *chan, char *value)
Definition: channels.c:2011
int anope_event_rehash(char *source, int ac, char **av)
Definition: rageircd.c:1483
E void finish_sync(Server *serv, int sync_links)
Definition: servers.c:531
int anope_event_gnotice(char *source, int ac, char **av)
Definition: rageircd.c:1450
E void pmodule_cmd_311(void(*func)(char *buf))
Definition: ircd.c:884
E void pmodule_cmd_join(void(*func)(char *user, char *channel, time_t chantime))
Definition: ircd.c:848
E int NSDefFlags
Definition: extern.h:377
void rageircd_cmd_privmsg(char *source, char *dest, char *buf)
Definition: rageircd.c:901
E void del_exception(Channel *chan, char *mask)
Definition: channels.c:1808
E void pmodule_cmd_318(void(*func)(char *source, char *who))
Definition: ircd.c:909
#define CAPAB_BURST
Definition: services.h:1372
E char * s_HostServ
Definition: extern.h:303
void moduleAddIRCDMsgs(void)
Definition: rageircd.c:505
E void pmodule_cmd_250(void(*func)(char *buf))
Definition: ircd.c:874
void rageircd_cmd_notice_ops(char *source, char *dest, char *buf)
Definition: rageircd.c:873
void rageircd_cmd_serv_privmsg(char *source, char *dest, char *msg)
Definition: rageircd.c:920
int anope_event_credits(char *source, int ac, char **av)
Definition: rageircd.c:1488
E void pmodule_ircd_version(char *version)
Definition: ircd.c:1107
void rageircd_cmd_topic(char *whosets, char *chan, char *whosetit, char *topic, time_t when)
Definition: rageircd.c:663
int anope_event_notice(char *source, int ac, char **av)
Definition: rageircd.c:1456
E const char version_number[]
Definition: extern.h:767
int anope_event_vhost(char *source, int ac, char **av)
Definition: rageircd.c:444
void rageircd_cmd_351(char *source)
Definition: rageircd.c:942
#define CMODE_m
Definition: bahamut.h:45
E void pmodule_cmd_unszline(void(*func)(char *mask))
Definition: ircd.c:996
void rageircd_cmd_akill(char *user, char *host, char *who, time_t when, time_t expires, char *reason)
Definition: rageircd.c:700
E void cs_set_key(ChannelInfo *ci, char *value)
Definition: chanserv.c:2538
E void anope_cmd_mode(char *source, char *dest, const char *fmt,...)
Definition: ircd.c:211
E void pmodule_cmd_401(void(*func)(char *source, char *who))
Definition: ircd.c:904
E Server * serv_uplink
Definition: extern.h:1053
int anope_event_join(char *source, int ac, char **av)
Definition: rageircd.c:1324
E int WallOper
Definition: extern.h:448
E void pmodule_cmd_svso(void(*func)(char *source, char *nick, char *flag))
Definition: ircd.c:949
E void pmodule_cmd_serv_privmsg(void(*func)(char *source, char *dest, char *msg))
Definition: ircd.c:821
E void pmodule_cmd_317(void(*func)(char *buf))
Definition: ircd.c:894
E void do_cmode(const char *source, int ac, char **av)
Definition: channels.c:1183
E void pmodule_secret_cmode(int mode)
Definition: ircd.c:1186
void rageircd_cmd_242(char *buf)
Definition: rageircd.c:1102
E void pmodule_cmd_391(void(*func)(char *source, char *timestr))
Definition: ircd.c:869
E void pmodule_cmd_remove_akill(void(*func)(char *user, char *host))
Definition: ircd.c:701
E int NSReleaseTimeout
Definition: extern.h:388
int anope_event_error(char *source, int ac, char **av)
Definition: rageircd.c:572
E void pmodule_ircd_cbmodes(CBMode modes[128])
Definition: ircd.c:1135
#define SERVER_JUPED
Definition: services.h:866
void rageircd_cmd_svid_umode3(User *u, char *ts)
Definition: rageircd.c:1398
E void pmodule_cmd_szline(void(*func)(char *mask, char *reason, char *whom))
Definition: ircd.c:1002
void rageircd_cmd_unsgline(char *mask)
Definition: rageircd.c:612
#define UMODE_r
Definition: bahamut.h:20
void rageircd_cmd_notice2(char *source, char *dest, char *msg)
Definition: rageircd.c:896
E void pmodule_cmd_notice_ops(void(*func)(char *source, char *dest, char *buf))
Definition: ircd.c:787
E void pmodule_cmd_release_svshold(void(*func)(char *nick))
Definition: ircd.c:986
uint32 tsmode
Definition: services.h:381
void rageircd_cmd_250(char *buf)
Definition: rageircd.c:1018
#define UMODE_A
Definition: bahamut.h:22
E void add_exception(Channel *chan, char *mask)
Definition: channels.c:1377
void rageircd_cmd_312(char *buf)
Definition: rageircd.c:1048
void rageircd_cmd_317(char *buf)
Definition: rageircd.c:1058
int anope_event_topic(char *source, int ac, char **av)
Definition: rageircd.c:1267
#define CBM_NO_USER_MLOCK
Definition: services.h:930
#define CMODE_k
Definition: bahamut.h:50
E int is_services_oper(User *u)
Definition: operserv.c:606
E void pmodule_cmd_unban(void(*func)(char *name, char *nick))
Definition: ircd.c:1012
E void pmodule_cmd_notice(void(*func)(char *source, char *dest, char *buf))
Definition: ircd.c:792
void rageircd_cmd_391(char *source, char *timestr)
Definition: rageircd.c:1009
E Server * servlist
Definition: extern.h:1051
#define UMODE_h
Definition: bahamut.h:17
void rageircd_cmd_318(char *source, char *who)
Definition: rageircd.c:1092
#define DEFAULT_MLOCK
Definition: bahamut.h:59
int anope_event_myid(char *source, int ac, char **av)
Definition: rageircd.c:1417
E void pmodule_cmd_akill(void(*func)(char *user, char *host, char *who, time_t when, time_t expires, char *reason))
Definition: ircd.c:718
E void capab_parse(int ac, char **av)
Definition: servers.c:451
E int check_valid_op(User *user, Channel *chan, int servermode)
Definition: chanserv.c:1290
E char * cs_get_limit(ChannelInfo *ci)
Definition: chanserv.c:2458
uint32 mode
Definition: services.h:889
void rageircd_cmd_szline(char *mask, char *reason, char *whom)
Definition: rageircd.c:622
E void pmodule_cmd_guest_nick(void(*func)(char *nick, char *user, char *host, char *real, char *modes))
Definition: ircd.c:761
void rageircd_cmd_211(char *buf)
Definition: rageircd.c:1122
E void common_svsmode(User *u, char *modes, char *arg)
Definition: actions.c:228
E char * ServerName
Definition: extern.h:274
#define CMODE_c
Definition: bahamut.h:54
void rageircd_cmd_nc_change(User *u)
Definition: rageircd.c:1387
void rageircd_cmd_squit(char *servname, char *message)
Definition: rageircd.c:727
void rageircd_cmd_global_legacy(char *source, char *fmt)
Definition: rageircd.c:1527
E void pmodule_valid_chan(int(*func)(char *chan))
Definition: ircd.c:1087
E void pmodule_cmd_privmsg(void(*func)(char *source, char *dest, char *buf))
Definition: ircd.c:804
E char * s_ChanServ
Definition: extern.h:285
int anope_event_hs(char *source, int ac, char **av)
Definition: rageircd.c:1168
E void pmodule_cmd_svshold(void(*func)(char *nick))
Definition: ircd.c:981
#define SERVER_ISME
Definition: services.h:865
int anope_event_pass(char *source, int ac, char **av)
Definition: rageircd.c:1423
int anope_event_part(char *source, int ac, char **av)
Definition: rageircd.c:1245
char * vhostchar
Definition: services.h:365
void rageircd_cmd_bob()
Definition: rageircd.c:790
E void pmodule_cmd_serv_notice(void(*func)(char *source, char *dest, char *msg))
Definition: ircd.c:816
E char * s_NickServ
Definition: extern.h:284
E char * get_key(Channel *chan)
Definition: channels.c:1874
E int m_whois(char *source, char *who)
Definition: messages.c:366
E char * RemotePassword2
Definition: extern.h:267
void rageircd_cmd_svsadmin(char *server, int set)
Definition: rageircd.c:632
int anope_event_mode(char *source, int ac, char **av)
Definition: rageircd.c:1292
E void pmodule_cmd_topic(void(*func)(char *whosets, char *chan, char *whosetit, char *topic, time_t when))
Definition: ircd.c:706
E void pmodule_cmd_quit(void(*func)(char *source, char *buf))
Definition: ircd.c:837
E char * ServiceUser
Definition: extern.h:276
E Server * me_server
Definition: extern.h:1052
time_t timestamp
Definition: services.h:886
E void pmodule_ircd_useTSMode(int use)
Definition: ircd.c:1164
int rageircd_valid_chan(char *chan)
Definition: rageircd.c:1546
E void pmodule_oper_umode(int mode)
Definition: ircd.c:1176
E Server * new_server(Server *uplink, const char *name, const char *desc, uint16 flags, char *suid)
Definition: servers.c:119
E void pmodule_flood_mode_check(int(*func)(char *value))
Definition: ircd.c:1092
#define NEWS_OPER
Definition: services.h:1050
char myCsmodes[128]
Definition: rageircd.c:203
void rageircd_cmd_join(char *user, char *channel, time_t chantime)
Definition: rageircd.c:695
E void pmodule_ircd_cbmodeinfos(CBModeInfo *modeinfos)
Definition: ircd.c:1112
void rageircd_cmd_unsqline(char *user)
Definition: rageircd.c:690
void rageircd_cmd_401(char *source, char *who)
Definition: rageircd.c:1083
void rageircd_cmd_376(char *source)
Definition: rageircd.c:993
E void pmodule_cmd_sqline(void(*func)(char *mask, char *reason))
Definition: ircd.c:939
E void pmodule_cmd_privmsg2(void(*func)(char *source, char *dest, char *msg))
Definition: ircd.c:810
E User * do_nick(const char *source, char *nick, char *username, char *host, char *server, char *realname, time_t ts, uint32 svid, uint32 ip, char *vhost, char *uid)
Definition: users.c:500
E void pmodule_cmd_connect(void(*func)(int servernum))
Definition: ircd.c:971
void rageircd_cmd_bot_unban(ChannelInfo *ci, char *nick)
Definition: rageircd.c:409
E void pmodule_cmd_global_legacy(void(*func)(char *source, char *fmt))
Definition: ircd.c:934
E void pmodule_cmd_mode(void(*func)(char *source, char *dest, char *buf))
Definition: ircd.c:768
int anope_event_cs(char *source, int ac, char **av)
Definition: rageircd.c:1177
#define CAPAB_ZIP
Definition: services.h:1371
E void pmodule_limit_mode(int mode)
Definition: ircd.c:1201
#define CMODE_i
Definition: bahamut.h:44
E int UseTSMODE
Definition: extern.h:43
#define CMODE_S
Definition: hybrid.h:46
E char * Numeric
Definition: extern.h:362
void rageircd_set_umode(User *user, int ac, char **av)
Definition: rageircd.c:795
E void pmodule_cmd_svskill(void(*func)(char *source, char *user, char *buf))
Definition: ircd.c:726
E void pmodule_cmd_svsmode_chan(void(*func)(char *name, char *mode, char *nick))
Definition: ircd.c:1018
E void pmodule_ircd_flood_mode_char_set(char *mode)
Definition: ircd.c:1125
void rageircd_cmd_remove_akill(char *user, char *host)
Definition: rageircd.c:643
E void pmodule_cmd_312(void(*func)(char *buf))
Definition: ircd.c:889
E const char version_build[]
Definition: extern.h:769
E void change_user_host(User *user, const char *host)
Definition: users.c:129
#define CMODE_s
Definition: bahamut.h:48
#define CUS_OP
Definition: services.h:1341
CUMode myCumodes[128]
Definition: rageircd.c:361
E char * normalizeBuffer(char *)
Definition: botserv.c:1101
int AnopeInit(int argc, char **argv)
Definition: rageircd.c:1654
E void anope_cmd_global(char *source, const char *fmt,...)
Definition: ircd.c:506
E void pmodule_cmd_global(void(*func)(char *source, char *buf))
Definition: ircd.c:929
void rageircd_cmd_svsmode(User *u, int ac, char **av)
Definition: rageircd.c:720
#define CUF_PROTECT_BOTSERV
Definition: services.h:956
void rageircd_cmd_nick(char *nick, char *name, char *modes)
Definition: rageircd.c:1131
#define UMODE_o
Definition: bahamut.h:19
E void pmodule_cmd_219(void(*func)(char *source, char *letter))
Definition: ircd.c:899
int anope_event_svinfo(char *source, int ac, char **av)
Definition: rageircd.c:1444