Anope IRC Services  Version 1.8
ultimate2.c
Go to the documentation of this file.
1 /* Ultimate IRCD 2 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 "ultimate2.h"
17 #include "version.h"
18 
20  {"UltimateIRCd 2.8.*", /* ircd name */
21  "+S", /* nickserv mode */
22  "+S", /* chanserv mode */
23  "+S", /* memoserv mode */
24  "+oS", /* hostserv mode */
25  "+iS", /* operserv mode */
26  "+S", /* botserv mode */
27  "+Sh", /* helpserv mode */
28  "+iS", /* Dev/Null mode */
29  "+iS", /* Global mode */
30  "+oS", /* nickserv alias mode */
31  "+oS", /* chanserv alias mode */
32  "+oS", /* memoserv alias mode */
33  "+ioS", /* hostserv alias mode */
34  "+ioS", /* operserv alias mode */
35  "+oS", /* botserv alias mode */
36  "+oS", /* helpserv alias mode */
37  "+iS", /* Dev/Null alias mode */
38  "+ioS", /* Global alias mode */
39  "+pS", /* Used by BotServ Bots */
40  3, /* Chan Max Symbols */
41  "-ilmnpstxAIKORS", /* Modes to Remove */
42  "+ao", /* 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  NULL, /* Mode to set for chan admin */
49  NULL, /* Mode to remove for chan 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  "-r+d", /* Mode on UnReg */
55  "-r+d", /* Mode on Nick Change */
56  0, /* 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 Topci Backward */
66  UMODE_p, /* Protected Umode */
67  0, /* Has Admin */
68  0, /* Chan SQlines */
69  0, /* Quit on Kill */
70  0, /* SVSMODE unban */
71  0, /* Has Protect */
72  1, /* Reverse */
73  1, /* Chan Reg */
74  CMODE_r, /* Channel Mode */
75  1, /* vidents */
76  0, /* svshold */
77  1, /* time stamp on mode */
78  0, /* NICKIP */
79  0, /* O:LINE */
80  1, /* UMODE */
81  0, /* VHOST ON NICK */
82  1, /* Change RealName */
83  CMODE_K, /* No Knock */
84  CMODE_A, /* Admin Only */
85  DEFAULT_MLOCK, /* Default MLOCK */
86  UMODE_x, /* Vhost Mode */
87  1, /* +f */
88  1, /* +L */
89  CMODE_f,
90  CMODE_L,
91  0,
92  1, /* No Knock requires +i */
93  NULL, /* CAPAB Chan Modes */
94  1, /* We support TOKENS */
95  0, /* TOKENS are CASE inSensitive */
96  0, /* TIME STAMPS are BASE64 */
97  0, /* +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  0, /* 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 
118 
120  {
121  CAPAB_NOQUIT, /* NOQUIT */
122  0, /* TSMODE */
123  0, /* UNCONNECT */
124  0, /* NICKIP */
125  0, /* SJOIN */
126  0, /* ZIP */
127  0, /* BURST */
128  0, /* TS5 */
129  0, /* TS3 */
130  0, /* DKEY */
131  0, /* PT4 */
132  0, /* SCS */
133  0, /* QS */
134  0, /* UID */
135  CAPAB_KNOCK, /* KNOCK */
136  0, /* CLIENT */
137  0, /* IPV6 */
138  0, /* SSJ5 */
139  0, /* SN2 */
140  CAPAB_TOKEN, /* TOKEN */
141  0, /* VHOST */
142  0, /* SSJ3 */
143  0, /* NICK2 */
144  0, /* UMODE2 */
145  0, /* VL */
146  0, /* TLKEXT */
147  0, /* DODKEY */
148  0, /* DOZIP */
149  CAPAB_CHANMODE, /* CHANMODE */
150  0, 0}
151 };
152 
153 void ultiamte2_set_umode(User * user, int ac, char **av)
154 {
155  int add = 1; /* 1 if adding modes, 0 if deleting */
156  char *modes = av[0];
157 
158  ac--;
159 
160  if (debug)
161  alog("debug: Changing mode for %s to %s", user->nick, modes);
162 
163  while (*modes) {
164 
165  /* This looks better, much better than "add ? (do_add) : (do_remove)".
166  * At least this is readable without paying much attention :) -GD
167  */
168  if (add)
169  user->mode |= umodes[(int) *modes];
170  else
171  user->mode &= ~umodes[(int) *modes];
172 
173  switch (*modes++) {
174  case '+':
175  add = 1;
176  break;
177  case '-':
178  add = 0;
179  break;
180  case 'a':
181  if (add && !is_services_oper(user)) {
182  common_svsmode(user, "-a", NULL);
183  user->mode &= ~UMODE_a;
184  }
185  break;
186  case 'P':
187  if (add && !is_services_admin(user)) {
188  common_svsmode(user, "-P", NULL);
189  user->mode &= ~UMODE_P;
190  }
191  break;
192  case 'R':
193  if (add && !is_services_root(user)) {
194  common_svsmode(user, "-R", NULL);
195  user->mode &= ~UMODE_R;
196  }
197  break;
198  case 'd':
199  if (ac == 0) {
200  break;
201  }
202 
203  ac--;
204  av++;
205  user->svid = strtoul(*av, NULL, 0);
206  break;
207  case 'o':
208  if (add) {
209  opcnt++;
210  if (WallOper) {
212  "\2%s\2 is now an IRC operator.",
213  user->nick);
214  }
215  display_news(user, NEWS_OPER);
216  if (is_services_oper(user)) {
217  common_svsmode(user, "+a", NULL);
218  user->mode |= UMODE_a;
219  }
220  if (is_services_admin(user)) {
221  common_svsmode(user, "+P", NULL);
222  user->mode |= UMODE_P;
223  }
224  if (is_services_root(user)) {
225  common_svsmode(user, "+R", NULL);
226  user->mode |= UMODE_R;
227  }
228  } else {
229  opcnt--;
230  }
231  break;
232  case 'r':
233  if (add && !nick_identified(user)) {
234  common_svsmode(user, "-r", NULL);
235  user->mode &= ~UMODE_r;
236  }
237  break;
238  case 'x':
239  update_host(user);
240  break;
241  }
242  }
243 }
244 
245 unsigned long umodes[128] = {
246  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
247  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
248  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
249  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
250  0, UMODE_A, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
251  UMODE_P,
252  0,
253  UMODE_R,
254  0, 0, 0, 0, 0, 0, 0,
255  0,
256  0, 0, 0, 0, 0,
257  0, UMODE_a, 0, 0, 0, 0, 0,
258  UMODE_g,
259  UMODE_h, UMODE_i, 0, 0, 0, 0, 0, UMODE_o,
260  UMODE_p,
261  0, UMODE_r, 0, 0, 0, 0, UMODE_w,
262  UMODE_x,
263  0,
264  0,
265  0, 0, 0, 0, 0
266 };
267 
268 char myCsmodes[128] = {
269  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
270  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
271 
272  0,
273  0,
274  0, 0, 0,
275  0,
276  0, 0, 0, 0,
277  0,
278 
279  'v', 0, 0, 0, 0,
280  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
281 
282  'o', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
283  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
284 
285  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
286  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
287 };
288 
290  {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
291  {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
292  {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
293  {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
294  {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
295  {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
296  {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
297  {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
298  {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
299  {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
300  {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
301  {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
302  {NULL},
303  {NULL},
304  {add_ban, del_ban},
305  {NULL},
306  {NULL},
308  {NULL},
309  {NULL},
310  {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
311  {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
312  {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}
313 };
314 
315 
317  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
318  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
319  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
320  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
321  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
322  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
323  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
324  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
325  {0},
326  {CMODE_A, CBM_NO_USER_MLOCK, NULL, NULL},
327  {0}, /* B */
328  {0}, /* C */
329  {0}, /* D */
330  {0}, /* E */
331  {0}, /* F */
332  {0}, /* G */
333  {0}, /* H */
334  {CMODE_I, 0, NULL, NULL}, /* I */
335  {0}, /* J */
336  {CMODE_K, 0, NULL, NULL}, /* K */
338  {0}, /* M */
339  {0}, /* N */
340  {CMODE_O, CBM_NO_USER_MLOCK, NULL, NULL},
341  {0}, /* P */
342  {0}, /* Q */
343  {CMODE_R, 0, NULL, NULL}, /* R */
344  {CMODE_S, 0, NULL, NULL}, /* S */
345  {0}, /* T */
346  {0}, /* U */
347  {0}, /* V */
348  {0}, /* W */
349  {0}, /* X */
350  {0}, /* Y */
351  {0}, /* Z */
352  {0}, {0}, {0}, {0}, {0}, {0},
353  {0}, /* a */
354  {0}, /* b */
355  {0}, /* c */
356  {0}, /* d */
357  {0}, /* e */
359  {0}, /* g */
360  {0}, /* h */
361  {CMODE_i, 0, NULL, NULL}, /* i */
362  {0}, /* j */
365  {CMODE_m, 0, NULL, NULL}, /* m */
366  {CMODE_n, 0, NULL, NULL}, /* n */
367  {0}, /* o */
368  {CMODE_p, 0, NULL, NULL}, /* p */
369  {0}, /* q */
370  {CMODE_r, CBM_NO_MLOCK, NULL, NULL},
371  {CMODE_s, 0, NULL, NULL}, /* s */
372  {CMODE_t, 0, NULL, NULL}, /* t */
373  {0}, /* u */
374  {0}, /* v */
375  {0}, /* w */
376  {CMODE_x, 0, NULL, NULL}, /* x */
377  {0}, /* y */
378  {0}, /* z */
379  {0}, {0}, {0}, {0}
380 };
381 
383  {'f', CMODE_f, 0, get_flood, cs_get_flood},
384  {'i', CMODE_i, 0, NULL, NULL},
385  {'k', CMODE_k, 0, get_key, cs_get_key},
387  {'m', CMODE_m, 0, NULL, NULL},
388  {'n', CMODE_n, 0, NULL, NULL},
389  {'p', CMODE_p, 0, NULL, NULL},
390  {'r', CMODE_r, 0, NULL, NULL},
391  {'s', CMODE_s, 0, NULL, NULL},
392  {'t', CMODE_t, 0, NULL, NULL},
393  {'x', CMODE_x, 0, NULL, NULL},
394  {'A', CMODE_A, 0, NULL, NULL},
395  {'I', CMODE_I, 0, NULL, NULL},
396  {'K', CMODE_K, 0, NULL, NULL},
398  {'O', CMODE_O, 0, NULL, NULL},
399  {'R', CMODE_R, 0, NULL, NULL},
400  {'S', CMODE_S, 0, NULL, NULL},
401  {0}
402 };
403 
405  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
406  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
407  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
408  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
409 
410  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
411  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
412  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
413  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
414 
415  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
416  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
417  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
418  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
419 
420  {0},
421 
422  {0}, /* a */
423  {0}, /* b */
424  {0}, /* c */
425  {0}, /* d */
426  {0}, /* e */
427  {0}, /* f */
428  {0}, /* g */
430  {0}, /* i */
431  {0}, /* j */
432  {0}, /* k */
433  {0}, /* l */
434  {0}, /* m */
435  {0}, /* n */
437  {0}, /* p */
438  {0}, /* q */
439  {0}, /* r */
440  {0}, /* s */
441  {0}, /* t */
442  {0}, /* u */
443  {CUS_VOICE, 0, NULL},
444  {0}, /* w */
445  {0}, /* x */
446  {0}, /* y */
447  {0}, /* z */
448  {0}, {0}, {0}, {0}, {0}
449 };
450 
451 
452 int anope_event_setname(char *source, int ac, char **av)
453 {
454  User *u;
455 
456  if (ac != 1)
457  return MOD_CONT;
458 
459  u = finduser(source);
460  if (!u) {
461  if (debug) {
462  alog("debug: SETNAME for nonexistent user %s", source);
463  }
464  return MOD_CONT;
465  }
466 
467  change_user_realname(u, av[0]);
468  return MOD_CONT;
469 }
470 
471 int anope_event_chgname(char *source, int ac, char **av)
472 {
473  User *u;
474 
475  if (ac != 2)
476  return MOD_CONT;
477 
478  u = finduser(av[0]);
479  if (!u) {
480  if (debug) {
481  alog("debug: CHGNAME for nonexistent user %s", av[0]);
482  }
483  return MOD_CONT;
484  }
485 
486  change_user_realname(u, av[1]);
487  return MOD_CONT;
488 }
489 
490 int anope_event_setident(char *source, int ac, char **av)
491 {
492  User *u;
493 
494  if (ac != 1)
495  return MOD_CONT;
496 
497  u = finduser(source);
498  if (!u) {
499  if (debug) {
500  alog("debug: SETIDENT for nonexistent user %s", source);
501  }
502  return MOD_CONT;
503  }
504 
505  change_user_username(u, av[0]);
506  return MOD_CONT;
507 }
508 
509 int anope_event_chgident(char *source, int ac, char **av)
510 {
511  User *u;
512 
513  if (ac != 2)
514  return MOD_CONT;
515 
516  u = finduser(av[0]);
517  if (!u) {
518  if (debug) {
519  alog("debug: CHGIDENT for nonexistent user %s", av[0]);
520  }
521  return MOD_CONT;
522  }
523 
524  change_user_username(u, av[1]);
525  return MOD_CONT;
526 }
527 
528 int anope_event_sethost(char *source, int ac, char **av)
529 {
530  User *u;
531 
532  if (ac != 1)
533  return MOD_CONT;
534 
535  u = finduser(source);
536  if (!u) {
537  if (debug) {
538  alog("debug: SETHOST for nonexistent user %s", source);
539  }
540  return MOD_CONT;
541  }
542 
543  change_user_host(u, av[0]);
544  return MOD_CONT;
545 }
546 
547 int anope_event_nick(char *source, int ac, char **av)
548 {
549  if (ac != 2) {
550  if (ac == 7) {
551  do_nick(source, av[0], av[3], av[4], av[5], av[6],
552  strtoul(av[2], NULL, 10), 0, 0, NULL, NULL);
553  } else {
554  do_nick(source, av[0], av[3], av[4], av[5], av[7],
555  strtoul(av[2], NULL, 10), strtoul(av[6], NULL, 0), 0,
556  NULL, NULL);
557  }
558  } else {
559  do_nick(source, av[0], NULL, NULL, NULL, NULL,
560  strtoul(av[1], NULL, 10), 0, 0, NULL, NULL);
561  }
562  return MOD_CONT;
563 }
564 
565 int anope_event_chghost(char *source, int ac, char **av)
566 {
567  User *u;
568 
569  if (ac != 2)
570  return MOD_CONT;
571 
572  u = finduser(av[0]);
573  if (!u) {
574  if (debug) {
575  alog("debug: CHGHOST for nonexistent user %s", av[0]);
576  }
577  return MOD_CONT;
578  }
579 
580  change_user_host(u, av[1]);
581  return MOD_CONT;
582 }
583 
584 int anope_event_436(char *source, int ac, char **av)
585 {
586  if (ac < 1)
587  return MOD_CONT;
588 
589  m_nickcoll(av[0]);
590  return MOD_CONT;
591 }
592 
593 
594 /* *INDENT-OFF* */
595 void moduleAddIRCDMsgs(void) {
596  Message *m;
597 
598  updateProtectDetails("PROTECT","PROTECTME","protect","deprotect","AUTOPROTECT","+a","-a");
599 
604  if (UseTokens) {
606  }
608  if (UseTokens) {
610  }
612  if (UseTokens) {
614  }
616  if (UseTokens) {
618  }
620  if (UseTokens) {
622  }
624  if (UseTokens) {
626  }
628  if (UseTokens) {
630  }
632  if (UseTokens) {
634  }
636  if (UseTokens) {
638  }
640  if (UseTokens) {
642  }
644  if (UseTokens) {
646  }
648  if (UseTokens) {
650  }
652  if (UseTokens) {
654  }
656  if (UseTokens) {
658  }
660  if (UseTokens) {
662  }
664  if (UseTokens) {
666  }
668  if (UseTokens) {
670  }
672  if (UseTokens) {
674  }
676  if (UseTokens) {
678  }
680  if (UseTokens) {
682  }
684  if (UseTokens) {
686  }
688  if (UseTokens) {
690  }
692  if (UseTokens) {
694  }
696  if (UseTokens) {
698  }
700  if (UseTokens) {
702  }
704  if (UseTokens) {
706  }
708  if (UseTokens) {
710  }
712  if (UseTokens) {
714  }
716  if (UseTokens) {
718  }
720  if (UseTokens) {
722  }
724  if (UseTokens) {
726  }
727  m = createMessage("UNSQLINE", anope_event_null); addCoreMessage(IRCD,m);
728  if (UseTokens) {
730  }
731  m = createMessage("PROTOCTL", anope_event_capab); addCoreMessage(IRCD,m);
732  if (UseTokens) {
734  }
736  if (UseTokens) {
738  }
740  if (UseTokens) {
742  }
744  if (UseTokens) {
746  }
748  if (UseTokens) {
750  }
752  if (UseTokens) {
754  }
756  if (UseTokens) {
758  }
760  if (UseTokens) {
762  }
764  if (UseTokens) {
766  }
771 
772 
773 }
774 
775 /* *INDENT-ON* */
776 
777 /* Event: PROTOCTL */
778 int anope_event_capab(char *source, int ac, char **av)
779 {
780  capab_parse(ac, av);
781  return MOD_CONT;
782 }
783 
784 void ultimate2_cmd_sqline(char *mask, char *reason)
785 {
786  send_cmd(NULL, "SQLINE %s :%s", mask, reason);
787 }
788 
789 void ultimate2_cmd_svsnoop(char *server, int set)
790 {
791  send_cmd(NULL, "SVSNOOP %s %s", server, (set ? "+" : "-"));
792 }
793 
794 void ultimate2_cmd_svsadmin(char *server, int set)
795 {
796  ultimate2_cmd_svsnoop(server, set);
797 }
798 
799 void ultimate2_cmd_remove_akill(char *user, char *host)
800 {
801  send_cmd(NULL, "RAKILL %s %s", host, user);
802 }
803 
804 
805 void ultimate2_cmd_topic(char *whosets, char *chan, char *whosetit,
806  char *topic, time_t when)
807 {
808  send_cmd(whosets, "TOPIC %s %s %lu :%s", chan, whosetit,
809  (unsigned long int) when, topic);
810 }
811 
813 {
814  /* does not support removing vhosting */
815 }
816 
817 void ultimate2_cmd_vhost_on(char *nick, char *vIdent, char *vhost)
818 {
819  if (vIdent) {
820  send_cmd(ServerName, "CHGIDENT %s %s", nick, vIdent);
821  }
822  send_cmd(s_HostServ, "SVSMODE %s +x", nick);
823  send_cmd(ServerName, "CHGHOST %s %s", nick, vhost);
824 }
825 
826 void ultimate2_cmd_unsqline(char *user)
827 {
828  send_cmd(NULL, "UNSQLINE %s", user);
829 }
830 
831 void ultimate2_cmd_join(char *user, char *channel, time_t chantime)
832 {
833  send_cmd(user, "JOIN %s", channel);
834 }
835 
836 void ultimate2_cmd_akill(char *user, char *host, char *who, time_t when,
837  time_t expires, char *reason)
838 {
839  send_cmd(NULL, "AKILL %s %s :%s", host, user, reason);
840 }
841 
842 void ultimate2_cmd_svskill(char *source, char *user, char *buf)
843 {
844  if (!buf) {
845  return;
846  }
847 
848  send_cmd(source, "KILL %s :%s", user, buf);
849 }
850 
851 void ultimate2_cmd_svsmode(User * u, int ac, char **av)
852 {
853  send_cmd(ServerName, "SVSMODE %s %s%s%s", u->nick, av[0],
854  (ac == 2 ? " " : ""), (ac == 2 ? av[1] : ""));
855 }
856 
858 {
859  if (UseTokens) {
860  send_cmd(NULL, "PROTOCTL NOQUIT TOKEN SILENCE KNOCK");
861  } else {
862  send_cmd(NULL, "PROTOCTL NOQUIT SILENCE KNOCK");
863  }
864 }
865 
866 
867 /* PASS */
868 void ultimate2_cmd_pass(char *pass)
869 {
870  send_cmd(NULL, "PASS :%s", pass);
871 }
872 
873 /* SERVER name hop descript */
874 void ultimate2_cmd_server(char *servname, int hop, char *descript)
875 {
876  send_cmd(NULL, "SERVER %s %d :%s", servname, hop, descript);
877 }
878 
879 /* PONG */
880 void ultimate2_cmd_pong(char *servname, char *who)
881 {
882  send_cmd(servname, "PONG %s", who);
883 }
884 
886 {
887  me_server =
889 
891  if (servernum == 1)
893  if (servernum == 2)
895  if (servernum == 3)
898 }
899 
901 {
902  /* Not used */
903 }
904 
905 /* CHGHOST */
906 void ultimate2_cmd_chghost(char *nick, char *vhost)
907 {
908  if (!nick || !vhost) {
909  return;
910  }
911  send_cmd(ServerName, "CHGHOST %s %s", nick, vhost);
912 }
913 
914 /* CHGIDENT */
915 void ultimate2_cmd_chgident(char *nick, char *vIdent)
916 {
917  if (!nick || !vIdent) {
918  return;
919  }
920  send_cmd(ServerName, "CHGIDENT %s %s", nick, vIdent);
921 }
922 
923 /* INVITE */
924 void ultimate2_cmd_invite(char *source, char *chan, char *nick)
925 {
926  if (!source || !chan || !nick) {
927  return;
928  }
929 
930  send_cmd(source, "INVITE %s %s", nick, chan);
931 }
932 
933 /* PART */
934 void ultimate2_cmd_part(char *nick, char *chan, char *buf)
935 {
936  if (!nick || !chan) {
937  return;
938  }
939 
940  if (buf) {
941  send_cmd(nick, "PART %s :%s", chan, buf);
942  } else {
943  send_cmd(nick, "PART %s", chan);
944  }
945 }
946 
947 /* 391 */
948 void ultimate2_cmd_391(char *source, char *timestr)
949 {
950  if (!timestr) {
951  return;
952  }
953  send_cmd(NULL, "391 :%s %s :%s", source, ServerName, timestr);
954 }
955 
956 /* 250 */
957 void ultimate2_cmd_250(char *buf)
958 {
959  if (!buf) {
960  return;
961  }
962 
963  send_cmd(NULL, "250 %s", buf);
964 }
965 
966 /* 307 */
967 void ultimate2_cmd_307(char *buf)
968 {
969  if (!buf) {
970  return;
971  }
972 
973  send_cmd(ServerName, "307 %s", buf);
974 }
975 
976 /* 311 */
977 void ultimate2_cmd_311(char *buf)
978 {
979  if (!buf) {
980  return;
981  }
982 
983  send_cmd(ServerName, "311 %s", buf);
984 }
985 
986 /* 312 */
987 void ultimate2_cmd_312(char *buf)
988 {
989  if (!buf) {
990  return;
991  }
992 
993  send_cmd(ServerName, "312 %s", buf);
994 }
995 
996 /* 317 */
997 void ultimate2_cmd_317(char *buf)
998 {
999  if (!buf) {
1000  return;
1001  }
1002 
1003  send_cmd(ServerName, "317 %s", buf);
1004 }
1005 
1006 /* 219 */
1007 void ultimate2_cmd_219(char *source, char *letter)
1008 {
1009  if (!source) {
1010  return;
1011  }
1012 
1013  if (letter) {
1014  send_cmd(NULL, "219 %s %c :End of /STATS report.", source,
1015  *letter);
1016  } else {
1017  send_cmd(NULL, "219 %s l :End of /STATS report.", source);
1018  }
1019 }
1020 
1021 /* 401 */
1022 void ultimate2_cmd_401(char *source, char *who)
1023 {
1024  if (!source || !who) {
1025  return;
1026  }
1027  send_cmd(ServerName, "401 %s %s :No such service.", source, who);
1028 }
1029 
1030 /* 318 */
1031 void ultimate2_cmd_318(char *source, char *who)
1032 {
1033  if (!source || !who) {
1034  return;
1035  }
1036 
1037  send_cmd(ServerName, "318 %s %s :End of /WHOIS list.", source, who);
1038 }
1039 
1040 /* 242 */
1041 void ultimate2_cmd_242(char *buf)
1042 {
1043  if (!buf) {
1044  return;
1045  }
1046 
1047  send_cmd(NULL, "242 %s", buf);
1048 }
1049 
1050 /* 243 */
1051 void ultimate2_cmd_243(char *buf)
1052 {
1053  if (!buf) {
1054  return;
1055  }
1056 
1057  send_cmd(NULL, "243 %s", buf);
1058 }
1059 
1060 /* 211 */
1061 void ultimate2_cmd_211(char *buf)
1062 {
1063  if (!buf) {
1064  return;
1065  }
1066 
1067  send_cmd(NULL, "211 %s", buf);
1068 }
1069 
1070 /* GLOBOPS */
1071 void ultimate2_cmd_global(char *source, char *buf)
1072 {
1073  if (!buf) {
1074  return;
1075  }
1076 
1077  send_cmd(source ? source : ServerName, "GLOBOPS :%s", buf);
1078 }
1079 
1080 /* SQUIT */
1081 void ultimate2_cmd_squit(char *servname, char *message)
1082 {
1083  if (!servname || !message) {
1084  return;
1085  }
1086 
1087  send_cmd(NULL, "SQUIT %s :%s", servname, message);
1088 }
1089 
1090 /* SVSO */
1091 void ultimate2_cmd_svso(char *source, char *nick, char *flag)
1092 {
1093  if (!source || !nick || !flag) {
1094  return;
1095  }
1096 
1097  send_cmd(source, "SVSO %s %s", nick, flag);
1098 }
1099 
1100 /* NICK <newnick> */
1101 void ultimate2_cmd_chg_nick(char *oldnick, char *newnick)
1102 {
1103  if (!oldnick || !newnick) {
1104  return;
1105  }
1106 
1107  send_cmd(oldnick, "NICK %s", newnick);
1108 }
1109 
1110 /* SVSNICK */
1111 void ultimate2_cmd_svsnick(char *source, char *guest, time_t when)
1112 {
1113  if (!source || !guest) {
1114  return;
1115  }
1116  send_cmd(NULL, "SVSNICK %s %s :%ld", source, guest, (long int) when);
1117 }
1118 
1119 /* Events */
1120 
1121 int anope_event_ping(char *source, int ac, char **av)
1122 {
1123  if (ac < 1)
1124  return MOD_CONT;
1125  ultimate2_cmd_pong(ac > 1 ? av[1] : ServerName, av[0]);
1126  return MOD_CONT;
1127 }
1128 
1129 int anope_event_away(char *source, int ac, char **av)
1130 {
1131  if (!source) {
1132  return MOD_CONT;
1133  }
1134  m_away(source, (ac ? av[0] : NULL));
1135  return MOD_CONT;
1136 }
1137 
1138 int anope_event_topic(char *source, int ac, char **av)
1139 {
1140  if (ac != 4)
1141  return MOD_CONT;
1142  do_topic(source, ac, av);
1143  return MOD_CONT;
1144 }
1145 
1146 int anope_event_squit(char *source, int ac, char **av)
1147 {
1148  if (ac != 2)
1149  return MOD_CONT;
1150  do_squit(source, ac, av);
1151  return MOD_CONT;
1152 }
1153 
1154 int anope_event_quit(char *source, int ac, char **av)
1155 {
1156  if (ac != 1)
1157  return MOD_CONT;
1158  do_quit(source, ac, av);
1159  return MOD_CONT;
1160 }
1161 
1162 
1163 int anope_event_mode(char *source, int ac, char **av)
1164 {
1165  if (ac < 2)
1166  return MOD_CONT;
1167 
1168  if (*av[0] == '#' || *av[0] == '&') {
1169  do_cmode(source, ac, av);
1170  } else {
1171  do_umode(source, ac, av);
1172  }
1173  return MOD_CONT;
1174 }
1175 
1176 
1177 int anope_event_kill(char *source, int ac, char **av)
1178 {
1179  if (ac != 2)
1180  return MOD_CONT;
1181 
1182  m_kill(av[0], av[1]);
1183  return MOD_CONT;
1184 }
1185 
1186 int anope_event_kick(char *source, int ac, char **av)
1187 {
1188  if (ac != 3)
1189  return MOD_CONT;
1190  do_kick(source, ac, av);
1191  return MOD_CONT;
1192 }
1193 
1194 
1195 int anope_event_join(char *source, int ac, char **av)
1196 {
1197  if (ac != 1)
1198  return MOD_CONT;
1199  do_join(source, ac, av);
1200  return MOD_CONT;
1201 }
1202 
1203 int anope_event_motd(char *source, int ac, char **av)
1204 {
1205  if (!source) {
1206  return MOD_CONT;
1207  }
1208 
1209  m_motd(source);
1210  return MOD_CONT;
1211 }
1212 
1213 /* EVENT: SERVER */
1214 int anope_event_server(char *source, int ac, char **av)
1215 {
1216  if (!stricmp(av[1], "1")) {
1217  uplink = sstrdup(av[0]);
1218  }
1219  do_server(source, av[0], av[1], av[2], NULL);
1220  return MOD_CONT;
1221 }
1222 
1223 
1224 int anope_event_privmsg(char *source, int ac, char **av)
1225 {
1226  if (ac != 2)
1227  return MOD_CONT;
1228  m_privmsg(source, av[0], av[1]);
1229  return MOD_CONT;
1230 }
1231 
1232 int anope_event_part(char *source, int ac, char **av)
1233 {
1234  if (ac < 1 || ac > 2)
1235  return MOD_CONT;
1236  do_part(source, ac, av);
1237  return MOD_CONT;
1238 }
1239 
1240 int anope_event_whois(char *source, int ac, char **av)
1241 {
1242  if (source && ac >= 1) {
1243  m_whois(source, av[0]);
1244  }
1245  return MOD_CONT;
1246 }
1247 
1248 void ultimate2_cmd_kick(char *source, char *chan, char *user, char *buf)
1249 {
1250  if (buf) {
1251  send_cmd(source, "KICK %s %s :%s", chan, user, buf);
1252  } else {
1253  send_cmd(source, "KICK %s %s", chan, user);
1254  }
1255 }
1256 
1257 void ultimate2_cmd_notice_ops(char *source, char *dest, char *buf)
1258 {
1259  if (!buf) {
1260  return;
1261  }
1262 
1263  send_cmd(NULL, "NOTICE @%s :%s", dest, buf);
1264 }
1265 
1266 
1267 void ultimate2_cmd_notice(char *source, char *dest, char *buf)
1268 {
1269  if (!buf) {
1270  return;
1271  }
1272 
1273  if (NSDefFlags & NI_MSG) {
1274  ultimate2_cmd_privmsg2(source, dest, buf);
1275  } else {
1276  send_cmd(source, "NOTICE %s :%s", dest, buf);
1277  }
1278 }
1279 
1280 void ultimate2_cmd_notice2(char *source, char *dest, char *msg)
1281 {
1282  send_cmd(source, "NOTICE %s :%s", dest, msg);
1283 }
1284 
1285 void ultimate2_cmd_privmsg(char *source, char *dest, char *buf)
1286 {
1287  if (!buf) {
1288  return;
1289  }
1290 
1291  send_cmd(source, "PRIVMSG %s :%s", dest, buf);
1292 }
1293 
1294 void ultimate2_cmd_privmsg2(char *source, char *dest, char *msg)
1295 {
1296  send_cmd(source, "PRIVMSG %s :%s", dest, msg);
1297 }
1298 
1299 void ultimate2_cmd_serv_notice(char *source, char *dest, char *msg)
1300 {
1301  send_cmd(source, "NOTICE $%s :%s", dest, msg);
1302 }
1303 
1304 void ultimate2_cmd_serv_privmsg(char *source, char *dest, char *msg)
1305 {
1306  send_cmd(source, "PRIVMSG $%s :%s", dest, msg);
1307 }
1308 
1309 void ultimate2_cmd_nick(char *nick, char *name, char *mode)
1310 {
1311  EnforceQlinedNick(nick, NULL);
1312  send_cmd(NULL, "NICK %s 1 %ld %s %s %s 0 :%s", nick,
1313  (long int) time(NULL), ServiceUser, ServiceHost, ServerName,
1314  name);
1315  anope_cmd_mode(nick, nick, "%s", mode);
1316  ultimate2_cmd_sqline(nick, "Reserved for services");
1317 }
1318 
1319 void ultimate2_cmd_351(char *source)
1320 {
1321  send_cmd(ServerName, "351 %s Anope-%s %s :%s - %s (%s) -- %s",
1324 }
1325 
1326 /* QUIT */
1327 void ultimate2_cmd_quit(char *source, char *buf)
1328 {
1329  if (buf) {
1330  send_cmd(source, "QUIT :%s", buf);
1331  } else {
1332  send_cmd(source, "QUIT");
1333  }
1334 }
1335 
1336 void ultimate2_cmd_mode(char *source, char *dest, char *buf)
1337 {
1338  if (!buf) {
1339  return;
1340  }
1341 
1342  send_cmd(source, "MODE %s %s", dest, buf);
1343 }
1344 
1345 void ultimate2_cmd_bot_nick(char *nick, char *user, char *host, char *real,
1346  char *modes)
1347 {
1349  send_cmd(NULL, "NICK %s 1 %ld %s %s %s 0 :%s", nick,
1350  (long int) time(NULL), user, host, ServerName, real);
1351  anope_cmd_mode(nick, nick, "%s", modes);
1352  ultimate2_cmd_sqline(nick, "Reserved for services");
1353 }
1354 
1355 void ultimate2_cmd_372(char *source, char *msg)
1356 {
1357  send_cmd(ServerName, "372 %s :- %s", source, msg);
1358 }
1359 
1360 void ultimate2_cmd_372_error(char *source)
1361 {
1362  send_cmd(ServerName, "422 %s :- MOTD file not found! Please "
1363  "contact your IRC administrator.", source);
1364 }
1365 
1366 void ultimate2_cmd_375(char *source)
1367 {
1368  send_cmd(ServerName, "375 %s :- %s Message of the Day",
1369  source, ServerName);
1370 }
1371 
1372 void ultimate2_cmd_376(char *source)
1373 {
1374  send_cmd(ServerName, "376 %s :End of /MOTD command.", source);
1375 }
1376 
1377 void ultimate2_cmd_bot_chan_mode(char *nick, char *chan)
1378 {
1379  anope_cmd_mode(nick, chan, "%s %s %s", ircd->botchanumode, nick, nick);
1380 }
1381 
1382 /* SVSHOLD - set */
1383 void ultimate2_cmd_svshold(char *nick)
1384 {
1385  /* Not supported by this IRCD */
1386 }
1387 
1388 /* SVSHOLD - release */
1390 {
1391  /* Not Supported by this IRCD */
1392 }
1393 
1394 /* UNSGLINE */
1395 void ultimate2_cmd_unsgline(char *mask)
1396 {
1397  /* Not Supported by this IRCD */
1398 }
1399 
1400 /* UNSZLINE */
1401 void ultimate2_cmd_unszline(char *mask)
1402 {
1403  /* Not Supported by this IRCD */
1404 }
1405 
1406 /* SZLINE */
1407 void ultimate2_cmd_szline(char *mask, char *reason, char *whom)
1408 {
1409  /* Not Supported by this IRCD */
1410 }
1411 
1412 /* SGLINE */
1413 void ultimate2_cmd_sgline(char *mask, char *reason)
1414 {
1415  /* Not Supported by this IRCD */
1416 }
1417 
1418 void ultimate2_cmd_guest_nick(char *nick, char *user, char *host,
1419  char *real, char *modes)
1420 {
1421  send_cmd(NULL, "NICK %s 1 %ld %s %s %s 0 :%s", nick,
1422  (long int) time(NULL), user, host, ServerName, real);
1423  anope_cmd_mode(nick, nick, "MODE %s %s", modes);
1424 }
1425 
1426 
1427 void ultimate2_cmd_unban(char *name, char *nick)
1428 {
1429  /* Not Supported by this IRCD */
1430 }
1431 
1432 /* SVSMODE channel modes */
1433 
1434 void ultimate2_cmd_svsmode_chan(char *name, char *mode, char *nick)
1435 {
1436  /* Not Supported by this IRCD */
1437 }
1438 
1439 /* SVSMODE +d */
1440 /* sent if svid is something weird */
1441 void ultimate2_cmd_svid_umode(char *nick, time_t ts)
1442 {
1443  send_cmd(ServerName, "SVSMODE %s +d 1", nick);
1444 }
1445 
1446 /* SVSMODE +d */
1447 /* nc_change was = 1, and there is no na->status */
1449 {
1450  common_svsmode(u, "-r+d", "1");
1451 }
1452 
1453 /* SVSMODE +r */
1454 void ultimate2_cmd_svid_umode2(User * u, char *ts)
1455 {
1456  if (u->svid != u->timestamp) {
1457  common_svsmode(u, "+rd", ts);
1458  } else {
1459  common_svsmode(u, "+r", NULL);
1460  }
1461 }
1462 
1463 void ultimate2_cmd_svid_umode3(User * u, char *ts)
1464 {
1465  /* not used */
1466 }
1467 
1468 int anope_event_notice(char *source, int ac, char **av)
1469 {
1470  return MOD_CONT;
1471 }
1472 
1473 int anope_event_pass(char *source, int ac, char **av)
1474 {
1475  return MOD_CONT;
1476 }
1477 
1478 int anope_event_vctrl(char *source, int ac, char **av)
1479 {
1480  return MOD_CONT;
1481 }
1482 
1483 int anope_event_netinfo(char *source, int ac, char **av)
1484 {
1485  return MOD_CONT;
1486 }
1487 
1488 int anope_event_snetinfo(char *source, int ac, char **av)
1489 {
1490  return MOD_CONT;
1491 }
1492 
1493 int anope_event_sqline(char *source, int ac, char **av)
1494 {
1495  return MOD_CONT;
1496 }
1497 
1498 /*
1499 ** svsjoin
1500 **
1501 ** parv[0] - sender
1502 ** parv[1] - nick to make join
1503 ** parv[2] - channel(s) to join
1504 */
1505 void ultimate2_cmd_svsjoin(char *source, char *nick, char *chan, char *param)
1506 {
1507  send_cmd(source, "SVSJOIN %s %s", nick, chan);
1508 }
1509 
1510 /*
1511 ** svspart
1512 **
1513 ** parv[0] - sender
1514 ** parv[1] - nick to make part
1515 ** parv[2] - channel(s) to part
1516 */
1517 void ultimate2_cmd_svspart(char *source, char *nick, char *chan)
1518 {
1519  send_cmd(source, "SVSPART %s %s", nick, chan);
1520 }
1521 
1522 void ultimate2_cmd_swhois(char *source, char *who, char *mask)
1523 {
1524  /* not supported */
1525 }
1526 
1528 {
1529  /* not supported */
1530 }
1531 
1532 int anope_event_rehash(char *source, int ac, char **av)
1533 {
1534  return MOD_CONT;
1535 }
1536 
1537 int anope_event_credits(char *source, int ac, char **av)
1538 {
1539  return MOD_CONT;
1540 }
1541 
1542 int anope_event_admin(char *source, int ac, char **av)
1543 {
1544  return MOD_CONT;
1545 }
1546 
1548 {
1549  char *dp, *end;
1550 
1551  if (value && *value != ':'
1552  && (strtoul((*value == '*' ? value + 1 : value), &dp, 10) > 0)
1553  && (*dp == ':') && (*(++dp) != 0) && (strtoul(dp, &end, 10) > 0)
1554  && (*end == 0)) {
1555  return 1;
1556  } else {
1557  return 0;
1558  }
1559 }
1560 
1561 int anope_event_error(char *source, int ac, char **av)
1562 {
1563  if (av[0]) {
1564  if (debug) {
1565  alog("debug: %s", av[0]);
1566  }
1567  }
1568  return MOD_CONT;
1569 }
1570 
1571 void ultimate2_cmd_jupe(char *jserver, char *who, char *reason)
1572 {
1573  char rbuf[256];
1574 
1575  snprintf(rbuf, sizeof(rbuf), "Juped by %s%s%s", who,
1576  reason ? ": " : "", reason ? reason : "");
1577 
1578  if (findserver(servlist, jserver))
1579  ultimate2_cmd_squit(jserver, rbuf);
1580  ultimate2_cmd_server(jserver, 2, rbuf);
1581  new_server(me_server, jserver, rbuf, SERVER_JUPED, NULL);
1582 }
1583 
1584 /* GLOBOPS - to handle old WALLOPS */
1585 void ultimate2_cmd_global_legacy(char *source, char *fmt)
1586 {
1587  send_cmd(source ? source : ServerName, "GLOBOPS :%s", fmt);
1588 }
1589 
1590 /*
1591  1 = valid nick
1592  0 = nick is in valid
1593 */
1594 int ultiamte2_valid_nick(char *nick)
1595 {
1596  /* no hard coded invalid nicks */
1597  return 1;
1598 }
1599 
1600 /*
1601  1 = valid chan
1602  0 = chan is in valid
1603 */
1604 int ultiamte2_valid_chan(char *chan)
1605 {
1606  /* no hard coded invalid chans */
1607  return 1;
1608 }
1609 
1610 
1611 void ultimate2_cmd_ctcp(char *source, char *dest, char *buf)
1612 {
1613  char *s;
1614 
1615  if (!buf) {
1616  return;
1617  } else {
1618  s = normalizeBuffer(buf);
1619  }
1620 
1621  send_cmd(source, "NOTICE %s :\1%s \1", dest, s);
1622  free(s);
1623 }
1624 
1625 
1631 {
1707 }
1708 
1712 int AnopeInit(int argc, char **argv)
1713 {
1714 
1715  moduleAddAuthor("Anope");
1716  moduleAddVersion(VERSION_STRING);
1718 
1719  pmodule_ircd_version("UltimateIRCd 2.8.2+");
1720  pmodule_ircd_cap(myIrcdcap);
1721  pmodule_ircd_var(myIrcd);
1722  pmodule_ircd_cbmodeinfos(myCbmodeinfos);
1723  pmodule_ircd_cumodes(myCumodes);
1726  pmodule_ircd_cbmodes(myCbmodes);
1727  pmodule_ircd_cmmodes(myCmmodes);
1730 
1740 
1743 
1744  return MOD_CONT;
1745 }
CBModeInfo myCbmodeinfos[]
Definition: ultimate2.c:382
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
E void set_redirect(Channel *chan, char *value)
Definition: channels.c:2022
E int32 opcnt
Definition: extern.h:1140
E char * RemotePassword3
Definition: extern.h:270
void ultimate2_cmd_391(char *source, char *timestr)
Definition: ultimate2.c:948
void ultimate2_cmd_svsmode_chan(char *name, char *mode, char *nick)
Definition: ultimate2.c:1434
void ultimate2_cmd_privmsg(char *source, char *dest, char *buf)
Definition: ultimate2.c:1285
E void pmodule_cmd_svspart(void(*func)(char *source, char *nick, char *chan))
Definition: ircd.c:1056
void ultimate2_cmd_global(char *source, char *buf)
Definition: ultimate2.c:1071
void ultimate2_cmd_serv_notice(char *source, char *dest, char *msg)
Definition: ultimate2.c:1299
int anope_event_quit(char *source, int ac, char **av)
Definition: ultimate2.c:1154
E void do_topic(const char *source, int ac, char **av)
Definition: channels.c:1249
int anope_event_kill(char *source, int ac, char **av)
Definition: ultimate2.c:1177
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
void ultimate2_cmd_351(char *source)
Definition: ultimate2.c:1319
void ultimate2_cmd_join(char *user, char *channel, time_t chantime)
Definition: ultimate2.c:831
E char * RemotePassword
Definition: extern.h:264
void ultimate2_cmd_part(char *nick, char *chan, char *buf)
Definition: ultimate2.c:934
void ultimate2_cmd_svsnick(char *source, char *guest, time_t when)
Definition: ultimate2.c:1111
void ultimate2_cmd_mode(char *source, char *dest, char *buf)
Definition: ultimate2.c:1336
int ultiamte2_flood_mode_check(char *value)
Definition: ultimate2.c:1547
E void pmodule_cmd_bot_chan_mode(void(*func)(char *nick, char *chan))
Definition: ircd.c:827
#define UMODE_R
Definition: bahamut.h:42
int ultiamte2_valid_chan(char *chan)
Definition: ultimate2.c:1604
char nick[NICKMAX]
Definition: services.h:875
E void do_squit(const char *source, int ac, char **av)
Definition: servers.c:398
int anope_event_setident(char *source, int ac, char **av)
Definition: ultimate2.c:490
E int snprintf(char *buf, size_t size, const char *fmt,...)
Definition: compat.c:37
void ultimate2_cmd_svspart(char *source, char *nick, char *chan)
Definition: ultimate2.c:1517
int anope_event_snetinfo(char *source, int ac, char **av)
Definition: ultimate2.c:1488
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
int anope_event_away(char *source, int ac, char **av)
Definition: ultimate2.c:1129
#define UMODE_w
Definition: bahamut.h:21
int anope_event_error(char *source, int ac, char **av)
Definition: ultimate2.c:1561
#define CBM_MINUS_NO_ARG
Definition: services.h:928
E void change_user_username(User *user, const char *username)
Definition: users.c:170
E char * s_BotServ
Definition: extern.h:287
E IRCDVar * ircd
Definition: extern.h:39
void ultiamte2_set_umode(User *user, int ac, char **av)
Definition: ultimate2.c:153
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
void ultimate2_cmd_svid_umode3(User *u, char *ts)
Definition: ultimate2.c:1463
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
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 ultimate2_cmd_ctcp(char *source, char *dest, char *buf)
Definition: ultimate2.c:1611
void ultimate2_cmd_svshold(char *nick)
Definition: ultimate2.c:1383
void ultimate2_cmd_401(char *source, char *who)
Definition: ultimate2.c:1022
E int nick_identified(User *u)
Definition: nickserv.c:1111
void ultimate2_cmd_unsgline(char *mask)
Definition: ultimate2.c:1395
void ultimate2_cmd_remove_akill(char *user, char *host)
Definition: ultimate2.c:799
void ultimate2_cmd_311(char *buf)
Definition: ultimate2.c:977
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
int anope_event_server(char *source, int ac, char **av)
Definition: ultimate2.c:1214
E void pmodule_cmd_211(void(*func)(char *buf))
Definition: ircd.c:924
void ultimate2_cmd_242(char *buf)
Definition: ultimate2.c:1041
E void pmodule_cmd_unsqline(void(*func)(char *user))
Definition: ircd.c:853
void ultimate2_cmd_svsnoop(char *server, int set)
Definition: ultimate2.c:789
E void pmodule_cmd_sgline(void(*func)(char *mask, char *reason))
Definition: ircd.c:1007
void ultimate2_cmd_release_svshold(char *nick)
Definition: ultimate2.c:1389
void ultimate2_cmd_bot_nick(char *nick, char *user, char *host, char *real, char *modes)
Definition: ultimate2.c:1345
void ultimate2_cmd_quit(char *source, char *buf)
Definition: ultimate2.c:1327
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
#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
void ultimate2_cmd_vhost_off(User *u)
Definition: ultimate2.c:812
E char * ServerDesc
Definition: extern.h:275
int anope_event_chghost(char *source, int ac, char **av)
Definition: ultimate2.c:565
E void pmodule_cmd_bob(void(*func)())
Definition: ircd.c:976
E void pmodule_ircd_flood_mode_char_remove(char *mode)
Definition: ircd.c:1130
uint32 svid
Definition: services.h:888
void ultimate2_cmd_svso(char *source, char *nick, char *flag)
Definition: ultimate2.c:1091
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
CBMode myCbmodes[128]
Definition: ultimate2.c:316
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 ultimate2_cmd_250(char *buf)
Definition: ultimate2.c:957
MDE Message * createMessage(const char *name, int(*func)(char *source, int ac, char **av))
Definition: modules.c:1470
int anope_event_chgident(char *source, int ac, char **av)
Definition: ultimate2.c:509
#define CUS_VOICE
Definition: services.h:1342
#define IRCD
Definition: modules.h:63
#define UMODE_g
Definition: bahamut.h:35
#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
void ultimate2_cmd_notice_ops(char *source, char *dest, char *buf)
Definition: ultimate2.c:1257
void moduleAddAnopeCmds()
Definition: ultimate2.c:1630
#define CMODE_R
Definition: bahamut.h:52
E void pmodule_cmd_unsgline(void(*func)(char *mask))
Definition: ircd.c:991
void ultimate2_cmd_vhost_on(char *nick, char *vIdent, char *vhost)
Definition: ultimate2.c:817
CUMode myCumodes[128]
Definition: ultimate2.c:404
void ultimate2_cmd_307(char *buf)
Definition: ultimate2.c:967
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
E char * cs_get_key(ChannelInfo *ci)
Definition: chanserv.c:2447
E void cs_set_redirect(ChannelInfo *ci, char *value)
Definition: chanserv.c:2572
#define CMODE_I
Definition: ultimate2.h:39
MDE void moduleSetType(MODType type)
Definition: modules.c:818
E void pmodule_cmd_jupe(void(*func)(char *jserver, char *who, char *reason))
Definition: ircd.c:1072
char * botchanumode
Definition: services.h:299
int anope_event_ping(char *source, int ac, char **av)
Definition: ultimate2.c:1121
E void update_host(User *user)
Definition: users.c:104
E void pmodule_cmd_243(void(*func)(char *buf))
Definition: ircd.c:919
void ultimate2_cmd_privmsg2(char *source, char *dest, char *msg)
Definition: ultimate2.c:1294
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 ultimate2_cmd_219(char *source, char *letter)
Definition: ultimate2.c:1007
void ultimate2_cmd_nick(char *nick, char *name, char *mode)
Definition: ultimate2.c:1309
E int is_services_root(User *u)
Definition: operserv.c:577
E int m_nickcoll(char *user)
Definition: messages.c:20
E char * cs_get_redirect(ChannelInfo *ci)
Definition: chanserv.c:2476
void ultimate2_cmd_serv_privmsg(char *source, char *dest, char *msg)
Definition: ultimate2.c:1304
E void pmodule_cmd_375(void(*func)(char *source))
Definition: ircd.c:746
void ultimate2_cmd_sqline(char *mask, char *reason)
Definition: ultimate2.c:784
E void pmodule_key_mode(int mode)
Definition: ircd.c:1196
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 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 ultimate2_cmd_topic(char *whosets, char *chan, char *whosetit, char *topic, time_t when)
Definition: ultimate2.c:805
E char * ServiceHost
Definition: extern.h:277
#define UMODE_x
Definition: bahamut.h:23
int anope_event_admin(char *source, int ac, char **av)
Definition: ultimate2.c:1542
E char * EncModule
Definition: extern.h:580
void ultimate2_cmd_notice(char *source, char *dest, char *buf)
Definition: ultimate2.c:1267
void ultimate2_cmd_pass(char *pass)
Definition: ultimate2.c:868
E void pmodule_invite_cmode(int mode)
Definition: ircd.c:1181
void ultimate2_cmd_318(char *source, char *who)
Definition: ultimate2.c:1031
int anope_event_setname(char *source, int ac, char **av)
Definition: ultimate2.c:452
E void cs_set_flood(ChannelInfo *ci, char *value)
Definition: chanserv.c:2500
#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
E User * finduser(const char *nick)
Definition: users.c:323
void ultimate2_cmd_capab()
Definition: ultimate2.c:857
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
E void set_flood(Channel *chan, char *value)
Definition: channels.c:1972
MDE void moduleAddVersion(const char *version)
Definition: modules.c:1760
void moduleAddIRCDMsgs(void)
Definition: ultimate2.c:595
#define UMODE_a
Definition: bahamut.h:16
void ultimate2_cmd_kick(char *source, char *chan, char *user, char *buf)
Definition: ultimate2.c:1248
int anope_event_part(char *source, int ac, char **av)
Definition: ultimate2.c:1232
void ultimate2_cmd_375(char *source)
Definition: ultimate2.c:1366
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
int anope_event_nick(char *source, int ac, char **av)
Definition: ultimate2.c:547
E void del_ban(Channel *chan, char *mask)
Definition: channels.c:1779
void ultimate2_cmd_svid_umode(char *nick, time_t ts)
Definition: ultimate2.c:1441
int anope_event_436(char *source, int ac, char **av)
Definition: ultimate2.c:584
void ultimate2_cmd_szline(char *mask, char *reason, char *whom)
Definition: ultimate2.c:1407
void ultimate2_cmd_eob()
Definition: ultimate2.c:1527
E void pmodule_ircd_cumodes(CUMode modes[128])
Definition: ircd.c:1117
E const char version_flags[]
Definition: extern.h:771
#define CMODE_f
Definition: charybdis.h:35
CMMode myCmmodes[128]
Definition: ultimate2.c:289
void ultimate2_cmd_swhois(char *source, char *who, char *mask)
Definition: ultimate2.c:1522
void ultimate2_cmd_akill(char *user, char *host, char *who, time_t when, time_t expires, char *reason)
Definition: ultimate2.c:836
E void alog(const char *fmt,...) FORMAT(printf
void ultimate2_cmd_guest_nick(char *nick, char *user, char *host, char *real, char *modes)
Definition: ultimate2.c:1418
E int servernum
Definition: extern.h:615
#define UMODE_P
Definition: ultimate2.h:23
void ultimate2_cmd_372(char *source, char *msg)
Definition: ultimate2.c:1355
void ultimate2_cmd_chg_nick(char *oldnick, char *newnick)
Definition: ultimate2.c:1101
void ultimate2_cmd_svid_umode2(User *u, char *ts)
Definition: ultimate2.c:1454
E char * get_redirect(Channel *chan)
Definition: channels.c:1894
char myCsmodes[128]
Definition: ultimate2.c:268
void ultimate2_cmd_chgident(char *nick, char *vIdent)
Definition: ultimate2.c:915
#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_CHANMODE
Definition: services.h:1394
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
int anope_event_credits(char *source, int ac, char **av)
Definition: ultimate2.c:1537
E char * cs_get_flood(ChannelInfo *ci)
Definition: chanserv.c:2417
E void display_news(User *u, int16 type)
Definition: news.c:269
#define CMODE_K
Definition: inspircd11.h:37
unsigned long umodes[128]
Definition: ultimate2.c:245
#define CMODE_x
Definition: ultimate2.h:37
E Server * findserver(Server *s, const char *name)
Definition: servers.c:261
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
int anope_event_sqline(char *source, int ac, char **av)
Definition: ultimate2.c:1493
void ultimate2_cmd_sgline(char *mask, char *reason)
Definition: ultimate2.c:1413
E void pmodule_cmd_242(void(*func)(char *buf))
Definition: ircd.c:914
E int UseTokens
Definition: extern.h:360
#define NI_MSG
Definition: services.h:1292
E int debug
Definition: extern.h:775
void ultimate2_cmd_svskill(char *source, char *user, char *buf)
Definition: ultimate2.c:842
void ultimate2_cmd_connect(int servernum)
Definition: ultimate2.c:885
E int is_services_admin(User *u)
Definition: operserv.c:591
int anope_event_squit(char *source, int ac, char **av)
Definition: ultimate2.c:1146
E void set_limit(Channel *chan, char *value)
Definition: channels.c:2011
int AnopeInit(int argc, char **argv)
Definition: ultimate2.c:1712
#define CMODE_L
Definition: charybdis.h:43
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
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
E char * s_HostServ
Definition: extern.h:303
void ultimate2_cmd_nc_change(User *u)
Definition: ultimate2.c:1448
E void pmodule_cmd_250(void(*func)(char *buf))
Definition: ircd.c:874
void ultimate2_cmd_squit(char *servname, char *message)
Definition: ultimate2.c:1081
void ultimate2_cmd_372_error(char *source)
Definition: ultimate2.c:1360
void ultimate2_cmd_svsjoin(char *source, char *nick, char *chan, char *param)
Definition: ultimate2.c:1505
void ultimate2_cmd_jupe(char *jserver, char *who, char *reason)
Definition: ultimate2.c:1571
E void pmodule_ircd_version(char *version)
Definition: ircd.c:1107
E const char version_number[]
Definition: extern.h:767
IRCDVar myIrcd[]
Definition: ultimate2.c:19
void ultimate2_cmd_svsadmin(char *server, int set)
Definition: ultimate2.c:794
E char * get_flood(Channel *chan)
Definition: channels.c:1860
#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
int anope_event_pass(char *source, int ac, char **av)
Definition: ultimate2.c:1473
E void pmodule_cmd_401(void(*func)(char *source, char *who))
Definition: ircd.c:904
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
E void pmodule_cmd_391(void(*func)(char *source, char *timestr))
Definition: ircd.c:869
void ultimate2_cmd_invite(char *source, char *chan, char *nick)
Definition: ultimate2.c:924
E void pmodule_cmd_remove_akill(void(*func)(char *user, char *host))
Definition: ircd.c:701
E void pmodule_ircd_cbmodes(CBMode modes[128])
Definition: ircd.c:1135
#define SERVER_JUPED
Definition: services.h:866
void ultimate2_cmd_svsmode(User *u, int ac, char **av)
Definition: ultimate2.c:851
int anope_event_topic(char *source, int ac, char **av)
Definition: ultimate2.c:1138
int ultiamte2_valid_nick(char *nick)
Definition: ultimate2.c:1594
E void pmodule_cmd_szline(void(*func)(char *mask, char *reason, char *whom))
Definition: ircd.c:1002
#define UMODE_r
Definition: bahamut.h:20
void ultimate2_cmd_unsqline(char *user)
Definition: ultimate2.c:826
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 ultimate2_cmd_211(char *buf)
Definition: ultimate2.c:1061
#define UMODE_A
Definition: bahamut.h:22
E void add_exception(Channel *chan, char *mask)
Definition: channels.c:1377
int anope_event_privmsg(char *source, int ac, char **av)
Definition: ultimate2.c:1224
int anope_event_sethost(char *source, int ac, char **av)
Definition: ultimate2.c:528
void ultimate2_cmd_chghost(char *nick, char *vhost)
Definition: ultimate2.c:906
#define CBM_NO_USER_MLOCK
Definition: services.h:930
int anope_event_netinfo(char *source, int ac, char **av)
Definition: ultimate2.c:1483
#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
int anope_event_mode(char *source, int ac, char **av)
Definition: ultimate2.c:1163
E void pmodule_cmd_notice(void(*func)(char *source, char *dest, char *buf))
Definition: ircd.c:792
E Server * servlist
Definition: extern.h:1051
#define UMODE_h
Definition: bahamut.h:17
int anope_event_notice(char *source, int ac, char **av)
Definition: ultimate2.c:1468
#define DEFAULT_MLOCK
Definition: bahamut.h:59
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
void ultimate2_cmd_unban(char *name, char *nick)
Definition: ultimate2.c:1427
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
int anope_event_join(char *source, int ac, char **av)
Definition: ultimate2.c:1195
E char * ServerName
Definition: extern.h:274
void ultimate2_cmd_bot_chan_mode(char *nick, char *chan)
Definition: ultimate2.c:1377
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
void ultimate2_cmd_243(char *buf)
Definition: ultimate2.c:1051
E void pmodule_cmd_svshold(void(*func)(char *nick))
Definition: ircd.c:981
#define SERVER_ISME
Definition: services.h:865
void ultimate2_cmd_pong(char *servname, char *who)
Definition: ultimate2.c:880
void ultimate2_cmd_global_legacy(char *source, char *fmt)
Definition: ultimate2.c:1585
IRCDCAPAB myIrcdcap[]
Definition: ultimate2.c:119
E void pmodule_cmd_serv_notice(void(*func)(char *source, char *dest, char *msg))
Definition: ircd.c:816
E char * get_key(Channel *chan)
Definition: channels.c:1874
E int m_whois(char *source, char *who)
Definition: messages.c:366
void ultimate2_cmd_notice2(char *source, char *dest, char *msg)
Definition: ultimate2.c:1280
E char * RemotePassword2
Definition: extern.h:267
void ultimate2_cmd_376(char *source)
Definition: ultimate2.c:1372
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 ultimate2_cmd_317(char *buf)
Definition: ultimate2.c:997
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_capab(char *source, int ac, char **av)
Definition: ultimate2.c:778
E void pmodule_flood_mode_check(int(*func)(char *value))
Definition: ircd.c:1092
#define NEWS_OPER
Definition: services.h:1050
E void change_user_realname(User *user, const char *realname)
Definition: users.c:147
E void pmodule_ircd_cbmodeinfos(CBModeInfo *modeinfos)
Definition: ircd.c:1112
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
E void pmodule_cmd_global_legacy(void(*func)(char *source, char *fmt))
Definition: ircd.c:934
int anope_event_chgname(char *source, int ac, char **av)
Definition: ultimate2.c:471
E void pmodule_cmd_mode(void(*func)(char *source, char *dest, char *buf))
Definition: ircd.c:768
E void pmodule_limit_mode(int mode)
Definition: ircd.c:1201
void ultimate2_cmd_server(char *servname, int hop, char *descript)
Definition: ultimate2.c:874
#define CMODE_i
Definition: bahamut.h:44
#define CMODE_S
Definition: hybrid.h:46
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
void ultimate2_cmd_bob()
Definition: ultimate2.c:900
E void pmodule_ircd_flood_mode_char_set(char *mode)
Definition: ircd.c:1125
int anope_event_whois(char *source, int ac, char **av)
Definition: ultimate2.c:1240
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
int anope_event_motd(char *source, int ac, char **av)
Definition: ultimate2.c:1203
void ultimate2_cmd_unszline(char *mask)
Definition: ultimate2.c:1401
int anope_event_rehash(char *source, int ac, char **av)
Definition: ultimate2.c:1532
E char * normalizeBuffer(char *)
Definition: botserv.c:1101
int anope_event_vctrl(char *source, int ac, char **av)
Definition: ultimate2.c:1478
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 CUF_PROTECT_BOTSERV
Definition: services.h:956
int anope_event_kick(char *source, int ac, char **av)
Definition: ultimate2.c:1186
void ultimate2_cmd_312(char *buf)
Definition: ultimate2.c:987
#define UMODE_o
Definition: bahamut.h:19
E void pmodule_cmd_219(void(*func)(char *source, char *letter))
Definition: ircd.c:899
#define CAPAB_KNOCK
Definition: services.h:1382