Anope IRC Services  Version 1.8
unreal31.c
Go to the documentation of this file.
1 /* Unreal IRCD 3.1.x 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 "unreal31.h"
19 #include "version.h"
20 
22  {"UnrealIRCd 3.1.x", /* ircd name */
23  "+oS", /* nickserv mode */
24  "+oS", /* chanserv mode */
25  "+oS", /* memoserv mode */
26  "+oS", /* hostserv mode */
27  "+ioS", /* operserv mode */
28  "+oS", /* botserv mode */
29  "+oS", /* helpserv mode */
30  "+iS", /* Dev/Null mode */
31  "+ioS", /* Global mode */
32  "+oS", /* nickserv alias mode */
33  "+oS", /* chanserv alias mode */
34  "+oS", /* memoserv alias mode */
35  "+ioS", /* hostserv alias mode */
36  "+ioS", /* operserv alias mode */
37  "+oS", /* botserv alias mode */
38  "+oS", /* helpserv alias mode */
39  "+iS", /* Dev/Null alias mode */
40  "+ioS", /* Global alias mode */
41  "+qS", /* Used by BotServ Bots */
42  5, /* Chan Max Symbols */
43  "-cilmnpstuzACGHKNOQRSV", /* Modes to Remove */
44  "+ao", /* Channel Umode used by Botserv bots */
45  1, /* SVSNICK */
46  1, /* Vhost */
47  1, /* Has Owner */
48  "+q", /* Mode to set for an owner */
49  "-q", /* Mode to unset for an owner */
50  "+a", /* Mode to set for channel admin */
51  "-a", /* 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  "-r+d", /* Mode on Nick Change */
58  0, /* Supports SGlines */
59  1, /* Supports SQlines */
60  1, /* Supports SZlines */
61  1, /* 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  1, /* TS Topic Forward */
67  0, /* TS Topci Backward */
68  0, /* Protected Umode */
69  0, /* Has Admin */
70  0, /* Chan SQlines */
71  0, /* Quit on Kill */
72  0, /* SVSMODE unban */
73  1, /* Has Protect */
74  1, /* Reverse */
75  1, /* Chan Reg */
76  CMODE_r, /* Channel Mode */
77  1, /* vidents */
78  1, /* svshold */
79  1, /* time stamp on mode */
80  0, /* NICKIP */
81  1, /* O:LINE */
82  1, /* UMODE */
83  1, /* VHOST ON NICK */
84  1, /* Change RealName */
85  CMODE_K, /* No Knock */
86  CMODE_A, /* Admin Only */
87  DEFAULT_MLOCK, /* Default MLOCK */
88  UMODE_x, /* Vhost Mode */
89  1, /* +f */
90  1, /* +L */
91  CMODE_f,
92  CMODE_L,
93  0,
94  1, /* No Knock requires +i */
95  NULL, /* CAPAB Chan Modes */
96  0, /* We support Unreal TOKENS */
97  1, /* TOKENS are CASE inSensitive */
98  0, /* TIME STAMPS are BASE64 */
99  0, /* +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  "x", /* vhost char */
106  0, /* ts6 */
107  1, /* support helper umode */
108  0, /* p10 */
109  NULL, /* character set */
110  0, /* 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 
120 
122  {
123  CAPAB_NOQUIT, /* NOQUIT */
124  0, /* TSMODE */
125  0, /* UNCONNECT */
126  0, /* NICKIP */
127  0, /* SJOIN */
128  CAPAB_ZIP, /* ZIP */
129  0, /* BURST */
130  0, /* TS5 */
131  0, /* TS3 */
132  0, /* DKEY */
133  0, /* PT4 */
134  0, /* SCS */
135  0, /* QS */
136  0, /* UID */
137  0, /* KNOCK */
138  0, /* CLIENT */
139  0, /* IPV6 */
140  0, /* SSJ5 */
141  0, /* SN2 */
142  CAPAB_TOKEN, /* TOKEN */
143  0, /* VHOST */
144  CAPAB_SSJ3, /* SSJ3 */
145  CAPAB_NICK2, /* NICK2 */
146  CAPAB_UMODE2, /* UMODE2 */
147  CAPAB_VL, /* VL */
148  CAPAB_TLKEXT, /* TLKEXT */
149  0, /* DODKEY */
150  0, /* DOZIP */
151  0,
152  0, 0}
153 };
154 
155 unsigned long umodes[128] = {
156  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
157  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
158  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
159  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
160  0, UMODE_A, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
161  0,
162  0,
163  0,
164  0, 0, 0, 0, 0, 0, 0,
165  0,
166  0, 0, 0, 0, 0,
167  0, UMODE_a, 0, 0, 0, 0, 0,
168  UMODE_g,
169  UMODE_h, UMODE_i, 0, 0, 0, 0, 0, UMODE_o,
170  0,
171  0, UMODE_r, 0, 0, 0, 0, UMODE_w,
172  UMODE_x,
173  0,
174  0,
175  0, 0, 0, 0, 0
176 };
177 
178 
179 char myCsmodes[128] = {
180  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
181  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
182 
183  0,
184  0,
185  0, 0, 0,
186  'h', /* (37) % Channel halfops */
187  0,
188  0, 0, 0,
189  'q',
190 
191  'v', 0, 0, 0, 0,
192  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
193 
194  'o', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
195  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
196 
197  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
198  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'a', 0
199 };
200 
202  {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
203  {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
204  {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
205  {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
206  {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
207  {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
208  {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
209  {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
210  {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
211  {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
212  {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
213  {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
214  {NULL},
215  {NULL},
216  {add_ban, del_ban},
217  {NULL},
218  {NULL},
220  {NULL},
221  {NULL},
222  {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
223  {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
224  {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}
225 };
226 
227 
228 
230  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
231  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
232  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
233  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
234  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
235  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
236  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
237  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
238  {0},
239  {CMODE_A, CBM_NO_USER_MLOCK, NULL, NULL},
240  {0}, /* B */
241  {CMODE_C, 0, NULL, NULL}, /* C */
242  {0}, /* D */
243  {0}, /* E */
244  {0}, /* F */
245  {CMODE_G, 0, NULL, NULL}, /* G */
246  {CMODE_H, CBM_NO_USER_MLOCK, NULL, NULL},
247  {0}, /* I */
248  {0}, /* J */
249  {CMODE_K, 0, NULL, NULL}, /* K */
251  {0}, /* M */
252  {CMODE_N, 0, NULL, NULL}, /* N */
253  {CMODE_O, CBM_NO_USER_MLOCK, NULL, NULL},
254  {0}, /* P */
255  {CMODE_Q, 0, NULL, NULL}, /* Q */
256  {CMODE_R, 0, NULL, NULL}, /* R */
257  {CMODE_S, 0, NULL, NULL}, /* S */
258  {0}, /* T */
259  {0}, /* U */
260  {CMODE_V, 0, NULL, NULL}, /* V */
261  {0}, /* W */
262  {0}, /* X */
263  {0}, /* Y */
264  {0}, /* Z */
265  {0}, {0}, {0}, {0}, {0}, {0},
266  {0}, /* a */
267  {0}, /* b */
268  {CMODE_c, 0, NULL, NULL},
269  {0}, /* d */
270  {0}, /* e */
272  {0}, /* g */
273  {0}, /* h */
274  {CMODE_i, 0, NULL, NULL},
275  {0}, /* j */
278  {CMODE_m, 0, NULL, NULL},
279  {CMODE_n, 0, NULL, NULL},
280  {0}, /* o */
281  {CMODE_p, 0, NULL, NULL},
282  {0}, /* q */
283  {CMODE_r, CBM_NO_MLOCK, NULL, NULL},
284  {CMODE_s, 0, NULL, NULL},
285  {CMODE_t, 0, NULL, NULL},
286  {CMODE_u, 0, NULL, NULL},
287  {0}, /* v */
288  {0}, /* w */
289  {0}, /* x */
290  {0}, /* y */
291  {CMODE_z, 0, NULL, NULL},
292  {0}, {0}, {0}, {0}
293 };
294 
296  {'c', CMODE_c, 0, NULL, NULL},
297  {'f', CMODE_f, 0, get_flood, cs_get_flood},
298  {'i', CMODE_i, 0, NULL, NULL},
299  {'k', CMODE_k, 0, get_key, cs_get_key},
301  {'m', CMODE_m, 0, NULL, NULL},
302  {'n', CMODE_n, 0, NULL, NULL},
303  {'p', CMODE_p, 0, NULL, NULL},
304  {'r', CMODE_r, 0, NULL, NULL},
305  {'s', CMODE_s, 0, NULL, NULL},
306  {'t', CMODE_t, 0, NULL, NULL},
307  {'u', CMODE_u, 0, NULL, NULL},
308  {'z', CMODE_z, 0, NULL, NULL},
309  {'A', CMODE_A, 0, NULL, NULL},
310  {'C', CMODE_C, 0, NULL, NULL},
311  {'G', CMODE_G, 0, NULL, NULL},
312  {'H', CMODE_H, 0, NULL, NULL},
313  {'K', CMODE_K, 0, NULL, NULL},
315  {'N', CMODE_N, 0, NULL, NULL},
316  {'O', CMODE_O, 0, NULL, NULL},
317  {'Q', CMODE_Q, 0, NULL, NULL},
318  {'R', CMODE_R, 0, NULL, NULL},
319  {'S', CMODE_S, 0, NULL, NULL},
320  {'V', CMODE_V, 0, NULL, NULL},
321  {0}
322 };
323 
325  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
326  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
327  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
328  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
329 
330  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
331  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
332  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
333  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
334 
335  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
336  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
337  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
338  {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
339 
340  {0},
341 
343  {0}, /* b */
344  {0}, /* c */
345  {0}, /* d */
346  {0}, /* e */
347  {0}, /* f */
348  {0}, /* g */
350  {0}, /* i */
351  {0}, /* j */
352  {0}, /* k */
353  {0}, /* l */
354  {0}, /* m */
355  {0}, /* n */
357  {0}, /* p */
359  {0}, /* r */
360  {0}, /* s */
361  {0}, /* t */
362  {0}, /* u */
363  {CUS_VOICE, 0, NULL},
364  {0}, /* w */
365  {0}, /* x */
366  {0}, /* y */
367  {0}, /* z */
368  {0}, {0}, {0}, {0}, {0}
369 };
370 
371 
372 void unreal_set_umode(User * user, int ac, char **av)
373 {
374  int add = 1; /* 1 if adding modes, 0 if deleting */
375  char *modes = av[0];
376 
377  ac--;
378 
379  if (debug)
380  alog("debug: Changing mode for %s to %s", user->nick, modes);
381 
382  while (*modes) {
383 
384  /* This looks better, much better than "add ? (do_add) : (do_remove)".
385  * At least this is readable without paying much attention :) -GD
386  */
387  if (add)
388  user->mode |= umodes[(int) *modes];
389  else
390  user->mode &= ~umodes[(int) *modes];
391 
392  switch (*modes++) {
393  case '+':
394  add = 1;
395  break;
396  case '-':
397  add = 0;
398  break;
399  case 'd':
400  if (ac == 0) {
401  break;
402  }
403 
404  ac--;
405  av++;
406  user->svid = strtoul(*av, NULL, 0);
407  break;
408  case 'o':
409  if (add) {
410  opcnt++;
411  if (WallOper) {
413  "\2%s\2 is now an IRC operator.",
414  user->nick);
415  }
416  display_news(user, NEWS_OPER);
417  } else {
418  opcnt--;
419  }
420  break;
421  case 'r':
422  if (add && !nick_identified(user)) {
423  common_svsmode(user, "-r", NULL);
424  user->mode &= ~UMODE_r;
425  }
426  break;
427  case 'x':
428  if (!add)
429  {
430  if (user->vhost)
431  free(user->vhost);
432  user->vhost = NULL;
433  }
434  update_host(user);
435  break;
436  }
437  }
438 }
439 
440 
441 /* *INDENT-OFF* */
442 void moduleAddIRCDMsgs(void) {
443  Message *m;
444 
445  updateProtectDetails("PROTECT","PROTECTME","protect","deprotect","AUTOPROTECT","+a","-a");
446 
481  m = createMessage("UNSQLINE", anope_event_null); addCoreMessage(IRCD,m);
482  m = createMessage("PROTOCTL", anope_event_capab); addCoreMessage(IRCD,m);
493 }
494 
495 /* *INDENT-ON* */
496 
497 /* Event: PROTOCTL */
498 int anope_event_capab(char *source, int ac, char **av)
499 {
500  capab_parse(ac, av);
501  return MOD_CONT;
502 }
503 
504 void unreal_cmd_svsnoop(char *server, int set)
505 {
506  send_cmd(NULL, "SVSNOOP %s %s", server, (set ? "+" : "-"));
507 }
508 
509 void unreal_cmd_svsadmin(char *server, int set)
510 {
511  unreal_cmd_svsnoop(server, set);
512 }
513 
514 void unreal_cmd_remove_akill(char *user, char *host)
515 {
516  send_cmd(NULL, "TKL - G %s %s %s", user, host, s_OperServ);
517 }
518 
519 void unreal_cmd_topic(char *whosets, char *chan, char *whosetit,
520  char *topic, time_t when)
521 {
522  send_cmd(whosets, "TOPIC %s %s %lu :%s", chan, whosetit,
523  (unsigned long int) when, topic);
524 }
525 
527 {
528  common_svsmode(u, "-xt", NULL);
529  common_svsmode(u, "+x", NULL);
530  notice_lang(s_HostServ, u, HOST_OFF_UNREAL, u->nick, ircd->vhostchar);
531 }
532 
533 void unreal_cmd_akill(char *user, char *host, char *who, time_t when,
534  time_t expires, char *reason)
535 {
536  send_cmd(NULL, "TKL + G %s %s %s %ld %ld :%s", user, host, who,
537  (long int) time(NULL) + 86400 * 2, (long int) when, reason);
538 }
539 
540 void unreal_cmd_svskill(char *source, char *user, char *buf)
541 {
542  if (!buf) {
543  return;
544  }
545 
546  if (!source || !user) {
547  return;
548  }
549 
550  send_cmd(source, "SVSKILL %s :%s", user, buf);
551 }
552 
553 void unreal_cmd_svsmode(User * u, int ac, char **av)
554 {
555  send_cmd(ServerName, "SVSMODE %s %s%s%s", u->nick, av[0],
556  (ac == 2 ? " " : ""), (ac == 2 ? av[1] : ""));
557 }
558 
559 
560 void unreal_cmd_372(char *source, char *msg)
561 {
562  send_cmd(ServerName, "372 %s :- %s", source, msg);
563 }
564 
565 void unreal_cmd_372_error(char *source)
566 {
567  send_cmd(ServerName, "422 %s :- MOTD file not found! Please "
568  "contact your IRC administrator.", source);
569 }
570 
571 void unreal_cmd_375(char *source)
572 {
573  send_cmd(ServerName, "375 %s :- %s Message of the Day",
574  source, ServerName);
575 }
576 
577 void unreal_cmd_376(char *source)
578 {
579  send_cmd(ServerName, "376 %s :End of /MOTD command.", source);
580 }
581 
582 void unreal_cmd_nick(char *nick, char *name, char *modes)
583 {
584  EnforceQlinedNick(nick, NULL);
585  send_cmd(NULL, "NICK %s 1 %ld %s %s %s 0 %s * :%s", nick,
586  (long int) time(NULL), ServiceUser, ServiceHost, ServerName,
587  modes, name);
588  unreal_cmd_sqline(nick, "Reserved for services");
589 }
590 
591 void unreal_cmd_guest_nick(char *nick, char *user, char *host, char *real,
592  char *modes)
593 {
594  send_cmd(NULL, "NICK %s 1 %ld %s %s %s 0 %s * :%s", nick,
595  (long int) time(NULL), user, host, ServerName, modes, real);
596 }
597 
598 void unreal_cmd_mode(char *source, char *dest, char *buf)
599 {
600  if (!buf) {
601  return;
602  }
603 
604  send_cmd(source, "MODE %s %s", dest, buf);
605 }
606 
607 void unreal_cmd_bot_nick(char *nick, char *user, char *host, char *real,
608  char *modes)
609 {
611  send_cmd(NULL, "NICK %s 1 %ld %s %s %s 0 %s * :%s", nick,
612  (long int) time(NULL), user, host, ServerName, modes, real);
613  unreal_cmd_sqline(nick, "Reserved for services");
614 }
615 
616 void unreal_cmd_kick(char *source, char *chan, char *user, char *buf)
617 {
618  if (buf) {
619  send_cmd(source, "KICK %s %s :%s", chan, user, buf);
620  } else {
621  send_cmd(source, "KICK %s %s", chan, user);
622  }
623 }
624 
625 void unreal_cmd_notice_ops(char *source, char *dest, char *buf)
626 {
627  if (!buf) {
628  return;
629  }
630 
631  send_cmd(NULL, "NOTICE @%s :%s", dest, buf);
632 }
633 
634 
635 void unreal_cmd_notice(char *source, char *dest, char *buf)
636 {
637  if (!buf) {
638  return;
639  }
640 
641  if (NSDefFlags & NI_MSG) {
642  unreal_cmd_privmsg2(source, dest, buf);
643  } else {
644  send_cmd(source, "NOTICE %s :%s", dest, buf);
645  }
646 }
647 
648 void unreal_cmd_notice2(char *source, char *dest, char *msg)
649 {
650  send_cmd(source, "NOTICE %s :%s", dest, msg);
651 }
652 
653 void unreal_cmd_privmsg(char *source, char *dest, char *buf)
654 {
655  if (!buf) {
656  return;
657  }
658 
659  send_cmd(source, "PRIVMSG %s :%s", dest, buf);
660 }
661 
662 void unreal_cmd_privmsg2(char *source, char *dest, char *msg)
663 {
664  send_cmd(source, "PRIVMSG %s :%s", dest, msg);
665 }
666 
667 void unreal_cmd_serv_notice(char *source, char *dest, char *msg)
668 {
669  send_cmd(source, "NOTICE $%s :%s", dest, msg);
670 }
671 
672 void unreal_cmd_serv_privmsg(char *source, char *dest, char *msg)
673 {
674  send_cmd(source, "PRIVMSG $%s :%s", dest, msg);
675 }
676 
677 
678 void unreal_cmd_bot_chan_mode(char *nick, char *chan)
679 {
680  anope_cmd_mode(nick, chan, "%s %s %s", ircd->botchanumode, nick, nick);
681 }
682 
683 void unreal_cmd_351(char *source)
684 {
685  send_cmd(ServerName, "351 %s Anope-%s %s :%s - %s (%s) -- %s",
688 }
689 
690 /* QUIT */
691 void unreal_cmd_quit(char *source, char *buf)
692 {
693  if (buf) {
694  send_cmd(source, "QUIT :%s", buf);
695  } else {
696  send_cmd(source, "QUIT");
697  }
698 }
699 
700 /* PROTOCTL */
702 {
703  /*
704  See Unreal's protoctl.txt for reference
705  VHP - Send hostnames in NICKv2 even if not sethosted
706  */
707  send_cmd(NULL, "PROTOCTL NICKv2 VHP");
708 }
709 
710 /* PASS */
711 void unreal_cmd_pass(char *pass)
712 {
713  send_cmd(NULL, "PASS :%s", pass);
714 }
715 
716 /* SERVER name hop descript */
717 /* Unreal 3.2 actually sends some info about itself in the descript area */
718 void unreal_cmd_server(char *servname, int hop, char *descript)
719 {
720  send_cmd(NULL, "SERVER %s %d :%s", servname, hop, descript);
721 }
722 
723 /* PONG */
724 void unreal_cmd_pong(char *servname, char *who)
725 {
726  send_cmd(servname, "PONG %s", who);
727 }
728 
729 /* JOIN */
730 /* Althought Unreal 3.2 does not need the timestamp others do so
731  we get it in the common function call */
732 void unreal_cmd_join(char *user, char *channel, time_t chantime)
733 {
734  send_cmd(user, "JOIN %s", channel);
735 }
736 
737 /* UNSQLINE */
738 void unreal_cmd_unsqline(char *user)
739 {
740  if (!user) {
741  return;
742  }
743  send_cmd(NULL, "UNSQLINE %s", user);
744 }
745 
746 /* CHGHOST */
747 void unreal_cmd_chghost(char *nick, char *vhost)
748 {
749  if (!nick || !vhost) {
750  return;
751  }
752  send_cmd(ServerName, "CHGHOST %s %s", nick, vhost);
753 }
754 
755 /* CHGIDENT */
756 void unreal_cmd_chgident(char *nick, char *vIdent)
757 {
758  if (!nick || !vIdent) {
759  return;
760  }
761  send_cmd(ServerName, "CHGIDENT %s %s", nick, vIdent);
762 }
763 
764 /* INVITE */
765 void unreal_cmd_invite(char *source, char *chan, char *nick)
766 {
767  if (!source || !chan || !nick) {
768  return;
769  }
770 
771  send_cmd(source, "INVITE %s %s", nick, chan);
772 }
773 
774 /* PART */
775 void unreal_cmd_part(char *nick, char *chan, char *buf)
776 {
777  if (!nick || !chan) {
778  return;
779  }
780 
781  if (buf) {
782  send_cmd(nick, "PART %s :%s", chan, buf);
783  } else {
784  send_cmd(nick, "PART %s", chan);
785  }
786 }
787 
788 /* 391 */
789 void unreal_cmd_391(char *source, char *timestr)
790 {
791  if (!timestr) {
792  return;
793  }
794  send_cmd(NULL, "391 :%s %s :%s", source, ServerName, timestr);
795 }
796 
797 /* 250 */
798 void unreal_cmd_250(char *buf)
799 {
800  if (!buf) {
801  return;
802  }
803 
804  send_cmd(NULL, "250 %s", buf);
805 }
806 
807 /* 307 */
808 void unreal_cmd_307(char *buf)
809 {
810  if (!buf) {
811  return;
812  }
813 
814  send_cmd(ServerName, "307 %s", buf);
815 }
816 
817 /* 311 */
818 void unreal_cmd_311(char *buf)
819 {
820  if (!buf) {
821  return;
822  }
823 
824  send_cmd(ServerName, "311 %s", buf);
825 }
826 
827 /* 312 */
828 void unreal_cmd_312(char *buf)
829 {
830  if (!buf) {
831  return;
832  }
833 
834  send_cmd(ServerName, "312 %s", buf);
835 }
836 
837 /* 317 */
838 void unreal_cmd_317(char *buf)
839 {
840  if (!buf) {
841  return;
842  }
843 
844  send_cmd(ServerName, "317 %s", buf);
845 }
846 
847 /* 219 */
848 void unreal_cmd_219(char *source, char *letter)
849 {
850  if (!source) {
851  return;
852  }
853 
854  if (letter) {
855  send_cmd(NULL, "219 %s %c :End of /STATS report.", source,
856  *letter);
857  } else {
858  send_cmd(NULL, "219 %s l :End of /STATS report.", source);
859  }
860 }
861 
862 /* 401 */
863 void unreal_cmd_401(char *source, char *who)
864 {
865  if (!source || !who) {
866  return;
867  }
868  send_cmd(ServerName, "401 %s %s :No such service.", source, who);
869 }
870 
871 /* 318 */
872 void unreal_cmd_318(char *source, char *who)
873 {
874  if (!source || !who) {
875  return;
876  }
877 
878  send_cmd(ServerName, "318 %s %s :End of /WHOIS list.", source, who);
879 }
880 
881 /* 242 */
882 void unreal_cmd_242(char *buf)
883 {
884  if (!buf) {
885  return;
886  }
887 
888  send_cmd(NULL, "242 %s", buf);
889 }
890 
891 /* 243 */
892 void unreal_cmd_243(char *buf)
893 {
894  if (!buf) {
895  return;
896  }
897 
898  send_cmd(NULL, "243 %s", buf);
899 }
900 
901 /* 211 */
902 void unreal_cmd_211(char *buf)
903 {
904  if (!buf) {
905  return;
906  }
907 
908  send_cmd(NULL, "211 %s", buf);
909 }
910 
911 /* GLOBOPS */
912 void unreal_cmd_global(char *source, char *buf)
913 {
914  if (!buf) {
915  return;
916  }
917 
918  send_cmd(source ? source : ServerName, "GLOBOPS :%s", buf);
919 }
920 
921 /* SQLINE */
922 void unreal_cmd_sqline(char *mask, char *reason)
923 {
924  if (!mask || !reason) {
925  return;
926  }
927 
928  send_cmd(NULL, "SQLINE %s :%s", mask, reason);
929 }
930 
931 /* SQUIT */
932 void unreal_cmd_squit(char *servname, char *message)
933 {
934  if (!servname || !message) {
935  return;
936  }
937 
938  send_cmd(NULL, "SQUIT %s :%s", servname, message);
939 }
940 
941 /* SVSO */
942 void unreal_cmd_svso(char *source, char *nick, char *flag)
943 {
944  if (!source || !nick || !flag) {
945  return;
946  }
947 
948  send_cmd(source, "SVSO %s %s", nick, flag);
949 }
950 
951 /* NICK <newnick> */
952 void unreal_cmd_chg_nick(char *oldnick, char *newnick)
953 {
954  if (!oldnick || !newnick) {
955  return;
956  }
957 
958  send_cmd(oldnick, "NICK %s", newnick);
959 }
960 
961 /* SVSNICK */
962 void unreal_cmd_svsnick(char *source, char *guest, time_t when)
963 {
964  if (!source || !guest) {
965  return;
966  }
967  send_cmd(NULL, "SVSNICK %s %s :%ld", source, guest, (long int) when);
968 }
969 
970 /* Functions that use serval cmd functions */
971 
972 void unreal_cmd_vhost_on(char *nick, char *vIdent, char *vhost)
973 {
974  if (!nick) {
975  return;
976  }
977  if (vIdent) {
978  unreal_cmd_chgident(nick, vIdent);
979  }
980  unreal_cmd_chghost(nick, vhost);
981 }
982 
984 {
985  me_server =
987 
989  if (servernum == 1) {
991  }
992  if (servernum == 2) {
994  }
995  if (servernum == 3) {
997  }
999 }
1000 
1002 {
1003  /* Not used */
1004 }
1005 
1006 /* Events */
1007 
1008 int anope_event_ping(char *source, int ac, char **av)
1009 {
1010  if (ac < 1)
1011  return MOD_CONT;
1012  unreal_cmd_pong(ac > 1 ? av[1] : ServerName, av[0]);
1013  return MOD_CONT;
1014 }
1015 
1016 int anope_event_436(char *source, int ac, char **av)
1017 {
1018  if (ac < 1)
1019  return MOD_CONT;
1020 
1021  m_nickcoll(av[0]);
1022  return MOD_CONT;
1023 }
1024 
1025 int anope_event_away(char *source, int ac, char **av)
1026 {
1027  if (!source) {
1028  return MOD_CONT;
1029  }
1030  m_away(source, (ac ? av[0] : NULL));
1031  return MOD_CONT;
1032 }
1033 
1034 int anope_event_topic(char *source, int ac, char **av)
1035 {
1036  if (ac != 4)
1037  return MOD_CONT;
1038  do_topic(source, ac, av);
1039  return MOD_CONT;
1040 }
1041 
1042 int anope_event_squit(char *source, int ac, char **av)
1043 {
1044  if (ac != 2)
1045  return MOD_CONT;
1046  do_squit(source, ac, av);
1047  return MOD_CONT;
1048 }
1049 
1050 int anope_event_quit(char *source, int ac, char **av)
1051 {
1052  if (ac != 1)
1053  return MOD_CONT;
1054  do_quit(source, ac, av);
1055  return MOD_CONT;
1056 }
1057 
1058 
1059 int anope_event_mode(char *source, int ac, char **av)
1060 {
1061  if (ac < 2)
1062  return MOD_CONT;
1063 
1064  if (*av[0] == '#' || *av[0] == '&') {
1065  do_cmode(source, ac, av);
1066  } else {
1067  do_umode(source, ac, av);
1068  }
1069  return MOD_CONT;
1070 }
1071 
1072 
1073 int anope_event_kill(char *source, int ac, char **av)
1074 {
1075  if (ac != 2)
1076  return MOD_CONT;
1077 
1078  m_kill(av[0], av[1]);
1079  return MOD_CONT;
1080 }
1081 
1082 int anope_event_kick(char *source, int ac, char **av)
1083 {
1084  if (ac != 3)
1085  return MOD_CONT;
1086  do_kick(source, ac, av);
1087  return MOD_CONT;
1088 }
1089 
1090 
1091 int anope_event_join(char *source, int ac, char **av)
1092 {
1093  if (ac != 1)
1094  return MOD_CONT;
1095  do_join(source, ac, av);
1096  return MOD_CONT;
1097 }
1098 
1099 int anope_event_motd(char *source, int ac, char **av)
1100 {
1101  if (!source) {
1102  return MOD_CONT;
1103  }
1104 
1105  m_motd(source);
1106  return MOD_CONT;
1107 }
1108 
1109 int anope_event_setname(char *source, int ac, char **av)
1110 {
1111  User *u;
1112 
1113  if (ac != 1)
1114  return MOD_CONT;
1115 
1116  u = finduser(source);
1117  if (!u) {
1118  if (debug) {
1119  alog("debug: SETNAME for nonexistent user %s", source);
1120  }
1121  return MOD_CONT;
1122  }
1123 
1124  change_user_realname(u, av[0]);
1125  return MOD_CONT;
1126 }
1127 
1128 int anope_event_chgname(char *source, int ac, char **av)
1129 {
1130  User *u;
1131 
1132  if (ac != 2)
1133  return MOD_CONT;
1134 
1135  u = finduser(av[0]);
1136  if (!u) {
1137  if (debug) {
1138  alog("debug: CHGNAME for nonexistent user %s", av[0]);
1139  }
1140  return MOD_CONT;
1141  }
1142 
1143  change_user_realname(u, av[1]);
1144  return MOD_CONT;
1145 }
1146 
1147 int anope_event_setident(char *source, int ac, char **av)
1148 {
1149  User *u;
1150 
1151  if (ac != 1)
1152  return MOD_CONT;
1153 
1154  u = finduser(source);
1155  if (!u) {
1156  if (debug) {
1157  alog("debug: SETIDENT for nonexistent user %s", source);
1158  }
1159  return MOD_CONT;
1160  }
1161 
1162  change_user_username(u, av[0]);
1163  return MOD_CONT;
1164 }
1165 int anope_event_chgident(char *source, int ac, char **av)
1166 {
1167  User *u;
1168 
1169  if (ac != 2)
1170  return MOD_CONT;
1171 
1172  u = finduser(av[0]);
1173  if (!u) {
1174  if (debug) {
1175  alog("debug: CHGIDENT for nonexistent user %s", av[0]);
1176  }
1177  return MOD_CONT;
1178  }
1179 
1180  change_user_username(u, av[1]);
1181  return MOD_CONT;
1182 }
1183 
1184 int anope_event_sethost(char *source, int ac, char **av)
1185 {
1186  User *u;
1187 
1188  if (ac != 1)
1189  return MOD_CONT;
1190 
1191  u = finduser(source);
1192  if (!u) {
1193  if (debug) {
1194  alog("debug: SETHOST for nonexistent user %s", source);
1195  }
1196  return MOD_CONT;
1197  }
1198 
1199  change_user_host(u, av[0]);
1200  return MOD_CONT;
1201 }
1202 
1203 
1204 int anope_event_nick(char *source, int ac, char **av)
1205 {
1206  User *user;
1207 
1208  if (ac != 2) {
1209  if (ac == 7) {
1210  /*
1211  <codemastr> that was a bug that is now fixed in 3.2.1
1212  <codemastr> in some instances it would use the non-nickv2 format
1213  <codemastr> it's sent when a nick collision occurs
1214  - so we have to leave it around for now -TSL
1215  */
1216  do_nick(source, av[0], av[3], av[4], av[5], av[6],
1217  strtoul(av[2], NULL, 10), 0, 0, "*", NULL);
1218  } else {
1219  user = do_nick(source, av[0], av[3], av[4], av[5], av[9],
1220  strtoul(av[2], NULL, 10), strtoul(av[6], NULL,
1221  0), 0, av[8],
1222  NULL);
1223  if (user)
1224  anope_set_umode(user, 1, &av[7]);
1225  }
1226  } else {
1227  do_nick(source, av[0], NULL, NULL, NULL, NULL,
1228  strtoul(av[1], NULL, 10), 0, 0, NULL, NULL);
1229  }
1230  return MOD_CONT;
1231 }
1232 
1233 
1234 int anope_event_chghost(char *source, int ac, char **av)
1235 {
1236  User *u;
1237 
1238  if (ac != 2)
1239  return MOD_CONT;
1240 
1241  u = finduser(av[0]);
1242  if (!u) {
1243  if (debug) {
1244  alog("debug: CHGHOST for nonexistent user %s", av[0]);
1245  }
1246  return MOD_CONT;
1247  }
1248 
1249  change_user_host(u, av[1]);
1250  return MOD_CONT;
1251 }
1252 
1253 /* EVENT: SERVER */
1254 int anope_event_server(char *source, int ac, char **av)
1255 {
1256  if (!stricmp(av[1], "1")) {
1257  uplink = sstrdup(av[0]);
1258  }
1259  do_server(source, av[0], av[1], av[2], NULL);
1260  return MOD_CONT;
1261 }
1262 
1263 
1264 int anope_event_privmsg(char *source, int ac, char **av)
1265 {
1266  if (ac != 2)
1267  return MOD_CONT;
1268  m_privmsg(source, av[0], av[1]);
1269  return MOD_CONT;
1270 }
1271 
1272 int anope_event_part(char *source, int ac, char **av)
1273 {
1274  if (ac < 1 || ac > 2)
1275  return MOD_CONT;
1276  do_part(source, ac, av);
1277  return MOD_CONT;
1278 }
1279 
1280 int anope_event_whois(char *source, int ac, char **av)
1281 {
1282  if (source && ac >= 1) {
1283  m_whois(source, av[0]);
1284  }
1285  return MOD_CONT;
1286 }
1287 
1288 /* SVSHOLD - set */
1289 void unreal_cmd_svshold(char *nick)
1290 {
1291  /* Not supported by this IRCD */
1292 }
1293 
1294 /* SVSHOLD - release */
1296 {
1297  /* Not Supported by this IRCD */
1298 }
1299 
1300 /* UNSGLINE */
1301 void unreal_cmd_unsgline(char *mask)
1302 {
1303  /* Not Supported by this IRCD */
1304 }
1305 
1306 /* UNSZLINE */
1307 void unreal_cmd_unszline(char *mask)
1308 {
1309  send_cmd(NULL, "%s - Z * %s %s", send_token("TKL", "BD"), mask,
1310  s_OperServ);
1311 }
1312 
1313 /* SZLINE */
1314 void unreal_cmd_szline(char *mask, char *reason, char *whom)
1315 {
1316  send_cmd(NULL, "%s + Z * %s %s %ld %ld :%s", send_token("TKL", "BD"),
1317  mask, whom, (long int) time(NULL) + 86400 * 2,
1318  (long int) time(NULL), reason);
1319 }
1320 
1321 /* SGLINE */
1322 void unreal_cmd_sgline(char *mask, char *reason)
1323 {
1324  /* Not Supported by this IRCD */
1325 }
1326 
1327 void unreal_cmd_unban(char *name, char *nick)
1328 {
1329  /* Not Supported by this IRCD */
1330 }
1331 
1332 /* SVSMODE channel modes */
1333 
1334 void unreal_cmd_svsmode_chan(char *name, char *mode, char *nick)
1335 {
1336  /* Not Supported by this IRCD */
1337 }
1338 
1339 
1340 /* SVSMODE +d */
1341 /* sent if svid is something weird */
1342 void unreal_cmd_svid_umode(char *nick, time_t ts)
1343 {
1344  send_cmd(ServerName, "SVSMODE %s +d 1", nick);
1345 }
1346 
1347 /* SVSMODE +d */
1348 /* nc_change was = 1, and there is no na->status */
1350 {
1351  common_svsmode(u, "-r+d", "1");
1352 }
1353 
1354 /* SVSMODE +r */
1355 void unreal_cmd_svid_umode2(User * u, char *ts)
1356 {
1357  if (u->svid != u->timestamp) {
1358  common_svsmode(u, "+rd", ts);
1359  } else {
1360  common_svsmode(u, "+r", NULL);
1361  }
1362 }
1363 
1364 void unreal_cmd_svid_umode3(User * u, char *ts)
1365 {
1366  /* not used */
1367 }
1368 
1369 /* svsjoin
1370  parv[0] - sender
1371  parv[1] - nick to make join
1372  parv[2] - channel(s) to join
1373  parv[3] - (optional) channel key(s)
1374 */
1375 void unreal_cmd_svsjoin(char *source, char *nick, char *chan, char *param)
1376 {
1377  if (param) {
1378  send_cmd(source, "SVSJOIN %s %s :%s", nick, chan, param);
1379  } else {
1380  send_cmd(source, "SVSJOIN %s :%s", nick, chan);
1381  }
1382 }
1383 
1384 /* svspart
1385  parv[0] - sender
1386  parv[1] - nick to make part
1387  parv[2] - channel(s) to part
1388 */
1389 void unreal_cmd_svspart(char *source, char *nick, char *chan)
1390 {
1391  send_cmd(source, "SVSPART %s :%s", nick, chan);
1392 }
1393 
1394 void unreal_cmd_swhois(char *source, char *who, char *mask)
1395 {
1396  /* Can anyone tell me if 3.1 has this? */
1397 }
1398 
1400 {
1401  /* Can anyone tell me if 3.1 has this? */
1402 }
1403 
1404 
1405 int anope_event_rehash(char *source, int ac, char **av)
1406 {
1407  return MOD_CONT;
1408 }
1409 
1410 int anope_event_credits(char *source, int ac, char **av)
1411 {
1412  return MOD_CONT;
1413 }
1414 
1415 int anope_event_admin(char *source, int ac, char **av)
1416 {
1417  return MOD_CONT;
1418 }
1419 
1420 int unreal_flood_mode_check(char *value)
1421 {
1422  char *dp, *end;
1423 
1424  if (value && *value != ':'
1425  && (strtoul((*value == '*' ? value + 1 : value), &dp, 10) > 0)
1426  && (*dp == ':') && (*(++dp) != 0) && (strtoul(dp, &end, 10) > 0)
1427  && (*end == 0)) {
1428  return 1;
1429  } else {
1430  return 0;
1431  }
1432 }
1433 
1434 void unreal_cmd_jupe(char *jserver, char *who, char *reason)
1435 {
1436  char rbuf[256];
1437 
1438  snprintf(rbuf, sizeof(rbuf), "Juped by %s%s%s", who,
1439  reason ? ": " : "", reason ? reason : "");
1440 
1441  if (findserver(servlist, jserver))
1442  unreal_cmd_squit(jserver, rbuf);
1443  unreal_cmd_server(jserver, 2, rbuf);
1444  new_server(me_server, jserver, rbuf, SERVER_JUPED, NULL);
1445 }
1446 
1447 /* GLOBOPS - to handle old WALLOPS */
1448 void unreal_cmd_global_legacy(char *source, char *fmt)
1449 {
1450  send_cmd(source ? source : ServerName, "%s :%s",
1451  send_token("GLOBOPS", "]"), fmt);
1452 }
1453 
1454 /*
1455  1 = valid nick
1456  0 = nick is in valid
1457 */
1458 int unreal_valid_nick(char *nick)
1459 {
1460  if (!stricmp("ircd", nick)) {
1461  return 0;
1462  }
1463  if (!stricmp("irc", nick)) {
1464  return 0;
1465  }
1466  return 1;
1467 }
1468 
1469 int unreal_valid_chan(char *chan) {
1470  if (strchr(chan, ':')) {
1471  return 0;
1472  }
1473  return 1;
1474 }
1475 
1476 void unreal_cmd_ctcp(char *source, char *dest, char *buf)
1477 {
1478  char *s;
1479 
1480  if (!buf) {
1481  return;
1482  } else {
1483  s = normalizeBuffer(buf);
1484  }
1485 
1486  send_cmd(source, "NOTICE %s :\1%s \1", dest, s);
1487  free(s);
1488 }
1489 
1490 
1496 {
1572 }
1573 
1577 int AnopeInit(int argc, char **argv)
1578 {
1579 
1580  moduleAddAuthor("Anope");
1581  moduleAddVersion(VERSION_STRING);
1583 
1584  pmodule_ircd_version("UnrealIRCd 3.1.1+");
1585  pmodule_ircd_cap(myIrcdcap);
1586  pmodule_ircd_var(myIrcd);
1587  pmodule_ircd_cbmodeinfos(myCbmodeinfos);
1588  pmodule_ircd_cumodes(myCumodes);
1591  pmodule_ircd_cbmodes(myCbmodes);
1592  pmodule_ircd_cmmodes(myCmmodes);
1595 
1605 
1608 
1609  return MOD_CONT;
1610 }
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 unreal_cmd_svso(char *source, char *nick, char *flag)
Definition: unreal31.c:942
E void pmodule_cmd_svspart(void(*func)(char *source, char *nick, char *chan))
Definition: ircd.c:1056
void unreal_cmd_release_svshold(char *nick)
Definition: unreal31.c:1295
void unreal_cmd_server(char *servname, int hop, char *descript)
Definition: unreal31.c:718
E void do_topic(const char *source, int ac, char **av)
Definition: channels.c:1249
void unreal_cmd_nc_change(User *u)
Definition: unreal31.c:1349
unsigned long umodes[128]
Definition: unreal31.c:155
E void do_server(const char *source, char *servername, char *hops, char *descript, char *numeric)
Definition: servers.c:360
int anope_event_quit(char *source, int ac, char **av)
Definition: unreal31.c:1050
void unreal_cmd_chg_nick(char *oldnick, char *newnick)
Definition: unreal31.c:952
E void pmodule_cmd_notice2(void(*func)(char *source, char *dest, char *msg))
Definition: ircd.c:798
#define CMODE_z
Definition: charybdis.h:40
E char * RemotePassword
Definition: extern.h:264
E void pmodule_cmd_bot_chan_mode(void(*func)(char *nick, char *chan))
Definition: ircd.c:827
IRCDVar myIrcd[]
Definition: unreal31.c:21
CBModeInfo myCbmodeinfos[]
Definition: unreal31.c:295
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
#define CMODE_H
Definition: inspircd11.h:36
int AnopeInit(int argc, char **argv)
Definition: unreal31.c:1577
void unreal_cmd_bot_nick(char *nick, char *user, char *host, char *real, char *modes)
Definition: unreal31.c:607
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 unreal_cmd_vhost_on(char *nick, char *vIdent, char *vhost)
Definition: unreal31.c:972
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 unreal_cmd_391(char *source, char *timestr)
Definition: unreal31.c:789
void unreal_cmd_243(char *buf)
Definition: unreal31.c:892
#define UMODE_w
Definition: bahamut.h:21
void unreal_cmd_unszline(char *mask)
Definition: unreal31.c:1307
#define CBM_MINUS_NO_ARG
Definition: services.h:928
void unreal_cmd_pong(char *servname, char *who)
Definition: unreal31.c:724
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
E void pmodule_cmd_nick(void(*func)(char *nick, char *name, char *modes))
Definition: ircd.c:756
E void chan_set_key(Channel *chan, char *value)
Definition: channels.c:1998
E void pmodule_ircd_cmmodes(CMMode modes[128])
Definition: ircd.c:1143
E void do_kick(const char *source, int ac, char **av)
Definition: channels.c:638
E void pmodule_cmd_372_error(void(*func)(char *source))
Definition: ircd.c:741
#define CMODE_p
Definition: bahamut.h:47
MDE int addCoreMessage(MessageHash *msgTable[], Message *m)
Definition: modules.c:1597
E void pmodule_valid_nick(int(*func)(char *nick))
Definition: ircd.c:1082
void unreal_cmd_372(char *source, char *msg)
Definition: unreal31.c:560
#define CAPAB_NOQUIT
Definition: services.h:1366
E void cs_set_limit(ChannelInfo *ci, char *value)
Definition: chanserv.c:2558
void unreal_cmd_svid_umode3(User *u, char *ts)
Definition: unreal31.c:1364
E int nick_identified(User *u)
Definition: nickserv.c:1111
void unreal_cmd_global(char *source, char *buf)
Definition: unreal31.c:912
int anope_event_mode(char *source, int ac, char **av)
Definition: unreal31.c:1059
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
void unreal_cmd_eob()
Definition: unreal31.c:1399
char * vhost
Definition: services.h:880
E void pmodule_cmd_vhost_on(void(*func)(char *nick, char *vIdent, char *vhost))
Definition: ircd.c:966
void unreal_cmd_chgident(char *nick, char *vIdent)
Definition: unreal31.c:756
E void pmodule_cmd_svsjoin(void(*func)(char *source, char *nick, char *chan, char *param))
Definition: ircd.c:1048
#define CBM_NO_MLOCK
Definition: services.h:929
E void pmodule_cmd_swhois(void(*func)(char *source, char *who, char *mask))
Definition: ircd.c:1061
E void pmodule_cmd_pong(void(*func)(char *servname, char *who))
Definition: ircd.c:842
E void pmodule_cmd_307(void(*func)(char *buf))
Definition: ircd.c:879
E char * get_limit(Channel *chan)
Definition: channels.c:1881
void unreal_cmd_svskill(char *source, char *user, char *buf)
Definition: unreal31.c:540
E void pmodule_cmd_211(void(*func)(char *buf))
Definition: ircd.c:924
int unreal_flood_mode_check(char *value)
Definition: unreal31.c:1420
int anope_event_kick(char *source, int ac, char **av)
Definition: unreal31.c:1082
void unreal_cmd_invite(char *source, char *chan, char *nick)
Definition: unreal31.c:765
E void pmodule_cmd_unsqline(void(*func)(char *user))
Definition: ircd.c:853
E void pmodule_cmd_sgline(void(*func)(char *mask, char *reason))
Definition: ircd.c:1007
E int stricmp(const char *s1, const char *s2)
Definition: compat.c:58
E void pmodule_set_umode(void(*func)(User *user, int ac, char **av))
Definition: ircd.c:1077
E void pmodule_ircd_cap(IRCDCAPAB *cap)
Definition: ircd.c:1102
void unreal_cmd_312(char *buf)
Definition: unreal31.c:828
#define CMODE_l
Definition: bahamut.h:51
char * name
Definition: services.h:277
#define CMODE_N
Definition: inspircd11.h:48
E void pmodule_cmd_nc_change(void(*func)(User *u))
Definition: ircd.c:1028
E void pmodule_cmd_372(void(*func)(char *source, char *msg))
Definition: ircd.c:736
void unreal_cmd_svid_umode(char *nick, time_t ts)
Definition: unreal31.c:1342
void unreal_cmd_serv_notice(char *source, char *dest, char *msg)
Definition: unreal31.c:667
E char * ServerDesc
Definition: extern.h:275
E void pmodule_cmd_bob(void(*func)())
Definition: ircd.c:976
#define CMODE_C
Definition: inspircd11.h:45
E void pmodule_ircd_flood_mode_char_remove(char *mode)
Definition: ircd.c:1130
void unreal_cmd_307(char *buf)
Definition: unreal31.c:808
void unreal_cmd_250(char *buf)
Definition: unreal31.c:798
int anope_event_server(char *source, int ac, char **av)
Definition: unreal31.c:1254
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
int anope_event_kill(char *source, int ac, char **av)
Definition: unreal31.c:1073
int anope_event_motd(char *source, int ac, char **av)
Definition: unreal31.c:1099
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
int anope_event_rehash(char *source, int ac, char **av)
Definition: unreal31.c:1405
void unreal_cmd_privmsg(char *source, char *dest, char *buf)
Definition: unreal31.c:653
MDE Message * createMessage(const char *name, int(*func)(char *source, int ac, char **av))
Definition: modules.c:1470
#define CUS_VOICE
Definition: services.h:1342
int anope_event_chgname(char *source, int ac, char **av)
Definition: unreal31.c:1128
#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
#define CMODE_R
Definition: bahamut.h:52
E void pmodule_cmd_unsgline(void(*func)(char *mask))
Definition: ircd.c:991
int anope_event_chgident(char *source, int ac, char **av)
Definition: unreal31.c:1165
MDE void moduleAddAuthor(const char *author)
Definition: modules.c:1772
int anope_event_sethost(char *source, int ac, char **av)
Definition: unreal31.c:1184
void unreal_cmd_svsjoin(char *source, char *nick, char *chan, char *param)
Definition: unreal31.c:1375
E void EnforceQlinedNick(char *nick, char *killer)
Definition: misc.c:837
void unreal_cmd_376(char *source)
Definition: unreal31.c:577
int anope_event_ping(char *source, int ac, char **av)
Definition: unreal31.c:1008
#define CMODE_t
Definition: bahamut.h:49
E void notice_lang(char *source, User *dest, int message,...)
Definition: send.c:169
E char * cs_get_key(ChannelInfo *ci)
Definition: chanserv.c:2447
E void cs_set_redirect(ChannelInfo *ci, char *value)
Definition: chanserv.c:2572
MDE void moduleSetType(MODType type)
Definition: modules.c:818
#define CMODE_V
Definition: inspircd11.h:42
void unreal_cmd_vhost_off(User *u)
Definition: unreal31.c:526
E void pmodule_cmd_jupe(void(*func)(char *jserver, char *who, char *reason))
Definition: ircd.c:1072
char * botchanumode
Definition: services.h:299
void unreal_cmd_part(char *nick, char *chan, char *buf)
Definition: unreal31.c:775
E void update_host(User *user)
Definition: users.c:104
E void pmodule_cmd_243(void(*func)(char *buf))
Definition: ircd.c:919
void unreal_cmd_372_error(char *source)
Definition: unreal31.c:565
void moduleAddAnopeCmds()
Definition: unreal31.c:1495
void unreal_cmd_swhois(char *source, char *who, char *mask)
Definition: unreal31.c:1394
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
#define CMODE_u
Definition: inspircd11.h:46
E void do_join(const char *source, int ac, char **av)
Definition: channels.c:556
void unreal_cmd_svspart(char *source, char *nick, char *chan)
Definition: unreal31.c:1389
CMMode myCmmodes[128]
Definition: unreal31.c:201
#define CMODE_Q
Definition: charybdis.h:44
E int m_nickcoll(char *user)
Definition: messages.c:20
E char * cs_get_redirect(ChannelInfo *ci)
Definition: chanserv.c:2476
void unreal_cmd_nick(char *nick, char *name, char *modes)
Definition: unreal31.c:582
E void pmodule_cmd_375(void(*func)(char *source))
Definition: ircd.c:746
E void pmodule_key_mode(int mode)
Definition: ircd.c:1196
void unreal_cmd_akill(char *user, char *host, char *who, time_t when, time_t expires, char *reason)
Definition: unreal31.c:533
E void pmodule_cmd_svsnick(void(*func)(char *source, char *guest, time_t when))
Definition: ircd.c:960
E char * s_OperServ
Definition: extern.h:289
void unreal_cmd_notice2(char *source, char *dest, char *msg)
Definition: unreal31.c:648
char myCsmodes[128]
Definition: unreal31.c:179
IRCDCAPAB myIrcdcap[]
Definition: unreal31.c:121
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 unreal_cmd_notice_ops(char *source, char *dest, char *buf)
Definition: unreal31.c:625
E char * ServiceHost
Definition: extern.h:277
#define UMODE_x
Definition: bahamut.h:23
E char * EncModule
Definition: extern.h:580
E void pmodule_invite_cmode(int mode)
Definition: ircd.c:1181
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
void moduleAddIRCDMsgs(void)
Definition: unreal31.c:442
E User * finduser(const char *nick)
Definition: users.c:323
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
void unreal_cmd_topic(char *whosets, char *chan, char *whosetit, char *topic, time_t when)
Definition: unreal31.c:519
#define CAPAB_TLKEXT
Definition: services.h:1393
void unreal_cmd_ctcp(char *source, char *dest, char *buf)
Definition: unreal31.c:1476
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
void unreal_cmd_serv_privmsg(char *source, char *dest, char *msg)
Definition: unreal31.c:672
E void add_ban(Channel *chan, char *mask)
Definition: channels.c:1338
E void do_part(const char *source, int ac, char **av)
Definition: channels.c:710
#define CUS_HALFOP
Definition: services.h:1343
E void del_ban(Channel *chan, char *mask)
Definition: channels.c:1779
void unreal_cmd_global_legacy(char *source, char *fmt)
Definition: unreal31.c:1448
void unreal_cmd_mode(char *source, char *dest, char *buf)
Definition: unreal31.c:598
void unreal_cmd_connect(int servernum)
Definition: unreal31.c:983
int anope_event_admin(char *source, int ac, char **av)
Definition: unreal31.c:1415
#define CUS_PROTECT
Definition: services.h:1345
E void pmodule_ircd_cumodes(CUMode modes[128])
Definition: ircd.c:1117
void unreal_cmd_svsadmin(char *server, int set)
Definition: unreal31.c:509
E const char version_flags[]
Definition: extern.h:771
#define CMODE_f
Definition: charybdis.h:35
void unreal_cmd_bot_chan_mode(char *nick, char *chan)
Definition: unreal31.c:678
E char * send_token(char *token1, char *token2)
Definition: misc.c:1095
E void alog(const char *fmt,...) FORMAT(printf
void unreal_cmd_remove_akill(char *user, char *host)
Definition: unreal31.c:514
E int servernum
Definition: extern.h:615
void unreal_cmd_kick(char *source, char *chan, char *user, char *buf)
Definition: unreal31.c:616
E char * get_redirect(Channel *chan)
Definition: channels.c:1894
#define MOD_CONT
Definition: modules.h:54
E int m_motd(char *source)
Definition: messages.c:97
void unreal_cmd_351(char *source)
Definition: unreal31.c:683
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
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
void unreal_cmd_401(char *source, char *who)
Definition: unreal31.c:863
E char * cs_get_flood(ChannelInfo *ci)
Definition: chanserv.c:2417
E void display_news(User *u, int16 type)
Definition: news.c:269
#define CAPAB_SSJ3
Definition: services.h:1389
int anope_event_privmsg(char *source, int ac, char **av)
Definition: unreal31.c:1264
void unreal_cmd_notice(char *source, char *dest, char *buf)
Definition: unreal31.c:635
#define CMODE_K
Definition: inspircd11.h:37
void unreal_cmd_protoctl()
Definition: unreal31.c:701
void unreal_cmd_svshold(char *nick)
Definition: unreal31.c:1289
E Server * findserver(Server *s, const char *name)
Definition: servers.c:261
#define CMODE_G
Definition: inspircd11.h:44
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
void unreal_cmd_318(char *source, char *who)
Definition: unreal31.c:872
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 void set_limit(Channel *chan, char *value)
Definition: channels.c:2011
int anope_event_setident(char *source, int ac, char **av)
Definition: unreal31.c:1147
void unreal_cmd_unban(char *name, char *nick)
Definition: unreal31.c:1327
#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
void unreal_cmd_311(char *buf)
Definition: unreal31.c:818
void unreal_cmd_svsmode(User *u, int ac, char **av)
Definition: unreal31.c:553
E int NSDefFlags
Definition: extern.h:377
#define CUS_OWNER
Definition: services.h:1344
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
E void pmodule_cmd_250(void(*func)(char *buf))
Definition: ircd.c:874
E void pmodule_ircd_version(char *version)
Definition: ircd.c:1107
void unreal_cmd_unsqline(char *user)
Definition: unreal31.c:738
E const char version_number[]
Definition: extern.h:767
void unreal_cmd_sgline(char *mask, char *reason)
Definition: unreal31.c:1322
void unreal_cmd_svsmode_chan(char *name, char *mode, char *nick)
Definition: unreal31.c:1334
int anope_event_away(char *source, int ac, char **av)
Definition: unreal31.c:1025
E char * get_flood(Channel *chan)
Definition: channels.c:1860
void unreal_cmd_squit(char *servname, char *message)
Definition: unreal31.c:932
#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
void unreal_cmd_242(char *buf)
Definition: unreal31.c:882
void unreal_cmd_svid_umode2(User *u, char *ts)
Definition: unreal31.c:1355
E int WallOper
Definition: extern.h:448
E void pmodule_cmd_svso(void(*func)(char *source, char *nick, char *flag))
Definition: ircd.c:949
int anope_event_436(char *source, int ac, char **av)
Definition: unreal31.c:1016
void unreal_cmd_sqline(char *mask, char *reason)
Definition: unreal31.c:922
#define CAPAB_VL
Definition: services.h:1392
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
void unreal_cmd_jupe(char *jserver, char *who, char *reason)
Definition: unreal31.c:1434
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 unreal_cmd_bob()
Definition: unreal31.c:1001
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
int anope_event_credits(char *source, int ac, char **av)
Definition: unreal31.c:1410
void unreal_cmd_privmsg2(char *source, char *dest, char *msg)
Definition: unreal31.c:662
E void pmodule_cmd_szline(void(*func)(char *mask, char *reason, char *whom))
Definition: ircd.c:1002
void unreal_cmd_375(char *source)
Definition: unreal31.c:571
#define UMODE_r
Definition: bahamut.h:20
int anope_event_capab(char *source, int ac, char **av)
Definition: unreal31.c:498
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
int anope_event_nick(char *source, int ac, char **av)
Definition: unreal31.c:1204
#define UMODE_A
Definition: bahamut.h:22
E void add_exception(Channel *chan, char *mask)
Definition: channels.c:1377
int anope_event_whois(char *source, int ac, char **av)
Definition: unreal31.c:1280
void unreal_cmd_chghost(char *nick, char *vhost)
Definition: unreal31.c:747
#define CBM_NO_USER_MLOCK
Definition: services.h:930
#define CAPAB_UMODE2
Definition: services.h:1391
#define CMODE_k
Definition: bahamut.h:50
int unreal_valid_nick(char *nick)
Definition: unreal31.c:1458
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_topic(char *source, int ac, char **av)
Definition: unreal31.c:1034
int anope_event_part(char *source, int ac, char **av)
Definition: unreal31.c:1272
E Server * servlist
Definition: extern.h:1051
#define UMODE_h
Definition: bahamut.h:17
void unreal_cmd_219(char *source, char *letter)
Definition: unreal31.c:848
#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
void unreal_set_umode(User *user, int ac, char **av)
Definition: unreal31.c:372
E void capab_parse(int ac, char **av)
Definition: servers.c:451
int unreal_valid_chan(char *chan)
Definition: unreal31.c:1469
E int check_valid_op(User *user, Channel *chan, int servermode)
Definition: chanserv.c:1290
E char * cs_get_limit(ChannelInfo *ci)
Definition: chanserv.c:2458
uint32 mode
Definition: services.h:889
void unreal_cmd_join(char *user, char *channel, time_t chantime)
Definition: unreal31.c:732
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
void unreal_cmd_unsgline(char *mask)
Definition: unreal31.c:1301
int anope_event_chghost(char *source, int ac, char **av)
Definition: unreal31.c:1234
E void pmodule_valid_chan(int(*func)(char *chan))
Definition: ircd.c:1087
E void pmodule_cmd_privmsg(void(*func)(char *source, char *dest, char *buf))
Definition: ircd.c:804
E void pmodule_cmd_svshold(void(*func)(char *nick))
Definition: ircd.c:981
#define SERVER_ISME
Definition: services.h:865
void unreal_cmd_svsnoop(char *server, int set)
Definition: unreal31.c:504
int anope_event_squit(char *source, int ac, char **av)
Definition: unreal31.c:1042
#define CAPAB_NICK2
Definition: services.h:1390
char * vhostchar
Definition: services.h:365
void unreal_cmd_svsnick(char *source, char *guest, time_t when)
Definition: unreal31.c:962
E void pmodule_cmd_serv_notice(void(*func)(char *source, char *dest, char *msg))
Definition: ircd.c:816
CUMode myCumodes[128]
Definition: unreal31.c:324
int anope_event_join(char *source, int ac, char **av)
Definition: unreal31.c:1091
E char * get_key(Channel *chan)
Definition: channels.c:1874
E int m_whois(char *source, char *who)
Definition: messages.c:366
void unreal_cmd_317(char *buf)
Definition: unreal31.c:838
E char * RemotePassword2
Definition: extern.h:267
int anope_event_setname(char *source, int ac, char **av)
Definition: unreal31.c:1109
E void pmodule_cmd_topic(void(*func)(char *whosets, char *chan, char *whosetit, char *topic, time_t when))
Definition: ircd.c:706
E void pmodule_cmd_quit(void(*func)(char *source, char *buf))
Definition: ircd.c:837
E char * ServiceUser
Definition: extern.h:276
E Server * me_server
Definition: extern.h:1052
time_t timestamp
Definition: services.h:886
E void pmodule_ircd_useTSMode(int use)
Definition: ircd.c:1164
void unreal_cmd_quit(char *source, char *buf)
Definition: unreal31.c:691
E void pmodule_oper_umode(int mode)
Definition: ircd.c:1176
E Server * new_server(Server *uplink, const char *name, const char *desc, uint16 flags, char *suid)
Definition: servers.c:119
E void pmodule_flood_mode_check(int(*func)(char *value))
Definition: ircd.c:1092
#define NEWS_OPER
Definition: services.h:1050
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
void unreal_cmd_211(char *buf)
Definition: unreal31.c:902
E void pmodule_cmd_mode(void(*func)(char *source, char *dest, char *buf))
Definition: ircd.c:768
#define CAPAB_ZIP
Definition: services.h:1371
E void pmodule_limit_mode(int mode)
Definition: ircd.c:1201
#define CMODE_i
Definition: bahamut.h:44
#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
E void pmodule_ircd_flood_mode_char_set(char *mode)
Definition: ircd.c:1125
void unreal_cmd_szline(char *mask, char *reason, char *whom)
Definition: unreal31.c:1314
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
void unreal_cmd_pass(char *pass)
Definition: unreal31.c:711
#define CMODE_s
Definition: bahamut.h:48
#define CUS_OP
Definition: services.h:1341
CBMode myCbmodes[128]
Definition: unreal31.c:229
E char * normalizeBuffer(char *)
Definition: botserv.c:1101
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
void unreal_cmd_guest_nick(char *nick, char *user, char *host, char *real, char *modes)
Definition: unreal31.c:591
#define UMODE_o
Definition: bahamut.h:19
E void pmodule_cmd_219(void(*func)(char *source, char *letter))
Definition: ircd.c:899