Anope IRC Services  Version 1.8
bahamut.c
Go to the documentation of this file.
1 /* Bahamut 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 /*************************************************************************/
15 
16 #include "services.h"
17 #include "pseudo.h"
18 #include "bahamut.h"
19 #include "version.h"
20 
22  {"BahamutIRCd 1.4.*/1.8.*", /* ircd name */
23  "+o", /* nickserv mode */
24  "+o", /* chanserv mode */
25  "+o", /* memoserv mode */
26  "+", /* hostserv mode */
27  "+io", /* operserv mode */
28  "+o", /* botserv mode */
29  "+h", /* helpserv mode */
30  "+i", /* Dev/Null mode */
31  "+io", /* Global mode */
32  "+o", /* nickserv alias mode */
33  "+o", /* chanserv alias mode */
34  "+o", /* memoserv alias mode */
35  "+", /* hostserv alias mode */
36  "+io", /* operserv alias mode */
37  "+o", /* botserv alias mode */
38  "+h", /* helpserv alias mode */
39  "+i", /* Dev/Null alias mode */
40  "+io", /* Global alias mode */
41  "+", /* Used by BotServ Bots */
42  2, /* Chan Max Symbols */
43  "-cilmnpstOR", /* Modes to Remove */
44  "+o", /* Channel Umode used by Botserv bots */
45  1, /* SVSNICK */
46  0, /* Vhost */
47  0, /* Has Owner */
48  NULL, /* Mode to set for an owner */
49  NULL, /* Mode to unset for an owner */
50  NULL, /* Mode to set for channel admin */
51  NULL, /* Mode to unset for channel admin */
52  "+rd", /* Mode On Reg */
53  NULL, /* Mode on ID for Roots */
54  NULL, /* Mode on ID for Admins */
55  NULL, /* Mode on ID for Opers */
56  "-r+d", /* Mode on UnReg */
57  "+d", /* Mode on Nick Change */
58  1, /* Supports SGlines */
59  1, /* Supports SQlines */
60  1, /* Supports SZlines */
61  0, /* Supports Halfop +h */
62  3, /* Number of server args */
63  0, /* Join 2 Set */
64  0, /* Join 2 Message */
65  1, /* Has exceptions +e */
66  0, /* TS Topic Forward */
67  0, /* TS Topci Backward */
68  0, /* Protected Umode */
69  0, /* Has Admin */
70  1, /* Chan SQlines */
71  1, /* Quit on Kill */
72  1, /* SVSMODE unban */
73  0, /* Has Protect */
74  0, /* Reverse */
75  1, /* Chan Reg */
76  CMODE_r, /* Channel Mode */
77  0, /* vidents */
78  1, /* svshold */
79  1, /* time stamp on mode */
80  1, /* NICKIP */
81  0, /* O:LINE */
82  1, /* UMODE */
83  0, /* VHOST ON NICK */
84  0, /* Change RealName */
85  0, /* No Knock */
86  0, /* Admin Only */
87  DEFAULT_MLOCK, /* Default MLOCK */
88  0, /* Vhost Mode */
89  1, /* +f */
90  0, /* +L */
91  CMODE_j, /* Mode */
92  0, /* Mode */
93  1,
94  1, /* No Knock requires +i */
95  NULL, /* CAPAB Chan Modes */
96  0, /* We support TOKENS */
97  1, /* TOKENS are CASE inSensitive */
98  0, /* TIME STAMPS are BASE64 */
99  1, /* +I support */
100  0, /* SJOIN ban char */
101  0, /* SJOIN except char */
102  0, /* SJOIN invite char */
103  0, /* Can remove User Channel Modes with SVSMODE */
104  0, /* Sglines are not enforced until user reconnects */
105  NULL, /* vhost char */
106  0, /* ts6 */
107  1, /* support helper umode */
108  0, /* p10 */
109  NULL, /* character set */
110  1, /* reports sync state */
111  0, /* CIDR channelbans */
112  0, /* +j */
113  0, /* +j mode */
114  0, /* Use delayed client introduction. */
115  }
116  ,
117  {NULL}
118 };
119 
121  {
122  CAPAB_NOQUIT, /* NOQUIT */
123  CAPAB_TSMODE, /* TSMODE */
124  CAPAB_UNCONNECT, /* UNCONNECT */
125  0, /* NICKIP */
126  0, /* SJOIN */
127  0, /* ZIP */
128  CAPAB_BURST, /* BURST */
129  0, /* TS5 */
130  0, /* TS3 */
131  CAPAB_DKEY, /* DKEY */
132  0, /* PT4 */
133  0, /* SCS */
134  0, /* QS */
135  0, /* UID */
136  0, /* KNOCK */
137  0, /* CLIENT */
138  0, /* IPV6 */
139  0, /* SSJ5 */
140  0, /* SN2 */
141  0, /* TOKEN */
142  0, /* VHOST */
143  0, /* SSJ3 */
144  0, /* NICK2 */
145  0, /* UMODE2 */
146  0, /* VL */
147  0, /* TLKEXT */
148  0, /* DODKEY */
149  CAPAB_DOZIP, /* DOZIP */
150  0, 0, 0}
151 };
152 
153 
154 void bahamut_set_umode(User * user, int ac, char **av)
155 {
156  int add = 1; /* 1 if adding modes, 0 if deleting */
157  char *modes = av[0];
158 
159  ac--;
160 
161  if (debug)
162  alog("debug: Changing mode for %s to %s", user->nick, modes);
163 
164  while (*modes) {
165 
166  /* This looks better, much better than "add ? (do_add) : (do_remove)".
167  * At least this is readable without paying much attention :) -GD
168  */
169  if (add)
170  user->mode |= umodes[(int) *modes];
171  else
172  user->mode &= ~umodes[(int) *modes];
173 
174  switch (*modes++) {
175  case '+':
176  add = 1;
177  break;
178  case '-':
179  add = 0;
180  break;
181  case 'a':
182  if (UnRestrictSAdmin) {
183  break;
184  }
185  if (add && !is_services_admin(user)) {
186  common_svsmode(user, "-a", NULL);
187  user->mode &= ~UMODE_a;
188  }
189  break;
190  case 'd':
191  if (ac == 0) {
192  alog("user: umode +d with no parameter (?) for user %s",
193  user->nick);
194  break;
195  }
196 
197  ac--;
198  av++;
199  user->svid = strtoul(*av, NULL, 0);
200  break;
201  case 'o':
202  if (add) {
203  opcnt++;
204 
205  if (WallOper)
207  "\2%s\2 is now an IRC operator.",
208  user->nick);
209  display_news(user, NEWS_OPER);
210 
211  } else {
212  opcnt--;
213  }
214  break;
215  case 'r':
216  if (add && !nick_identified(user)) {
217  common_svsmode(user, "-r", NULL);
218  user->mode &= ~UMODE_r;
219  }
220  break;
221  }
222  }
223 }
224 
225 
226 unsigned long umodes[128] = {
227  0, 0, 0, /* Unused */
228  0, 0, 0, /* Unused */
229  0, 0, 0, /* Unused, Unused, Horzontal Tab */
230  0, 0, 0, /* Line Feed, Unused, Unused */
231  0, 0, 0, /* Carriage Return, Unused, Unused */
232  0, 0, 0, /* Unused */
233  0, 0, 0, /* Unused */
234  0, 0, 0, /* Unused */
235  0, 0, 0, /* Unused */
236  0, 0, 0, /* Unused */
237  0, 0, 0, /* Unused, Unused, Space */
238  0, 0, 0, /* ! " # */
239  0, 0, 0, /* $ % & */
240  0, 0, 0, /* ! ( ) */
241  0, 0, 0, /* * + , */
242  0, 0, 0, /* - . / */
243  0, 0, /* 0 1 */
244  0, 0, /* 2 3 */
245  0, 0, /* 4 5 */
246  0, 0, /* 6 7 */
247  0, 0, /* 8 9 */
248  0, 0, /* : ; */
249  0, 0, 0, /* < = > */
250  0, 0, /* ? @ */
251  UMODE_A, 0, 0, /* A B C */
252  UMODE_D, 0, UMODE_F, /* D E F */
253  0, 0, UMODE_I, /* G H I */
254  0, UMODE_K, 0, /* J K L */
255  0, 0, UMODE_O, /* M N O */
256  0, 0, UMODE_R, /* P Q R */
257  0, 0, 0, /* S T U */
258  0, 0, UMODE_X, /* V W X */
259  0, /* Y */
260  0, /* Z */
261  0, 0, 0, /* [ \ ] */
262  0, 0, 0, /* ^ _ ` */
263  UMODE_a, UMODE_b, UMODE_c, /* a b c */
264  UMODE_d, UMODE_e, UMODE_f, /* d e f */
265  UMODE_g, UMODE_h, UMODE_i, /* g h i */
266  UMODE_j, UMODE_k, 0, /* j k l */
267  UMODE_m, UMODE_n, UMODE_o, /* m n o */
268  0, 0, UMODE_r, /* p q r */
269  UMODE_s, 0, 0, /* s t u */
270  0, UMODE_w, UMODE_x, /* v w x */
271  UMODE_y, /* y */
272  0, /* z */
273  0, 0, 0, /* { | } */
274  0, 0 /* ~ � */
275 };
276 
277 char myCsmodes[128] = {
278  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
279  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
280 
281  0,
282  0,
283  0, 0, 0,
284  0,
285  0, 0, 0, 0,
286  0,
287 
288  'v', 0, 0, 0, 0,
289  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
290 
291  'o', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
292  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
293 
294  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
295  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
296 };
297 
298 
300  {NULL}, {NULL}, {NULL},
301  {NULL}, {NULL}, {NULL},
302  {NULL}, {NULL}, {NULL},
303  {NULL}, {NULL}, {NULL},
304  {NULL}, {NULL}, {NULL},
305  {NULL}, {NULL}, {NULL},
306  {NULL}, {NULL}, {NULL},
307  {NULL}, {NULL}, {NULL},
308  {NULL}, {NULL}, {NULL},
309  {NULL}, {NULL}, {NULL},
310  {NULL}, {NULL}, {NULL},
311  {NULL}, {NULL}, {NULL},
312  {NULL}, {NULL}, {NULL},
313  {NULL}, {NULL}, {NULL},
314  {NULL}, {NULL}, {NULL},
315  {NULL}, {NULL}, {NULL},
316  {NULL}, {NULL}, {NULL},
317  {NULL}, {NULL}, {NULL},
318  {NULL}, {NULL}, {NULL},
319  {NULL}, {NULL}, {NULL},
320  {NULL}, {NULL}, {NULL},
321  {NULL}, {NULL}, {NULL},
322  {NULL}, {NULL}, {NULL}, /* BCD */
323  {NULL}, {NULL}, {NULL}, /* EFG */
324  {NULL}, /* H */
325  {add_invite, del_invite}, /* I */
326  {NULL}, /* J */
327  {NULL}, {NULL}, {NULL}, /* KLM */
328  {NULL}, {NULL}, {NULL}, /* NOP */
329  {NULL}, {NULL}, {NULL}, /* QRS */
330  {NULL}, {NULL}, {NULL}, /* TUV */
331  {NULL}, {NULL}, {NULL}, /* WXY */
332  {NULL}, /* Z */
333  {NULL}, {NULL}, /* (char 91 - 92) */
334  {NULL}, {NULL}, {NULL}, /* (char 93 - 95) */
335  {NULL}, /* ` (char 96) */
336  {NULL}, /* a (char 97) */
337  {add_ban, del_ban}, /* b */
338  {NULL}, {NULL}, /* cd */
340  {NULL}, {NULL},
341  {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
342  {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
343  {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}
344 };
345 
347  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
348  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
349  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
350  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
351  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
352  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
353  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
354  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
355  {0},
356  {0}, /* A */
357  {0}, /* B */
358  {0}, /* C */
359  {0}, /* D */
360  {0}, /* E */
361  {0}, /* F */
362  {0}, /* G */
363  {0}, /* H */
364  {0}, /* I */
365  {0}, /* J */
366  {0}, /* K */
367  {0}, /* L */
368  {CMODE_M, 0, NULL, NULL}, /* M */
369  {0}, /* N */
370  {CMODE_O, CBM_NO_USER_MLOCK, NULL, NULL},
371  {0}, /* P */
372  {0}, /* Q */
373  {CMODE_R, 0, NULL, NULL}, /* R */
374  {0}, /* S */
375  {0}, /* T */
376  {0}, /* U */
377  {0}, /* V */
378  {0}, /* W */
379  {0}, /* X */
380  {0}, /* Y */
381  {0}, /* Z */
382  {0}, {0}, {0}, {0}, {0}, {0},
383  {0}, /* a */
384  {0}, /* b */
385  {CMODE_c, 0, NULL, NULL},
386  {0}, /* d */
387  {0}, /* e */
388  {0}, /* f */
389  {0}, /* g */
390  {0}, /* h */
391  {CMODE_i, 0, NULL, NULL},
392  {CMODE_j, 0, set_flood, cs_set_flood}, /* j */
395  {CMODE_m, 0, NULL, NULL},
396  {CMODE_n, 0, NULL, NULL},
397  {0}, /* o */
398  {CMODE_p, 0, NULL, NULL},
399  {0}, /* q */
400  {CMODE_r, CBM_NO_MLOCK, NULL, NULL},
401  {CMODE_s, 0, NULL, NULL},
402  {CMODE_t, 0, NULL, NULL},
403  {0},
404  {0}, /* v */
405  {0}, /* w */
406  {0}, /* x */
407  {0}, /* y */
408  {0}, /* z */
409  {0}, {0}, {0}, {0}
410 };
411 
413  {'c', CMODE_c, 0, NULL, NULL},
414  {'i', CMODE_i, 0, NULL, NULL},
415  {'j', CMODE_j, 0, get_flood, cs_get_flood},
416  {'k', CMODE_k, 0, get_key, cs_get_key},
418  {'m', CMODE_m, 0, NULL, NULL},
419  {'n', CMODE_n, 0, NULL, NULL},
420  {'p', CMODE_p, 0, NULL, NULL},
421  {'r', CMODE_r, 0, NULL, NULL},
422  {'s', CMODE_s, 0, NULL, NULL},
423  {'t', CMODE_t, 0, NULL, NULL},
424  {'M', CMODE_M, 0, NULL, NULL},
425  {'O', CMODE_O, 0, NULL, NULL},
426  {'R', CMODE_R, 0, NULL, NULL},
427  {0}
428 };
429 
431  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
432  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
433  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
434  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
435 
436  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
437  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
438  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
439  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
440 
441  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
442  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
443  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
444  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
445 
446  {0},
447  {0}, /* a */
448  {0}, /* b */
449  {0}, /* c */
450  {0}, /* d */
451  {0}, /* e */
452  {0}, /* f */
453  {0}, /* g */
454  {0}, /* h */
455  {0}, /* i */
456  {0}, /* j */
457  {0}, /* k */
458  {0}, /* l */
459  {0}, /* m */
460  {0}, /* n */
462  {0}, /* p */
463  {0}, /* q */
464  {0}, /* r */
465  {0}, /* s */
466  {0}, /* t */
467  {0}, /* u */
468  {CUS_VOICE, 0, NULL},
469  {0}, /* w */
470  {0}, /* x */
471  {0}, /* y */
472  {0}, /* z */
473  {0}, {0}, {0}, {0}, {0}
474 };
475 
476 
477 
478 void bahamut_cmd_mode(char *source, char *dest, char *buf)
479 {
480  if (!buf) {
481  return;
482  }
483 
484  if (ircdcap->tsmode) {
485  if (uplink_capab & ircdcap->tsmode) {
486  send_cmd(source, "MODE %s 0 %s", dest, buf);
487  } else {
488  send_cmd(source, "MODE %s %s", dest, buf);
489  }
490  } else {
491  send_cmd(source, "MODE %s %s", dest, buf);
492  }
493 }
494 
495 /* SVSHOLD - set */
496 void bahamut_cmd_svshold(char *nick)
497 {
498  send_cmd(ServerName, "SVSHOLD %s %d :%s", nick, NSReleaseTimeout,
499  "Being held for registered user");
500 }
501 
502 /* SVSHOLD - release */
504 {
505  send_cmd(ServerName, "SVSHOLD %s 0", nick);
506 }
507 
508 /* SVSMODE -b */
509 void bahamut_cmd_unban(char *name, char *nick)
510 {
511  bahamut_cmd_svsmode_chan(name, "-b", nick);
512 }
513 
514 
515 /* SVSMODE channel modes */
516 
517 void bahamut_cmd_svsmode_chan(char *name, char *mode, char *nick)
518 {
519  if (nick) {
520  send_cmd(ServerName, "SVSMODE %s %s %s", name, mode, nick);
521  } else {
522  send_cmd(ServerName, "SVSMODE %s %s", name, mode);
523  }
524 }
525 
526 void bahamut_cmd_bot_chan_mode(char *nick, char *chan)
527 {
528  anope_cmd_mode(nick, chan, "%s %s", ircd->botchanumode, nick);
529 }
530 
531 /* EVENT: SJOIN */
532 int anope_event_sjoin(char *source, int ac, char **av)
533 {
534  do_sjoin(source, ac, av);
535  return MOD_CONT;
536 }
537 
538 /*
539 ** NICK - new
540 ** source = NULL
541 ** parv[0] = nickname
542 ** parv[1] = hopcount
543 ** parv[2] = timestamp
544 ** parv[3] = modes
545 ** parv[4] = username
546 ** parv[5] = hostname
547 ** parv[6] = server
548 ** parv[7] = servicestamp
549 ** parv[8] = IP
550 ** parv[9] = info
551 ** NICK - change
552 ** source = oldnick
553 ** parv[0] = new nickname
554 ** parv[1] = hopcount
555 */
556 int anope_event_nick(char *source, int ac, char **av)
557 {
558  User *user;
559 
560  if (ac != 2) {
561  user = do_nick(source, av[0], av[4], av[5], av[6], av[9],
562  strtoul(av[2], NULL, 10), strtoul(av[7], NULL, 0),
563  strtoul(av[8], NULL, 0), NULL, NULL);
564  if (user) {
565  anope_set_umode(user, 1, &av[3]);
566  }
567  } else {
568  do_nick(source, av[0], NULL, NULL, NULL, NULL,
569  strtoul(av[1], NULL, 10), 0, 0, NULL, NULL);
570  }
571  return MOD_CONT;
572 }
573 
574 /* EVENT : CAPAB */
575 int anope_event_capab(char *source, int ac, char **av)
576 {
577  capab_parse(ac, av);
578  return MOD_CONT;
579 }
580 
581 /* EVENT : OS */
582 int anope_event_os(char *source, int ac, char **av)
583 {
584  if (ac < 1)
585  return MOD_CONT;
586  m_privmsg(source, s_OperServ, av[0]);
587  return MOD_CONT;
588 }
589 
590 /* EVENT : NS */
591 int anope_event_ns(char *source, int ac, char **av)
592 {
593  if (ac < 1)
594  return MOD_CONT;
595  m_privmsg(source, s_NickServ, av[0]);
596  return MOD_CONT;
597 }
598 
599 /* EVENT : MS */
600 int anope_event_ms(char *source, int ac, char **av)
601 {
602  if (ac < 1)
603  return MOD_CONT;
604  m_privmsg(source, s_MemoServ, av[0]);
605  return MOD_CONT;
606 }
607 
608 /* EVENT : HS */
609 int anope_event_hs(char *source, int ac, char **av)
610 {
611  if (ac < 1)
612  return MOD_CONT;
613  m_privmsg(source, s_HostServ, av[0]);
614  return MOD_CONT;
615 }
616 
617 /* EVENT : CS */
618 int anope_event_cs(char *source, int ac, char **av)
619 {
620  if (ac < 1)
621  return MOD_CONT;
622  m_privmsg(source, s_ChanServ, av[0]);
623  return MOD_CONT;
624 }
625 
626 int anope_event_436(char *source, int ac, char **av)
627 {
628  if (ac < 1)
629  return MOD_CONT;
630 
631  m_nickcoll(av[0]);
632  return MOD_CONT;
633 }
634 
635 /* *INDENT-OFF* */
636 void moduleAddIRCDMsgs(void) {
637  Message *m;
638 
639 
640  /* first update the cs protect info about this ircd */
641  updateProtectDetails("PROTECT","PROTECTME","protect","deprotect","AUTOPROTECT","+","-");
642 
643  /* now add the commands */
678  m = createMessage("UNSQLINE", anope_event_null); addCoreMessage(IRCD,m);
691  m = createMessage("UNSGLINE", anope_event_null); addCoreMessage(IRCD,m);
692  m = createMessage("UNSZLINE", anope_event_null); addCoreMessage(IRCD,m);
697 
698 }
699 
700 /* *INDENT-ON* */
701 
702 /* SQLINE */
703 void bahamut_cmd_sqline(char *mask, char *reason)
704 {
705  if (!mask || !reason) {
706  return;
707  }
708 
709  send_cmd(NULL, "SQLINE %s :%s", mask, reason);
710 }
711 
712 /* UNSGLINE */
713 void bahamut_cmd_unsgline(char *mask)
714 {
715  send_cmd(NULL, "UNSGLINE 0 :%s", mask);
716 }
717 
718 /* UNSZLINE */
719 void bahamut_cmd_unszline(char *mask)
720 {
721  /* this will likely fail so its only here for legacy */
722  send_cmd(NULL, "UNSZLINE 0 %s", mask);
723  /* this is how we are supposed to deal with it */
724  send_cmd(NULL, "RAKILL %s *", mask);
725 }
726 
727 /* SZLINE */
728 void bahamut_cmd_szline(char *mask, char *reason, char *whom)
729 {
730  /* this will likely fail so its only here for legacy */
731  send_cmd(NULL, "SZLINE %s :%s", mask, reason);
732  /* this is how we are supposed to deal with it */
733  send_cmd(NULL, "AKILL %s * %d %s %ld :%s", mask, 86400 * 2, whom,
734  (long int) time(NULL), reason);
735 }
736 
737 /* SVSNOOP */
738 void bahamut_cmd_svsnoop(char *server, int set)
739 {
740  send_cmd(NULL, "SVSNOOP %s %s", server, (set ? "+" : "-"));
741 }
742 
743 void bahamut_cmd_svsadmin(char *server, int set)
744 {
745  bahamut_cmd_svsnoop(server, set);
746 }
747 
748 /* SGLINE */
749 void bahamut_cmd_sgline(char *mask, char *reason)
750 {
751  send_cmd(NULL, "SGLINE %d :%s:%s", (int)strlen(mask), mask, reason);
752 }
753 
754 /* RAKILL */
755 void bahamut_cmd_remove_akill(char *user, char *host)
756 {
757  send_cmd(NULL, "RAKILL %s %s", host, user);
758 }
759 
760 /* PART */
761 void bahamut_cmd_part(char *nick, char *chan, char *buf)
762 {
763  if (!nick || !chan) {
764  return;
765  }
766 
767  if (buf) {
768  send_cmd(nick, "PART %s :%s", chan, buf);
769  } else {
770  send_cmd(nick, "PART %s", chan);
771  }
772 }
773 
774 /* TOPIC */
775 void bahamut_cmd_topic(char *whosets, char *chan, char *whosetit,
776  char *topic, time_t when)
777 {
778  send_cmd(whosets, "TOPIC %s %s %lu :%s", chan, whosetit,
779  (unsigned long int) when, topic);
780 }
781 
782 /* UNSQLINE */
783 void bahamut_cmd_unsqline(char *user)
784 {
785  send_cmd(NULL, "UNSQLINE %s", user);
786 }
787 
788 /* JOIN - SJOIN */
789 void bahamut_cmd_join(char *user, char *channel, time_t chantime)
790 {
791  send_cmd(user, "SJOIN %ld %s", (long int) chantime, channel);
792 }
793 
795 {
796  send_cmd(NULL, "BURST");
797 }
798 
799 /* AKILL */
800 /* parv[1]=host
801  * parv[2]=user
802  * parv[3]=length
803  * parv[4]=akiller
804  * parv[5]=time set
805  * parv[6]=reason
806  */
807 void bahamut_cmd_akill(char *user, char *host, char *who, time_t when,
808  time_t expires, char *reason)
809 {
810  send_cmd(NULL, "AKILL %s %s %d %s %ld :%s", host, user, 86400 * 2, who,
811  (long int) time(NULL), reason);
812 }
813 
814 /* SVSKILL */
815 /* parv[0] = servername
816  * parv[1] = client
817  * parv[2] = nick stamp
818  * parv[3] = kill message
819  */
820 /*
821  Note: if the stamp is null 0, the below usage is correct of Bahamut
822 */
823 void bahamut_cmd_svskill(char *source, char *user, char *buf)
824 {
825 
826  if (!source || !user || !buf) {
827  return;
828  }
829 
830  send_cmd(source, "SVSKILL %s :%s", user, buf);
831 }
832 
833 /* SVSMODE */
834 /* parv[0] - sender
835  * parv[1] - nick
836  * parv[2] - TS (or mode, depending on svs version)
837  * parv[3] - mode (or services id if old svs version)
838  * parv[4] - optional arguement (services id)
839  */
840 void bahamut_cmd_svsmode(User * u, int ac, char **av)
841 {
842  send_cmd(ServerName, "SVSMODE %s %ld %s%s%s", u->nick,
843  (long int) u->timestamp, av[0], (ac == 2 ? " " : ""),
844  (ac == 2 ? av[1] : ""));
845 }
846 
847 /* SQUIT */
848 /*
849  * parv[0] = sender prefix
850  * parv[1] = server name
851  * parv[2] = comment
852 */
853 void bahamut_cmd_squit(char *servname, char *message)
854 {
855  send_cmd(NULL, "SQUIT %s :%s", servname, message);
856 }
857 
858 /* PONG */
859 void bahamut_cmd_pong(char *servname, char *who)
860 {
861  send_cmd(servname, "PONG %s", who);
862 }
863 
864 /*
865  * SVINFO
866  * parv[0] = sender prefix
867  * parv[1] = TS_CURRENT for the server
868  * parv[2] = TS_MIN for the server
869  * parv[3] = server is standalone or connected to non-TS only
870  * parv[4] = server's idea of UTC time
871  */
873 {
874  send_cmd(NULL, "SVINFO 3 1 0 :%ld", (long int) time(NULL));
875 }
876 
877 /* PASS */
878 void bahamut_cmd_pass(char *pass)
879 {
880  send_cmd(NULL, "PASS %s :TS", pass);
881 }
882 
883 /* SERVER */
884 void bahamut_cmd_server(char *servname, int hop, char *descript)
885 {
886  send_cmd(NULL, "SERVER %s %d :%s", servname, hop, descript);
887 }
888 
889 /* CAPAB */
891 {
892  send_cmd(NULL,
893  "CAPAB SSJOIN NOQUIT BURST UNCONNECT NICKIP TSMODE TS3");
894 }
895 
897 {
898  me_server =
900 
901  if (servernum == 1) {
903  } else if (servernum == 2) {
905  } else if (servernum == 3) {
907  }
912 }
913 
915 {
916  /* Not used */
917 }
918 
919 
920 /* EVENT : SERVER */
921 int anope_event_server(char *source, int ac, char **av)
922 {
923  if (!stricmp(av[1], "1")) {
924  uplink = sstrdup(av[0]);
925  }
926 
927  do_server(source, av[0], av[1], av[2], NULL);
928  return MOD_CONT;
929 }
930 
931 /* EVENT : PRIVMSG */
932 int anope_event_privmsg(char *source, int ac, char **av)
933 {
934  if (ac != 2)
935  return MOD_CONT;
936  m_privmsg(source, av[0], av[1]);
937  return MOD_CONT;
938 }
939 
940 /* EVENT : SVINFO */
941 /*
942  * parv[0] = sender prefix
943  * parv[1] = TS_CURRENT for the server
944  * parv[2] = TS_MIN for the server
945  * parv[3] = server is standalone or connected to non-TS only
946  * parv[4] = server's idea of UTC time
947  */
948 int anope_event_svinfo(char *source, int ac, char **av)
949 {
950  return MOD_CONT;
951 }
952 
953 
954 int anope_event_part(char *source, int ac, char **av)
955 {
956  if (ac < 1 || ac > 2)
957  return MOD_CONT;
958  do_part(source, ac, av);
959  return MOD_CONT;
960 }
961 
962 int anope_event_whois(char *source, int ac, char **av)
963 {
964  if (source && ac >= 1) {
965  m_whois(source, av[0]);
966  }
967  return MOD_CONT;
968 }
969 
970 int anope_event_topic(char *source, int ac, char **av)
971 {
972  if (ac != 4)
973  return MOD_CONT;
974  do_topic(source, ac, av);
975  return MOD_CONT;
976 }
977 
978 int anope_event_squit(char *source, int ac, char **av)
979 {
980  if (ac != 2)
981  return MOD_CONT;
982  do_squit(source, ac, av);
983  return MOD_CONT;
984 }
985 
986 int anope_event_quit(char *source, int ac, char **av)
987 {
988  if (ac != 1)
989  return MOD_CONT;
990  do_quit(source, ac, av);
991  return MOD_CONT;
992 }
993 
994 /* EVENT: MODE */
995 int anope_event_mode(char *source, int ac, char **av)
996 {
997  if (ac < 2)
998  return MOD_CONT;
999 
1000  if (*av[0] == '#' || *av[0] == '&') {
1001  do_cmode(source, ac, av);
1002  } else {
1003  do_umode(source, ac, av);
1004  }
1005  return MOD_CONT;
1006 }
1007 
1008 /* EVENT: KILL */
1009 int anope_event_kill(char *source, int ac, char **av)
1010 {
1011  if (ac != 2)
1012  return MOD_CONT;
1013 
1014  m_kill(av[0], av[1]);
1015  return MOD_CONT;
1016 }
1017 
1018 /* EVENT: KICK */
1019 int anope_event_kick(char *source, int ac, char **av)
1020 {
1021  if (ac != 3)
1022  return MOD_CONT;
1023  do_kick(source, ac, av);
1024  return MOD_CONT;
1025 }
1026 
1027 /* EVENT: JOIN */
1028 int anope_event_join(char *source, int ac, char **av)
1029 {
1030  if (ac != 1)
1031  return MOD_CONT;
1032  do_join(source, ac, av);
1033  return MOD_CONT;
1034 }
1035 
1036 /* EVENT: MOTD */
1037 int anope_event_motd(char *source, int ac, char **av)
1038 {
1039  if (!source) {
1040  return MOD_CONT;
1041  }
1042 
1043  m_motd(source);
1044  return MOD_CONT;
1045 }
1046 
1047 void bahamut_cmd_notice_ops(char *source, char *dest, char *buf)
1048 {
1049  if (!buf) {
1050  return;
1051  }
1052  send_cmd(NULL, "NOTICE @%s :%s", dest, buf);
1053 }
1054 
1055 /* NOTICE */
1056 void bahamut_cmd_notice(char *source, char *dest, char *buf)
1057 {
1058  if (!buf) {
1059  return;
1060  }
1061 
1062  if (NSDefFlags & NI_MSG) {
1063  bahamut_cmd_privmsg2(source, dest, buf);
1064  } else {
1065  send_cmd(source, "NOTICE %s :%s", dest, buf);
1066  }
1067 }
1068 
1069 void bahamut_cmd_notice2(char *source, char *dest, char *msg)
1070 {
1071  send_cmd(source, "NOTICE %s :%s", dest, msg);
1072 }
1073 
1074 void bahamut_cmd_privmsg(char *source, char *dest, char *buf)
1075 {
1076  if (!buf) {
1077  return;
1078  }
1079 
1080  send_cmd(source, "PRIVMSG %s :%s", dest, buf);
1081 }
1082 
1083 void bahamut_cmd_privmsg2(char *source, char *dest, char *msg)
1084 {
1085  send_cmd(source, "PRIVMSG %s :%s", dest, msg);
1086 }
1087 
1088 void bahamut_cmd_serv_notice(char *source, char *dest, char *msg)
1089 {
1090  send_cmd(source, "NOTICE $%s :%s", dest, msg);
1091 }
1092 
1093 void bahamut_cmd_serv_privmsg(char *source, char *dest, char *msg)
1094 {
1095  send_cmd(source, "PRIVMSG $%s :%s", dest, msg);
1096 }
1097 
1098 /* GLOBOPS */
1099 void bahamut_cmd_global(char *source, char *buf)
1100 {
1101  if (!buf) {
1102  return;
1103  }
1104 
1105  send_cmd(source ? source : ServerName, "GLOBOPS :%s", buf);
1106 }
1107 
1108 /* 391 */
1109 void bahamut_cmd_391(char *source, char *timestr)
1110 {
1111  if (!timestr) {
1112  return;
1113  }
1114  send_cmd(NULL, "391 :%s %s :%s", source, ServerName, timestr);
1115 }
1116 
1117 /* 250 */
1118 void bahamut_cmd_250(char *buf)
1119 {
1120  if (!buf) {
1121  return;
1122  }
1123 
1124  send_cmd(NULL, "250 %s", buf);
1125 }
1126 
1127 /* 307 */
1128 void bahamut_cmd_307(char *buf)
1129 {
1130  if (!buf) {
1131  return;
1132  }
1133 
1134  send_cmd(ServerName, "307 %s", buf);
1135 }
1136 
1137 /* 311 */
1138 void bahamut_cmd_311(char *buf)
1139 {
1140  if (!buf) {
1141  return;
1142  }
1143 
1144  send_cmd(ServerName, "311 %s", buf);
1145 }
1146 
1147 /* 312 */
1148 void bahamut_cmd_312(char *buf)
1149 {
1150  if (!buf) {
1151  return;
1152  }
1153 
1154  send_cmd(ServerName, "312 %s", buf);
1155 }
1156 
1157 /* 317 */
1158 void bahamut_cmd_317(char *buf)
1159 {
1160  if (!buf) {
1161  return;
1162  }
1163 
1164  send_cmd(ServerName, "317 %s", buf);
1165 }
1166 
1167 /* 219 */
1168 void bahamut_cmd_219(char *source, char *letter)
1169 {
1170  if (!source) {
1171  return;
1172  }
1173 
1174  if (letter) {
1175  send_cmd(NULL, "219 %s %c :End of /STATS report.", source,
1176  *letter);
1177  } else {
1178  send_cmd(NULL, "219 %s l :End of /STATS report.", source);
1179  }
1180 }
1181 
1182 /* 401 */
1183 void bahamut_cmd_401(char *source, char *who)
1184 {
1185  if (!source || !who) {
1186  return;
1187  }
1188  send_cmd(ServerName, "401 %s %s :No such service.", source, who);
1189 }
1190 
1191 /* 318 */
1192 void bahamut_cmd_318(char *source, char *who)
1193 {
1194  if (!source || !who) {
1195  return;
1196  }
1197 
1198  send_cmd(ServerName, "318 %s %s :End of /WHOIS list.", source, who);
1199 }
1200 
1201 /* 242 */
1202 void bahamut_cmd_242(char *buf)
1203 {
1204  if (!buf) {
1205  return;
1206  }
1207 
1208  send_cmd(NULL, "242 %s", buf);
1209 }
1210 
1211 /* 243 */
1212 void bahamut_cmd_243(char *buf)
1213 {
1214  if (!buf) {
1215  return;
1216  }
1217 
1218  send_cmd(NULL, "243 %s", buf);
1219 }
1220 
1221 /* 211 */
1222 void bahamut_cmd_211(char *buf)
1223 {
1224  if (!buf) {
1225  return;
1226  }
1227 
1228  send_cmd(NULL, "211 %s", buf);
1229 }
1230 
1231 void bahamut_cmd_nick(char *nick, char *name, char *modes)
1232 {
1233  EnforceQlinedNick(nick, NULL);
1234  send_cmd(NULL, "NICK %s 1 %ld %s %s %s %s 0 0 :%s", nick,
1235  (long int) time(NULL), modes, ServiceUser, ServiceHost,
1236  ServerName, name);
1237  bahamut_cmd_sqline(nick, "Reserved for services");
1238 }
1239 
1240 void bahamut_cmd_kick(char *source, char *chan, char *user, char *buf)
1241 {
1242  if (buf) {
1243  send_cmd(source, "KICK %s %s :%s", chan, user, buf);
1244  } else {
1245  send_cmd(source, "KICK %s %s", chan, user);
1246  }
1247 }
1248 
1249 void bahamut_cmd_372(char *source, char *msg)
1250 {
1251  send_cmd(ServerName, "372 %s :- %s", source, msg);
1252 }
1253 
1254 void bahamut_cmd_372_error(char *source)
1255 {
1256  send_cmd(ServerName, "422 %s :- MOTD file not found! Please "
1257  "contact your IRC administrator.", source);
1258 }
1259 
1260 void bahamut_cmd_375(char *source)
1261 {
1262  send_cmd(ServerName, "375 %s :- %s Message of the Day",
1263  source, ServerName);
1264 }
1265 
1266 void bahamut_cmd_376(char *source)
1267 {
1268  send_cmd(ServerName, "376 %s :End of /MOTD command.", source);
1269 }
1270 
1271 /* INVITE */
1272 void bahamut_cmd_invite(char *source, char *chan, char *nick)
1273 {
1274  if (!source || !chan || !nick) {
1275  return;
1276  }
1277 
1278  send_cmd(source, "INVITE %s %s", nick, chan);
1279 }
1280 
1281 /* QUIT */
1282 void bahamut_cmd_quit(char *source, char *buf)
1283 {
1284  if (buf) {
1285  send_cmd(source, "QUIT :%s", buf);
1286  } else {
1287  send_cmd(source, "QUIT");
1288  }
1289 }
1290 
1291 int anope_event_away(char *source, int ac, char **av)
1292 {
1293  if (!source) {
1294  return MOD_CONT;
1295  }
1296  m_away(source, (ac ? av[0] : NULL));
1297  return MOD_CONT;
1298 }
1299 
1300 int anope_event_ping(char *source, int ac, char **av)
1301 {
1302  if (ac < 1)
1303  return MOD_CONT;
1304  bahamut_cmd_pong(ac > 1 ? av[1] : ServerName, av[0]);
1305  return MOD_CONT;
1306 }
1307 
1308 void bahamut_cmd_351(char *source)
1309 {
1310  send_cmd(ServerName, "351 %s Anope-%s %s :%s - %s (%s) -- %s",
1313 
1314 }
1315 
1316 void bahamut_cmd_bot_nick(char *nick, char *user, char *host, char *real,
1317  char *modes)
1318 {
1320  send_cmd(NULL, "NICK %s 1 %ld %s %s %s %s 0 0 :%s", nick,
1321  (long int) time(NULL), modes, user, host, ServerName, real);
1322  bahamut_cmd_sqline(nick, "Reserved for services");
1323 }
1324 
1325 /* SVSNICK */
1326 /* parv[0] = sender
1327  * parv[1] = old nickname
1328  * parv[2] = new nickname
1329  * parv[3] = timestamp
1330  */
1331 void bahamut_cmd_svsnick(char *source, char *guest, time_t when)
1332 {
1333  if (!source || !guest) {
1334  return;
1335  }
1336  send_cmd(NULL, "SVSNICK %s %s :%ld", source, guest, (long int) when);
1337 }
1338 
1339 void bahamut_cmd_guest_nick(char *nick, char *user, char *host, char *real,
1340  char *modes)
1341 {
1342  send_cmd(NULL, "NICK %s 1 %ld %s %s %s %s 0 0 :%s", nick,
1343  (long int) time(NULL), modes, user, host, ServerName, real);
1344 }
1345 
1346 void bahamut_cmd_svso(char *source, char *nick, char *flag)
1347 {
1348  /* Not Supported by this IRCD */
1349 }
1350 
1351 void bahamut_cmd_vhost_on(char *nick, char *vIdent, char *vhost)
1352 {
1353  /* Not Supported by this IRCD */
1354 }
1355 
1357 {
1358  /* Not Supported by this IRCD */
1359 }
1360 
1361 /* SVSMODE +d */
1362 /* sent if svid is something weird */
1363 void bahamut_cmd_svid_umode(char *nick, time_t ts)
1364 {
1365  send_cmd(ServerName, "SVSMODE %s %lu +d 1", nick,
1366  (unsigned long int) ts);
1367 }
1368 
1369 
1370 /* SVSMODE +d */
1371 /* nc_change was = 1, and there is no na->status */
1373 {
1374  common_svsmode(u, "+d", "1");
1375 }
1376 
1377 /* SVSMODE +d */
1378 void bahamut_cmd_svid_umode2(User * u, char *ts)
1379 {
1380  /* not used by bahamut ircds */
1381 }
1382 
1383 
1384 void bahamut_cmd_svid_umode3(User * u, char *ts)
1385 {
1386  if (u->svid != u->timestamp) {
1387  common_svsmode(u, "+rd", ts);
1388  } else {
1389  common_svsmode(u, "+r", NULL);
1390  }
1391 }
1392 
1393 /* NICK <newnick> */
1394 void bahamut_cmd_chg_nick(char *oldnick, char *newnick)
1395 {
1396  if (!oldnick || !newnick) {
1397  return;
1398  }
1399 
1400  send_cmd(oldnick, "NICK %s", newnick);
1401 }
1402 
1403 int anope_event_error(char *source, int ac, char **av)
1404 {
1405  if (ac >= 1) {
1406  if (debug) {
1407  alog("debug: %s", av[0]);
1408  }
1409  }
1410  return MOD_CONT;
1411 }
1412 
1413 int anope_event_notice(char *source, int ac, char **av)
1414 {
1415  return MOD_CONT;
1416 }
1417 
1418 int anope_event_sqline(char *source, int ac, char **av)
1419 {
1420  return MOD_CONT;
1421 }
1422 
1423 
1424 int anope_event_gnotice(char *source, int ac, char **av)
1425 {
1426  return MOD_CONT;
1427 }
1428 
1429 int anope_event_pass(char *source, int ac, char **av)
1430 {
1431  return MOD_CONT;
1432 }
1433 
1434 void bahamut_cmd_svsjoin(char *source, char *nick, char *chan, char *param)
1435 {
1436  /* Can not find any reference to these in Bahamut */
1437 }
1438 
1439 void bahamut_cmd_svspart(char *source, char *nick, char *chan)
1440 {
1441  /* Can not find any reference to these in Bahamut */
1442 }
1443 
1444 void bahamut_cmd_swhois(char *source, char *who, char *mask)
1445 {
1446  /* not supported */
1447 }
1448 
1449 
1451 {
1452  send_cmd(NULL, "BURST 0");
1453 }
1454 
1455 int anope_event_burst(char *source, int ac, char **av)
1456 {
1457  Server *s;
1458  s = findserver(servlist, source);
1459  if (!ac) {
1460  /* for future use - start burst */
1461  } else {
1462  /* If we found a server with the given source, that one just
1463  * finished bursting. If there was no source, then our uplink
1464  * server finished bursting. -GD
1465  */
1466  if (!s && serv_uplink)
1467  s = serv_uplink;
1468  finish_sync(s, 1);
1469  }
1470  return MOD_CONT;
1471 }
1472 
1473 int anope_event_luserslock(char *source, int ac, char **av)
1474 {
1475  return MOD_CONT;
1476 }
1477 
1478 int anope_event_rehash(char *source, int ac, char **av)
1479 {
1480  return MOD_CONT;
1481 }
1482 
1483 int anope_event_credits(char *source, int ac, char **av)
1484 {
1485  return MOD_CONT;
1486 }
1487 
1488 int anope_event_admin(char *source, int ac, char **av)
1489 {
1490  return MOD_CONT;
1491 }
1492 
1494 {
1495  char *dp, *end;
1496 
1497  if (value && *value != ':'
1498  && (strtoul((*value == '*' ? value + 1 : value), &dp, 10) > 0)
1499  && (*dp == ':') && (*(++dp) != 0) && (strtoul(dp, &end, 10) > 0)
1500  && (*end == 0)) {
1501  return 1;
1502  } else {
1503  return 0;
1504  }
1505 }
1506 
1507 void bahamut_cmd_jupe(char *jserver, char *who, char *reason)
1508 {
1509  char rbuf[256];
1510 
1511  snprintf(rbuf, sizeof(rbuf), "Juped by %s%s%s", who,
1512  reason ? ": " : "", reason ? reason : "");
1513 
1514  if (findserver(servlist, jserver))
1515  bahamut_cmd_squit(jserver, rbuf);
1516  bahamut_cmd_server(jserver, 2, rbuf);
1517  new_server(me_server, jserver, rbuf, SERVER_JUPED, NULL);
1518 }
1519 
1520 /* GLOBOPS - to handle old WALLOPS */
1521 void bahamut_cmd_global_legacy(char *source, char *fmt)
1522 {
1523  send_cmd(source ? source : ServerName, "GLOBOPS :%s", fmt);
1524 }
1525 
1526 /*
1527  1 = valid nick
1528  0 = nick is in valid
1529 */
1530 int bahamut_valid_nick(char *nick)
1531 {
1532  /* no hard coded invalid nicks */
1533  return 1;
1534 }
1535 
1536 /*
1537  1 = valid chan
1538  0 = nick is in chan
1539 */
1540 int bahamut_valid_chan(char *chan)
1541 {
1542  /* no silly invalid chans */
1543  return 1;
1544 }
1545 
1546 void bahamut_cmd_ctcp(char *source, char *dest, char *buf)
1547 {
1548  char *s;
1549  if (!buf) {
1550  return;
1551  } else {
1552  s = normalizeBuffer(buf);
1553  }
1554 
1555  send_cmd(source, "NOTICE %s :\1%s \1", dest, s);
1556  free(s);
1557 }
1558 
1559 /* this avoids "undefined symbol" messages of those whom try to load mods that
1560  call on this function */
1561 void bahamut_cmd_chghost(char *nick, char *vhost)
1562 {
1563  if (debug) {
1564  alog("debug: This IRCD does not support vhosting");
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("BahamutIRCd 1.4.*/1.8.*");
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 }
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
void bahamut_cmd_317(char *buf)
Definition: bahamut.c:1158
E int32 opcnt
Definition: extern.h:1140
E char * RemotePassword3
Definition: extern.h:270
void bahamut_cmd_svshold(char *nick)
Definition: bahamut.c:496
int anope_event_sjoin(char *source, int ac, char **av)
Definition: bahamut.c:532
#define UMODE_e
Definition: bahamut.h:39
void moduleAddAnopeCmds()
Definition: bahamut.c:1572
void bahamut_cmd_svsnoop(char *server, int set)
Definition: bahamut.c:738
E void pmodule_cmd_svspart(void(*func)(char *source, char *nick, char *chan))
Definition: ircd.c:1056
void bahamut_cmd_release_svshold(char *nick)
Definition: bahamut.c:503
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
E void pmodule_cmd_notice2(void(*func)(char *source, char *dest, char *msg))
Definition: ircd.c:798
E char * RemotePassword
Definition: extern.h:264
void bahamut_cmd_svso(char *source, char *nick, char *flag)
Definition: bahamut.c:1346
E IRCDCAPAB * ircdcap
Definition: extern.h:40
E void pmodule_cmd_bot_chan_mode(void(*func)(char *nick, char *chan))
Definition: ircd.c:827
#define UMODE_j
Definition: bahamut.h:26
#define UMODE_c
Definition: bahamut.h:30
#define UMODE_R
Definition: bahamut.h:42
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
void bahamut_cmd_global_legacy(char *source, char *fmt)
Definition: bahamut.c:1521
int anope_event_hs(char *source, int ac, char **av)
Definition: bahamut.c:609
#define UMODE_y
Definition: bahamut.h:33
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
void bahamut_cmd_burst()
Definition: bahamut.c:794
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
void bahamut_cmd_bot_chan_mode(char *nick, char *chan)
Definition: bahamut.c:526
void bahamut_cmd_211(char *buf)
Definition: bahamut.c:1222
void bahamut_cmd_unsgline(char *mask)
Definition: bahamut.c:713
void bahamut_cmd_svsadmin(char *server, int set)
Definition: bahamut.c:743
void bahamut_cmd_sgline(char *mask, char *reason)
Definition: bahamut.c:749
#define UMODE_w
Definition: bahamut.h:21
#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 bahamut_cmd_connect(int servernum)
Definition: bahamut.c:896
CBMode myCbmodes[128]
Definition: bahamut.c:346
#define UMODE_k
Definition: bahamut.h:31
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
void bahamut_cmd_307(char *buf)
Definition: bahamut.c:1128
void bahamut_cmd_szline(char *mask, char *reason, char *whom)
Definition: bahamut.c:728
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
#define CAPAB_DKEY
Definition: services.h:1375
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 bahamut_cmd_serv_notice(char *source, char *dest, char *msg)
Definition: bahamut.c:1088
E int nick_identified(User *u)
Definition: nickserv.c:1111
void bahamut_cmd_318(char *source, char *who)
Definition: bahamut.c:1192
#define UMODE_I
Definition: bahamut.h:41
int anope_event_squit(char *source, int ac, char **av)
Definition: bahamut.c:978
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
int anope_event_server(char *source, int ac, char **av)
Definition: bahamut.c:921
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
E void pmodule_cmd_211(void(*func)(char *buf))
Definition: ircd.c:924
#define UMODE_D
Definition: bahamut.h:40
int bahamut_valid_nick(char *nick)
Definition: bahamut.c:1530
unsigned long umodes[128]
Definition: bahamut.c:226
int anope_event_gnotice(char *source, int ac, char **av)
Definition: bahamut.c:1424
E void pmodule_cmd_unsqline(void(*func)(char *user))
Definition: ircd.c:853
int anope_event_join(char *source, int ac, char **av)
Definition: bahamut.c:1028
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 bahamut_cmd_notice2(char *source, char *dest, char *msg)
Definition: bahamut.c:1069
void bahamut_set_umode(User *user, int ac, char **av)
Definition: bahamut.c:154
#define CMODE_l
Definition: bahamut.h:51
char * name
Definition: services.h:277
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_credits(char *source, int ac, char **av)
Definition: bahamut.c:1483
void bahamut_cmd_akill(char *user, char *host, char *who, time_t when, time_t expires, char *reason)
Definition: bahamut.c:807
E char * ServerDesc
Definition: extern.h:275
void bahamut_cmd_vhost_off(User *u)
Definition: bahamut.c:1356
E void pmodule_cmd_bob(void(*func)())
Definition: ircd.c:976
void bahamut_cmd_jupe(char *jserver, char *who, char *reason)
Definition: bahamut.c:1507
E void pmodule_ircd_flood_mode_char_remove(char *mode)
Definition: ircd.c:1130
int anope_event_admin(char *source, int ac, char **av)
Definition: bahamut.c:1488
E void del_invite(Channel *chan, char *mask)
Definition: channels.c:1833
uint32 svid
Definition: services.h:888
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
#define CMODE_M
Definition: bahamut.h:55
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 bahamut_cmd_312(char *buf)
Definition: bahamut.c:1148
void bahamut_cmd_pong(char *servname, char *who)
Definition: bahamut.c:859
E int UnRestrictSAdmin
Definition: extern.h:363
MDE Message * createMessage(const char *name, int(*func)(char *source, int ac, char **av))
Definition: modules.c:1470
void bahamut_cmd_chg_nick(char *oldnick, char *newnick)
Definition: bahamut.c:1394
void bahamut_cmd_part(char *nick, char *chan, char *buf)
Definition: bahamut.c:761
E void add_invite(Channel *chan, char *mask)
Definition: channels.c:1402
#define CUS_VOICE
Definition: services.h:1342
int anope_event_kill(char *source, int ac, char **av)
Definition: bahamut.c:1009
#define IRCD
Definition: modules.h:63
void bahamut_cmd_notice_ops(char *source, char *dest, char *buf)
Definition: bahamut.c:1047
#define UMODE_g
Definition: bahamut.h:35
void bahamut_cmd_nick(char *nick, char *name, char *modes)
Definition: bahamut.c:1231
int anope_event_away(char *source, int ac, char **av)
Definition: bahamut.c:1291
#define UMODE_i
Definition: bahamut.h:18
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
void bahamut_cmd_unban(char *name, char *nick)
Definition: bahamut.c:509
#define CMODE_R
Definition: bahamut.h:52
E void pmodule_cmd_unsgline(void(*func)(char *mask))
Definition: ircd.c:991
#define UMODE_s
Definition: bahamut.h:29
MDE void moduleAddAuthor(const char *author)
Definition: modules.c:1772
E void EnforceQlinedNick(char *nick, char *killer)
Definition: misc.c:837
int anope_event_whois(char *source, int ac, char **av)
Definition: bahamut.c:962
int AnopeInit(int argc, char **argv)
Definition: bahamut.c:1654
#define CMODE_t
Definition: bahamut.h:49
void bahamut_cmd_svskill(char *source, char *user, char *buf)
Definition: bahamut.c:823
int anope_event_pass(char *source, int ac, char **av)
Definition: bahamut.c:1429
E char * cs_get_key(ChannelInfo *ci)
Definition: chanserv.c:2447
MDE void moduleSetType(MODType type)
Definition: modules.c:818
void bahamut_cmd_250(char *buf)
Definition: bahamut.c:1118
#define CMODE_j
Definition: bahamut.h:56
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 pmodule_cmd_243(void(*func)(char *buf))
Definition: ircd.c:919
void bahamut_cmd_chghost(char *nick, char *vhost)
Definition: bahamut.c:1561
int anope_event_mode(char *source, int ac, char **av)
Definition: bahamut.c:995
E void do_sjoin(const char *source, int ac, char **av)
Definition: channels.c:803
int anope_event_part(char *source, int ac, char **av)
Definition: bahamut.c:954
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 bahamut_cmd_svid_umode(char *nick, time_t ts)
Definition: bahamut.c:1363
void bahamut_cmd_eob()
Definition: bahamut.c:1450
void bahamut_cmd_243(char *buf)
Definition: bahamut.c:1212
E int m_nickcoll(char *user)
Definition: messages.c:20
E void pmodule_cmd_375(void(*func)(char *source))
Definition: ircd.c:746
void bahamut_cmd_global(char *source, char *buf)
Definition: bahamut.c:1099
void bahamut_cmd_sqline(char *mask, char *reason)
Definition: bahamut.c:703
E void pmodule_key_mode(int mode)
Definition: ircd.c:1196
int anope_event_ns(char *source, int ac, char **av)
Definition: bahamut.c:591
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
E char * s_MemoServ
Definition: extern.h:286
E void pmodule_invis_umode(int mode)
Definition: ircd.c:1171
#define UMODE_f
Definition: bahamut.h:32
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
E char * ServiceHost
Definition: extern.h:277
#define UMODE_x
Definition: bahamut.h:23
#define UMODE_b
Definition: bahamut.h:36
E char * EncModule
Definition: extern.h:580
E void pmodule_invite_cmode(int mode)
Definition: ircd.c:1181
int anope_event_burst(char *source, int ac, char **av)
Definition: bahamut.c:1455
E void cs_set_flood(ChannelInfo *ci, char *value)
Definition: chanserv.c:2500
#define CMODE_r
Definition: bahamut.h:53
void bahamut_cmd_351(char *source)
Definition: bahamut.c:1308
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
#define UMODE_X
Definition: bahamut.h:24
void bahamut_cmd_svid_umode3(User *u, char *ts)
Definition: bahamut.c:1384
void bahamut_cmd_swhois(char *source, char *who, char *mask)
Definition: bahamut.c:1444
E int m_kill(char *nick, char *msg)
Definition: messages.c:49
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
#define CAPAB_TSMODE
Definition: services.h:1367
E void set_flood(Channel *chan, char *value)
Definition: channels.c:1972
MDE void moduleAddVersion(const char *version)
Definition: modules.c:1760
#define UMODE_a
Definition: bahamut.h:16
char myCsmodes[128]
Definition: bahamut.c:277
void bahamut_cmd_guest_nick(char *nick, char *user, char *host, char *real, char *modes)
Definition: bahamut.c:1339
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
int anope_event_rehash(char *source, int ac, char **av)
Definition: bahamut.c:1478
E void del_ban(Channel *chan, char *mask)
Definition: channels.c:1779
void bahamut_cmd_svspart(char *source, char *nick, char *chan)
Definition: bahamut.c:1439
void bahamut_cmd_svsnick(char *source, char *guest, time_t when)
Definition: bahamut.c:1331
CMMode myCmmodes[128]
Definition: bahamut.c:299
E void pmodule_ircd_cumodes(CUMode modes[128])
Definition: ircd.c:1117
E const char version_flags[]
Definition: extern.h:771
int anope_event_motd(char *source, int ac, char **av)
Definition: bahamut.c:1037
E uint32 uplink_capab
Definition: extern.h:1054
E void alog(const char *fmt,...) FORMAT(printf
#define UMODE_F
Definition: bahamut.h:25
E int servernum
Definition: extern.h:615
void bahamut_cmd_ctcp(char *source, char *dest, char *buf)
Definition: bahamut.c:1546
void bahamut_cmd_bot_nick(char *nick, char *user, char *host, char *real, char *modes)
Definition: bahamut.c:1316
#define UMODE_K
Definition: bahamut.h:27
#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 char * cs_get_flood(ChannelInfo *ci)
Definition: chanserv.c:2417
E void display_news(User *u, int16 type)
Definition: news.c:269
void bahamut_cmd_join(char *user, char *channel, time_t chantime)
Definition: bahamut.c:789
E Server * findserver(Server *s, const char *name)
Definition: servers.c:261
void bahamut_cmd_svinfo()
Definition: bahamut.c:872
void bahamut_cmd_remove_akill(char *user, char *host)
Definition: bahamut.c:755
void bahamut_cmd_372_error(char *source)
Definition: bahamut.c:1254
void bahamut_cmd_privmsg2(char *source, char *dest, char *msg)
Definition: bahamut.c:1083
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
#define NI_MSG
Definition: services.h:1292
E int debug
Definition: extern.h:775
E int is_services_admin(User *u)
Definition: operserv.c:591
E void set_limit(Channel *chan, char *value)
Definition: channels.c:2011
void bahamut_cmd_mode(char *source, char *dest, char *buf)
Definition: bahamut.c:478
void bahamut_cmd_391(char *source, char *timestr)
Definition: bahamut.c:1109
E void finish_sync(Server *serv, int sync_links)
Definition: servers.c:531
int anope_event_topic(char *source, int ac, char **av)
Definition: bahamut.c:970
int anope_event_nick(char *source, int ac, char **av)
Definition: bahamut.c:556
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
void bahamut_cmd_kick(char *source, char *chan, char *user, char *buf)
Definition: bahamut.c:1240
E int NSDefFlags
Definition: extern.h:377
void moduleAddIRCDMsgs(void)
Definition: bahamut.c:636
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
E void pmodule_cmd_250(void(*func)(char *buf))
Definition: ircd.c:874
void bahamut_cmd_unszline(char *mask)
Definition: bahamut.c:719
void bahamut_cmd_219(char *source, char *letter)
Definition: bahamut.c:1168
int anope_event_capab(char *source, int ac, char **av)
Definition: bahamut.c:575
E void pmodule_ircd_version(char *version)
Definition: ircd.c:1107
void bahamut_cmd_311(char *buf)
Definition: bahamut.c:1138
E const char version_number[]
Definition: extern.h:767
void bahamut_cmd_242(char *buf)
Definition: bahamut.c:1202
E char * get_flood(Channel *chan)
Definition: channels.c:1860
#define CAPAB_DOZIP
Definition: services.h:1376
#define CMODE_m
Definition: bahamut.h:45
E void pmodule_cmd_unszline(void(*func)(char *mask))
Definition: ircd.c:996
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
E int WallOper
Definition: extern.h:448
void bahamut_cmd_capab()
Definition: bahamut.c:890
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
E void pmodule_cmd_391(void(*func)(char *source, char *timestr))
Definition: ircd.c:869
int bahamut_valid_chan(char *chan)
Definition: bahamut.c:1540
E void pmodule_cmd_remove_akill(void(*func)(char *user, char *host))
Definition: ircd.c:701
E int NSReleaseTimeout
Definition: extern.h:388
E void pmodule_ircd_cbmodes(CBMode modes[128])
Definition: ircd.c:1135
void bahamut_cmd_401(char *source, char *who)
Definition: bahamut.c:1183
#define SERVER_JUPED
Definition: services.h:866
int anope_event_sqline(char *source, int ac, char **av)
Definition: bahamut.c:1418
IRCDCAPAB myIrcdcap[]
Definition: bahamut.c:120
E void pmodule_cmd_szline(void(*func)(char *mask, char *reason, char *whom))
Definition: ircd.c:1002
#define UMODE_r
Definition: bahamut.h:20
IRCDVar myIrcd[]
Definition: bahamut.c:21
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
void bahamut_cmd_svid_umode2(User *u, char *ts)
Definition: bahamut.c:1378
void bahamut_cmd_svsmode(User *u, int ac, char **av)
Definition: bahamut.c:840
void bahamut_cmd_372(char *source, char *msg)
Definition: bahamut.c:1249
uint32 tsmode
Definition: services.h:381
#define UMODE_A
Definition: bahamut.h:22
E void add_exception(Channel *chan, char *mask)
Definition: channels.c:1377
CBModeInfo myCbmodeinfos[]
Definition: bahamut.c:412
#define CBM_NO_USER_MLOCK
Definition: services.h:930
int anope_event_svinfo(char *source, int ac, char **av)
Definition: bahamut.c:948
#define CMODE_k
Definition: bahamut.h:50
void bahamut_cmd_nc_change(User *u)
Definition: bahamut.c:1372
void bahamut_cmd_375(char *source)
Definition: bahamut.c:1260
CUMode myCumodes[128]
Definition: bahamut.c:430
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
int anope_event_quit(char *source, int ac, char **av)
Definition: bahamut.c:986
int anope_event_cs(char *source, int ac, char **av)
Definition: bahamut.c:618
E Server * servlist
Definition: extern.h:1051
#define UMODE_h
Definition: bahamut.h:17
int anope_event_luserslock(char *source, int ac, char **av)
Definition: bahamut.c:1473
void bahamut_cmd_squit(char *servname, char *message)
Definition: bahamut.c:853
void bahamut_cmd_svsmode_chan(char *name, char *mode, char *nick)
Definition: bahamut.c:517
void bahamut_cmd_pass(char *pass)
Definition: bahamut.c:878
#define DEFAULT_MLOCK
Definition: bahamut.h:59
int anope_event_error(char *source, int ac, char **av)
Definition: bahamut.c:1403
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
#define UMODE_n
Definition: bahamut.h:37
uint32 mode
Definition: services.h:889
E void pmodule_cmd_guest_nick(void(*func)(char *nick, char *user, char *host, char *real, char *modes))
Definition: ircd.c:761
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
E void pmodule_valid_chan(int(*func)(char *chan))
Definition: ircd.c:1087
int bahamut_flood_mode_check(char *value)
Definition: bahamut.c:1493
void bahamut_cmd_376(char *source)
Definition: bahamut.c:1266
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
E void pmodule_cmd_svshold(void(*func)(char *nick))
Definition: ircd.c:981
#define SERVER_ISME
Definition: services.h:865
void bahamut_cmd_serv_privmsg(char *source, char *dest, char *msg)
Definition: bahamut.c:1093
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
int anope_event_436(char *source, int ac, char **av)
Definition: bahamut.c:626
int anope_event_os(char *source, int ac, char **av)
Definition: bahamut.c:582
void bahamut_cmd_svsjoin(char *source, char *nick, char *chan, char *param)
Definition: bahamut.c:1434
E char * RemotePassword2
Definition: extern.h:267
void bahamut_cmd_bob()
Definition: bahamut.c:914
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
void bahamut_cmd_server(char *servname, int hop, char *descript)
Definition: bahamut.c:884
E void pmodule_ircd_useTSMode(int use)
Definition: ircd.c:1164
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
int anope_event_privmsg(char *source, int ac, char **av)
Definition: bahamut.c:932
int anope_event_ms(char *source, int ac, char **av)
Definition: bahamut.c:600
E void pmodule_flood_mode_check(int(*func)(char *value))
Definition: ircd.c:1092
void bahamut_cmd_privmsg(char *source, char *dest, char *buf)
Definition: bahamut.c:1074
#define NEWS_OPER
Definition: services.h:1050
E void pmodule_ircd_cbmodeinfos(CBModeInfo *modeinfos)
Definition: ircd.c:1112
void bahamut_cmd_topic(char *whosets, char *chan, char *whosetit, char *topic, time_t when)
Definition: bahamut.c:775
#define UMODE_m
Definition: bahamut.h:38
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
void bahamut_cmd_notice(char *source, char *dest, char *buf)
Definition: bahamut.c:1056
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
E void pmodule_cmd_global_legacy(void(*func)(char *source, char *fmt))
Definition: ircd.c:934
int anope_event_kick(char *source, int ac, char **av)
Definition: bahamut.c:1019
E void pmodule_cmd_mode(void(*func)(char *source, char *dest, char *buf))
Definition: ircd.c:768
void bahamut_cmd_unsqline(char *user)
Definition: bahamut.c:783
E void pmodule_limit_mode(int mode)
Definition: ircd.c:1201
int anope_event_ping(char *source, int ac, char **av)
Definition: bahamut.c:1300
#define CMODE_i
Definition: bahamut.h:44
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
E void pmodule_cmd_312(void(*func)(char *buf))
Definition: ircd.c:889
E const char version_build[]
Definition: extern.h:769
#define CMODE_s
Definition: bahamut.h:48
#define CUS_OP
Definition: services.h:1341
int anope_event_notice(char *source, int ac, char **av)
Definition: bahamut.c:1413
E char * normalizeBuffer(char *)
Definition: botserv.c:1101
void bahamut_cmd_invite(char *source, char *chan, char *nick)
Definition: bahamut.c:1272
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
#define UMODE_d
Definition: bahamut.h:34
void bahamut_cmd_quit(char *source, char *buf)
Definition: bahamut.c:1282
#define CUF_PROTECT_BOTSERV
Definition: services.h:956
void bahamut_cmd_vhost_on(char *nick, char *vIdent, char *vhost)
Definition: bahamut.c:1351
#define UMODE_O
Definition: bahamut.h:28
#define UMODE_o
Definition: bahamut.h:19
E void pmodule_cmd_219(void(*func)(char *source, char *letter))
Definition: ircd.c:899