Anope IRC Services  Version 1.8
hs_request.c
Go to the documentation of this file.
1 /* hs_request.c - Add request and activate functionality to HostServ,
2  * along with adding +req as optional param to HostServ list.
3  *
4  * (C) 2003-2014 Anope Team
5  * Contact us at team@anope.org
6  *
7  * Based on the original module by Rob <rob@anope.org>
8  * Included in the Anope module pack since Anope 1.7.11
9  * Anope Coder: GeniusDex <geniusdex@anope.org>
10  *
11  * Please read COPYING and README for further details.
12  *
13  * Send bug reports to the Anope Coder instead of the module
14  * author, because any changes since the inclusion into anope
15  * are not supported by the original author.
16  */
17 
18 #include "module.h"
19 
20 #define AUTHOR "Rob"
21 #define VERSION VERSION_STRING
22 
23 /* Configuration variables */
24 static int HSRequestMemoUser = 0;
25 static int HSRequestMemoOper = 0;
26 static int HSRequestMemoSetters = 0;
27 char *HSRequestDBName = NULL;
28 
29 #define HSREQ_DEFAULT_DBNAME "hs_request.db"
30 
31 /* Language defines */
32 #define LNG_NUM_STRINGS 21
33 
34 #define LNG_REQUEST_SYNTAX 0
35 #define LNG_REQUESTED 1
36 #define LNG_REQUEST_WAIT 2
37 #define LNG_REQUEST_MEMO 3
38 #define LNG_ACTIVATE_SYNTAX 4
39 #define LNG_ACTIVATED 5
40 #define LNG_ACTIVATE_MEMO 6
41 #define LNG_REJECT_SYNTAX 7
42 #define LNG_REJECTED 8
43 #define LNG_REJECT_MEMO 9
44 #define LNG_REJECT_MEMO_REASON 10
45 #define LNG_NO_REQUEST 11
46 #define LNG_HELP 12
47 #define LNG_HELP_SETTER 13
48 #define LNG_HELP_REQUEST 14
49 #define LNG_HELP_ACTIVATE 15
50 #define LNG_HELP_ACTIVATE_MEMO 16
51 #define LNG_HELP_REJECT 17
52 #define LNG_HELP_REJECT_MEMO 18
53 #define LNG_WAITING_SYNTAX 19
54 #define LNG_HELP_WAITING 20
55 
56 static int hs_do_request(User * u);
57 static int hs_do_activate(User * u);
58 static int hs_do_reject(User * u);
59 static int hs_do_list_out(User * u);
60 
61 static int hs_help_request(User * u);
62 static int hs_help_activate(User * u);
63 static int hs_help_reject(User * u);
64 static int hs_help_waiting(User * u);
65 static void hs_help(User * u);
66 
67 static void my_add_host_request(char *nick, char *vIdent, char *vhost,
68  char *creator, int32 tmp_time);
69 static int my_isvalidchar(const char c);
70 static void my_memo_lang(User * u, char *name, int z, char *source, int number, ...);
71 static void req_send_memos(User * u, char *vIdent, char *vHost);
72 static void show_list(User * u);
73 static int hs_do_waiting(User * u);
74 static int hsreqevt_nick_dropped(int argc, char **argv);
75 
76 static void hsreq_save_db(void);
77 static void hsreq_load_db(void);
78 static int hsreqevt_db_saving(int argc, char **argv);
79 static int hsreqevt_db_backup(int argc, char **argv);
80 
81 static void my_load_config(void);
82 static void my_add_languages(void);
83 
85 
86 int AnopeInit(int argc, char **argv)
87 {
88  Command *c;
89  EvtHook *hook;
90 
91  c = createCommand("request", hs_do_request, nick_identified, -1, -1,
92  -1, -1, -1);
95 
96  c = createCommand("activate", hs_do_activate, is_host_setter, -1, -1,
97  -1, -1, -1);
100 
101  c = createCommand("reject", hs_do_reject, is_host_setter, -1, -1, -1,
102  -1, -1);
105 
106  c = createCommand("waiting", hs_do_waiting, is_host_setter, -1, -1, -1,
107  -1, -1);
110 
111  c = createCommand("list", hs_do_list_out, is_services_oper, -1, -1, -1,
112  -1, -1);
114 
116  moduleAddEventHook(hook);
117 
119  moduleAddEventHook(hook);
120 
122  moduleAddEventHook(hook);
123 
125  moduleAddEventHook(hook);
126 
131 
132  my_load_config();
134  hs_request_head = NULL;
135 
136  if (debug)
137  alog("[hs_request] Loading database...");
138  hsreq_load_db();
139  alog("hs_request loaded");
140  return MOD_CONT;
141 }
142 
143 void AnopeFini(void)
144 {
145  if (debug)
146  alog("[hs_request] Saving database...");
147  hsreq_save_db();
148 
149  /* Clean up all open host requests */
150  while (hs_request_head)
151  hs_request_head = deleteHostCore(hs_request_head, NULL);
152 
153  free(HSRequestDBName);
154  alog("hs_request un-loaded");
155 }
156 
157 static int hs_do_request(User * u)
158 {
159  char *cur_buffer;
160  char *nick;
161  char *rawhostmask;
162  char hostmask[HOSTMAX];
163  NickAlias *na;
164  int32 tmp_time;
165  char *s;
166  char *vIdent = NULL;
167  time_t now = time(NULL);
168 
169  cur_buffer = moduleGetLastBuffer();
170  nick = u->nick;
171  rawhostmask = myStrGetToken(cur_buffer, ' ', 0);
172 
173  if (!nick || !rawhostmask) {
174  if (rawhostmask)
175  free(rawhostmask);
177  return MOD_CONT;
178  }
179 
180  vIdent = myStrGetOnlyToken(rawhostmask, '@', 0); /* Get the first substring, @ as delimiter */
181  if (vIdent) {
182  rawhostmask = myStrGetTokenRemainder(rawhostmask, '@', 1); /* get the remaining string */
183  if (!rawhostmask) {
185  free(vIdent);
186  return MOD_CONT;
187  }
188  if (strlen(vIdent) > USERMAX - 1) {
189  notice_lang(s_HostServ, u, HOST_SET_IDENTTOOLONG, USERMAX);
190  free(vIdent);
191  free(rawhostmask);
192  return MOD_CONT;
193  } else {
194  for (s = vIdent; *s; s++) {
195  if (!my_isvalidchar(*s)) {
196  notice_lang(s_HostServ, u, HOST_SET_IDENT_ERROR);
197  free(vIdent);
198  free(rawhostmask);
199  return MOD_CONT;
200  }
201  }
202  }
203  if (!ircd->vident) {
204  notice_lang(s_HostServ, u, HOST_NO_VIDENT);
205  free(vIdent);
206  free(rawhostmask);
207  return MOD_CONT;
208  }
209  }
210  if (strlen(rawhostmask) < HOSTMAX) {
211  snprintf(hostmask, HOSTMAX, "%s", rawhostmask);
212  } else {
213  notice_lang(s_HostServ, u, HOST_SET_TOOLONG, HOSTMAX);
214  if (vIdent)
215  free(vIdent);
216  free(rawhostmask);
217  return MOD_CONT;
218  }
219 
220  if (!isValidHost(hostmask, 3)) {
221  notice_lang(s_HostServ, u, HOST_SET_ERROR);
222  if (vIdent)
223  free(vIdent);
224  free(rawhostmask);
225  return MOD_CONT;
226  }
227 
228  tmp_time = time(NULL);
229  if ((na = findnick(nick))) {
231  if (MSSendDelay > 0 && u
232  && u->lastmemosend + MSSendDelay > now) {
234  MSSendDelay);
235  u->lastmemosend = now;
236  if (vIdent)
237  free(vIdent);
238  free(rawhostmask);
239  return MOD_CONT;
240  }
241  }
242  my_add_host_request(nick, vIdent, hostmask, u->nick, tmp_time);
243 
245  req_send_memos(u, vIdent, hostmask);
246 
247  if (vIdent)
248  alog("New vHost Requested by %s: %s@%s", nick, vIdent, hostmask);
249  else
250  alog("New vHost Requested by %s: %s", nick, hostmask);
251  } else {
252  notice_lang(s_HostServ, u, HOST_NOREG, nick);
253  }
254 
255  if (vIdent)
256  free(vIdent);
257  free(rawhostmask);
258 
259  return MOD_CONT;
260 }
261 
262 static void my_memo_lang(User * u, char *name, int z, char *source, int number, ...)
263 {
264  va_list va;
265  char buffer[4096], outbuf[4096];
266  char *fmt = NULL;
267  int lang = LANG_EN_US;
268  char *s, *t, *buf;
269  User *u2;
270 
272  && (!mod_current_module
275 
276  u2 = finduser(name);
277  /* Find the users lang, and use it if we cant */
278  if (u2 && u2->na && u2->na->nc)
279  lang = u2->na->nc->language;
280 
281  /* If the users lang isnt supported, drop back to enlgish */
282  if (mod_current_module->lang[lang].argc == 0)
283  lang = LANG_EN_US;
284 
285  /* If the requested lang string exists for the language */
286  if (mod_current_module->lang[lang].argc > number) {
287  fmt = mod_current_module->lang[lang].argv[number];
288 
289  buf = sstrdup(fmt);
290  s = buf;
291  while (*s) {
292  t = s;
293  s += strcspn(s, "\n");
294  if (*s)
295  *s++ = '\0';
296  strscpy(outbuf, t, sizeof(outbuf));
297 
298  va_start(va, number);
299  vsnprintf(buffer, 4095, outbuf, va);
300  va_end(va);
301  if (source)
302  memo_send_from(u, name, buffer, z, source);
303  else
304  memo_send(u, name, buffer, z);
305  }
306  free(buf);
307  } else {
308  alog("%s: INVALID language string call, language: [%d], String [%d]", mod_current_module->name, lang, number);
309  }
310 }
311 
312 
313 static void req_send_memos(User * u, char *vIdent, char *vHost)
314 {
315  int i;
316  int z = 2;
317  char vbuf[BUFSIZE];
318 
320  return;
321 
322  if (vIdent)
323  snprintf(vbuf, sizeof(vbuf), "%s@%s", vIdent, vHost);
324  else
325  snprintf(vbuf, sizeof(vbuf), "%s", vHost);
326 
327  if (HSRequestMemoOper == 1) {
328  for (i = 0; i < servopers.count; i++) {
329  my_memo_lang(u, (((NickCore *) servopers.list[i])->display), z,
330  u->na->nick, LNG_REQUEST_MEMO, vbuf);
331  }
332  for (i = 0; i < servadmins.count; i++) {
333  my_memo_lang(u, (((NickCore *) servadmins.list[i])->display),
334  z, u->na->nick, LNG_REQUEST_MEMO, vbuf);
335  }
336  for (i = 0; i < RootNumber; i++) {
337  my_memo_lang(u, ServicesRoots[i], z, u->na->nick, LNG_REQUEST_MEMO, vbuf);
338  }
339  }
340  if (HSRequestMemoSetters == 1) {
341  for (i = 0; i < HostNumber; i++) {
342  my_memo_lang(u, HostSetters[i], z, u->na->nick, LNG_REQUEST_MEMO, vbuf);
343  }
344  }
345 }
346 
347 static int hsreqevt_nick_dropped(int argc, char **argv)
348 {
349  HostCore *tmp;
350  boolean found = false;
351 
352  if (!argc)
353  return MOD_CONT;
354 
355  tmp = findHostCore(hs_request_head, argv[0], &found);
356  if (found)
357  hs_request_head = deleteHostCore(hs_request_head, tmp);
358 
359  return MOD_CONT;
360 }
361 
362 static int hs_do_reject(User * u)
363 {
364  char *cur_buffer;
365  char *nick;
366  char *reason;
367  HostCore *tmp, *hc;
368  boolean found = false;
369 
370  cur_buffer = moduleGetLastBuffer();
371  nick = myStrGetToken(cur_buffer, ' ', 0);
372  reason = myStrGetTokenRemainder(cur_buffer, ' ', 1);
373 
374  if (!nick) {
376  if (reason)
377  free(reason);
378  return MOD_CONT;
379  }
380 
381  tmp = findHostCore(hs_request_head, nick, &found);
382  if (found) {
383  if (!tmp)
384  hc = hs_request_head;
385  else
386  hc = tmp->next;
387 
388  if (HSRequestMemoUser) {
389  if (reason)
390  my_memo_lang(u, hc->nick, 2, NULL, LNG_REJECT_MEMO_REASON,
391  reason);
392  else
393  my_memo_lang(u, hc->nick, 2, NULL, LNG_REJECT_MEMO);
394  }
395 
396  hs_request_head = deleteHostCore(hs_request_head, tmp);
398  alog("Host Request for %s rejected by %s (%s)", nick, u->nick,
399  reason ? reason : "");
400  } else {
402  }
403 
404  free(nick);
405  if (reason)
406  free(reason);
407 
408  return MOD_CONT;
409 }
410 
411 static int hs_do_activate(User * u)
412 {
413  char *cur_buffer;
414  char *nick;
415  NickAlias *na;
416  HostCore *tmp, *hc;
417  boolean found = false;
418 
419  cur_buffer = moduleGetLastBuffer();
420  nick = myStrGetToken(cur_buffer, ' ', 0);
421 
422  if (!nick) {
424  return MOD_CONT;
425  }
426 
427  if ((na = findnick(nick))) {
428  tmp = findHostCore(hs_request_head, nick, &found);
429  if (found) {
430  if (!tmp)
431  hc = hs_request_head;
432  else
433  hc = tmp->next;
434 
435  addHostCore(hc->nick, hc->vIdent, hc->vHost, u->nick,
436  time(NULL));
437 
438  if (HSRequestMemoUser)
439  my_memo_lang(u, hc->nick, 2, NULL, LNG_ACTIVATE_MEMO);
440 
441  hs_request_head = deleteHostCore(hs_request_head, tmp);
443  alog("Host Request for %s activated by %s", nick, u->nick);
444  } else {
446  }
447  } else {
448  notice_lang(s_HostServ, u, NICK_X_NOT_REGISTERED, nick);
449  }
450 
451  free(nick);
452  return MOD_CONT;
453 }
454 
455 
456 static void my_add_host_request(char *nick, char *vIdent, char *vhost,
457  char *creator, int32 tmp_time)
458 {
459  HostCore *tmp;
460  boolean found = false;
461 
462  if (!hs_request_head) {
463  hs_request_head =
464  createHostCorelist(hs_request_head, nick, vIdent, vhost,
465  creator, tmp_time);
466  } else {
467  tmp = findHostCore(hs_request_head, nick, &found);
468  if (!found) {
469  hs_request_head =
470  insertHostCore(hs_request_head, tmp, nick, vIdent, vhost,
471  creator, tmp_time);
472  } else {
473  hs_request_head = deleteHostCore(hs_request_head, tmp); /* delete the old entry */
474  my_add_host_request(nick, vIdent, vhost, creator, tmp_time); /* recursive call to add new entry */
475  }
476  }
477 }
478 
479 static int my_isvalidchar(const char c)
480 {
481  if (((c >= 'A') && (c <= 'Z')) || ((c >= 'a') && (c <= 'z'))
482  || ((c >= '0') && (c <= '9')) || (c == '.') || (c == '-'))
483  return 1;
484  else
485  return 0;
486 }
487 
488 static int hs_do_list_out(User * u)
489 {
490  char *key;
491 
492  key = moduleGetLastBuffer();
493  if (!key)
494  return MOD_CONT;
495 
496  if (stricmp(key, "+req") != 0)
497  return MOD_CONT;
498 
499  show_list(u);
500 
501  return MOD_CONT;
502 }
503 
504 static int hs_do_waiting(User * u)
505 {
506  show_list(u);
507 
508  return MOD_CONT;
509 }
510 
511 static void show_list(User * u)
512 {
513  struct tm *tm;
514  char buf[BUFSIZE];
515  int counter = 1;
516  int from = 0, to = 0;
517  int display_counter = 0;
518  HostCore *current;
519 
520  current = hs_request_head;
521  while (current) {
522  if ((((counter >= from) && (counter <= to))
523  || ((from == 0) && (to == 0)))
524  && (display_counter < NSListMax)) {
525  display_counter++;
526  tm = localtime(&current->time);
527  strftime(buf, sizeof(buf),
528  getstring(NULL, STRFTIME_DATE_TIME_FORMAT), tm);
529  if (current->vIdent)
530  notice_lang(s_HostServ, u, HOST_IDENT_ENTRY, counter,
531  current->nick, current->vIdent, current->vHost,
532  current->creator, buf);
533  else
534  notice_lang(s_HostServ, u, HOST_ENTRY, counter,
535  current->nick, current->vHost,
536  current->creator, buf);
537  }
538  counter++;
539  current = current->next;
540  }
541  notice_lang(s_HostServ, u, HOST_LIST_FOOTER, display_counter);
542 }
543 
544 static int hs_help_request(User * u)
545 {
547  notice(s_HostServ, u->nick, " ");
549 
550  return MOD_CONT;
551 }
552 
553 static int hs_help_activate(User * u)
554 {
555  if (is_host_setter(u)) {
557  notice(s_HostServ, u->nick, " ");
559  if (HSRequestMemoUser)
561  } else {
562  notice_lang(s_HostServ, u, NO_HELP_AVAILABLE, "ACTIVATE");
563  }
564 
565  return MOD_CONT;
566 }
567 
568 static int hs_help_reject(User * u)
569 {
570  if (is_host_setter(u)) {
572  notice(s_HostServ, u->nick, " ");
574  if (HSRequestMemoUser)
576  } else {
577  notice_lang(s_HostServ, u, NO_HELP_AVAILABLE, "REJECT");
578  }
579 
580  return MOD_CONT;
581 }
582 
583 static int hs_help_waiting(User * u)
584 {
585  if (is_host_setter(u)) {
587  notice(s_HostServ, u->nick, " ");
589  } else {
590  notice_lang(s_HostServ, u, NO_HELP_AVAILABLE, "WAITING");
591  }
592 
593  return MOD_CONT;
594 }
595 
596 static void hs_help(User * u)
597 {
599  if (is_host_setter(u))
601 }
602 static void hsreq_load_db(void)
603 {
604  FILE *fp;
605  char *filename;
606  char readbuf[1024];
607  char *nick, *vident, *vhost, *creator, *tmp;
608  int32 tmp_time;
609  char *buf;
610 
611  if (HSRequestDBName)
612  filename = HSRequestDBName;
613  else
614  filename = HSREQ_DEFAULT_DBNAME;
615 
616  fp = fopen(filename, "r");
617  if (!fp) {
618  alog("[hs_request] Unable to open database ('%s') for reading",
619  filename);
620  return;
621  }
622 
623  while (fgets(readbuf, 1024, fp)) {
624  buf = normalizeBuffer(readbuf);
625  if (buf || *buf) {
626  nick = myStrGetToken(buf, ':', 0);
627  vident = myStrGetToken(buf, ':', 1);
628  vhost = myStrGetToken(buf, ':', 2);
629  tmp = myStrGetToken(buf, ':', 3);
630  if (tmp) {
631  tmp_time = strtol(tmp, (char **) NULL, 16);
632  free(tmp);
633  } else {
634  tmp_time = 0;
635  }
636  creator = myStrGetToken(buf, ':', 4);
637  if (!nick || !vident || !vhost || !creator) {
638  alog("[hs_request] Error while reading database, skipping record");
639  continue;
640  }
641  if (stricmp(vident, "(null)") == 0) {
642  free(vident);
643  vident = NULL;
644  }
645  my_add_host_request(nick, vident, vhost, creator, tmp_time);
646  free(nick);
647  free(vhost);
648  free(creator);
649  if (vident)
650  free(vident);
651  }
652  free(buf);
653  }
654 
655  fclose(fp);
656 
657  if (debug)
658  alog("[hs_request] Succesfully loaded database");
659 }
660 
661 static void hsreq_save_db(void)
662 {
663  FILE *fp;
664  char *filename;
665  char *vident;
666  HostCore *current;
667 
668  if (HSRequestDBName)
669  filename = HSRequestDBName;
670  else
671  filename = HSREQ_DEFAULT_DBNAME;
672 
673  fp = fopen(filename, "w");
674  if (!fp) {
675  alog("[hs_request] Unable to open database ('%s') for writing",
676  filename);
677  return;
678  }
679 
680  current = hs_request_head;
681  while (current) {
682  vident = (current->vIdent ? current->vIdent : "(null)");
683  fprintf(fp, "%s:%s:%s:%X:%s\n", current->nick, vident,
684  current->vHost, (uint32) current->time, current->creator);
685  current = current->next;
686  }
687 
688  fclose(fp);
689 
690  if (debug)
691  alog("[hs_request] Succesfully saved database");
692 }
693 
694 static int hsreqevt_db_saving(int argc, char **argv)
695 {
696  if ((argc >= 1) && (stricmp(argv[0], EVENT_START) == 0))
697  hsreq_save_db();
698 
699  return MOD_CONT;
700 }
701 
702 static int hsreqevt_db_backup(int argc, char **argv)
703 {
704  if ((argc >= 1) && (stricmp(argv[0], EVENT_START) == 0)) {
705  if (HSRequestDBName)
707  else
709  }
710 
711  return MOD_CONT;
712 }
713 
714 static void my_load_config(void)
715 {
716  int i;
717  char *tmp = NULL;
718 
719  Directive confvalues[][1] = {
720  {{"HSRequestMemoUser",
722  {{"HSRequestMemoOper",
724  {{"HSRequestMemoSetters",
726  {{"HSRequestDBName", {{PARAM_STRING, PARAM_RELOAD, &tmp}}}}
727  };
728 
729  for (i = 0; i < 4; i++)
730  moduleGetConfigDirective(confvalues[i]);
731 
733 
734  if (tmp)
735  HSRequestDBName = sstrdup(tmp);
736  else
738 
739  if (debug)
740  alog("debug: [hs_request] Set config vars: MemoUser=%d MemoOper=%d MemoSetters=%d DBName='%s'", HSRequestMemoUser, HSRequestMemoOper, HSRequestMemoSetters, HSRequestDBName);
741 }
742 
743 static void my_add_languages(void)
744 {
745  char *langtable_en_us[] = {
746  /* LNG_REQUEST_SYNTAX */
747  "Syntax: \002REQUEST \037vhost\037\002",
748  /* LNG_REQUESTED */
749  "Your vHost has been requested",
750  /* LNG_REQUEST_WAIT */
751  "Please wait %d seconds before requesting a new vHost",
752  /* LNG_REQUEST_MEMO */
753  "[auto memo] vHost \002%s\002 has been requested.",
754  /* LNG_ACTIVATE_SYNTAX */
755  "Syntax: \002ACTIVATE \037nick\037\002",
756  /* LNG_ACTIVATED */
757  "vHost for %s has been activated",
758  /* LNG_ACTIVATE_MEMO */
759  "[auto memo] Your requested vHost has been approved.",
760  /* LNG_REJECT_SYNTAX */
761  "Syntax: \002REJECT \037nick\037\002",
762  /* LNG_REJECTED */
763  "vHost for %s has been rejected",
764  /* LNG_REJECT_MEMO */
765  "[auto memo] Your requested vHost has been rejected.",
766  /* LNG_REJECT_MEMO_REASON */
767  "[auto memo] Your requested vHost has been rejected. Reason: %s",
768  /* LNG_NO_REQUEST */
769  "No request for nick %s found.",
770  /* LNG_HELP */
771  " REQUEST Request a vHost for your nick",
772  /* LNG_HELP_SETTER */
773  " ACTIVATE Approve the requested vHost of a user\n"
774  " REJECT Reject the requested vHost of a user\n"
775  " WAITING Convenience command for LIST +req",
776  /* LNG_HELP_REQUEST */
777  "Request the given vHost to be actived for your nick by the\n"
778  "network administrators. Please be patient while your request\n"
779  "is being considered.",
780  /* LNG_HELP_ACTIVATE */
781  "Activate the requested vHost for the given nick.",
782  /* LNG_HELP_ACTIVATE_MEMO */
783  "A memo informing the user will also be sent.",
784  /* LNG_HELP_REJECT */
785  "Reject the requested vHost for the given nick.",
786  /* LNG_HELP_REJECT_MEMO */
787  "A memo informing the user will also be sent.",
788  /* LNG_WAITING_SYNTAX */
789  "Syntax: \002WAITING\002",
790  /* LNG_HELP_WAITING */
791  "This command is provided for convenience. It is essentially\n"
792  "the same as performing a LIST +req ."
793  };
794 
795  char *langtable_nl[] = {
796  /* LNG_REQUEST_SYNTAX */
797  "Gebruik: \002REQUEST \037vhost\037\002",
798  /* LNG_REQUESTED */
799  "Je vHost is aangevraagd",
800  /* LNG_REQUEST_WAIT */
801  "Wacht %d seconden voor je een nieuwe vHost aanvraagt",
802  /* LNG_REQUEST_MEMO */
803  "[auto memo] vHost \002%s\002 is aangevraagd.",
804  /* LNG_ACTIVATE_SYNTAX */
805  "Gebruik: \002ACTIVATE \037nick\037\002",
806  /* LNG_ACTIVATED */
807  "vHost voor %s is geactiveerd",
808  /* LNG_ACTIVATE_MEMO */
809  "[auto memo] Je aangevraagde vHost is geaccepteerd.",
810  /* LNG_REJECT_SYNTAX */
811  "Gebruik: \002REJECT \037nick\037\002",
812  /* LNG_REJECTED */
813  "vHost voor %s is afgekeurd",
814  /* LNG_REJECT_MEMO */
815  "[auto memo] Je aangevraagde vHost is afgekeurd.",
816  /* LNG_REJECT_MEMO_REASON */
817  "[auto memo] Je aangevraagde vHost is afgekeurd. Reden: %s",
818  /* LNG_NO_REQUEST */
819  "Geen aanvraag voor nick %s gevonden.",
820  /* LNG_HELP */
821  " REQUEST Vraag een vHost aan voor je nick",
822  /* LNG_HELP_SETTER */
823  " ACTIVATE Activeer de aangevraagde vHost voor een gebruiker\n"
824  " REJECT Keur de aangevraagde vHost voor een gebruiker af\n"
825  " WAITING Snelkoppeling naar LIST +req",
826  /* LNG_HELP_REQUEST */
827  "Verzoek de gegeven vHost te activeren voor jouw nick bij de\n"
828  "netwerk beheerders. Het kan even duren voordat je aanvraag\n"
829  "afgehandeld wordt.",
830  /* LNG_HELP_ACTIVATE */
831  "Activeer de aangevraagde vHost voor de gegeven nick.",
832  /* LNG_HELP_ACTIVATE_MEMO */
833  "Een memo die de gebruiker op de hoogste stelt zal ook worden verstuurd.",
834  /* LNG_HELP_REJECT */
835  "Keur de aangevraagde vHost voor de gegeven nick af.",
836  /* LNG_HELP_REJECT_MEMO */
837  "Een memo die de gebruiker op de hoogste stelt zal ook worden verstuurd.",
838  /* LNG_WAITING_SYNTAX */
839  "Gebruik: \002WAITING\002",
840  /* LNG_HELP_WAITING */
841  "Dit commando is beschikbaar als handigheid. Het is simpelweg\n"
842  "hetzelfde als LIST +req ."
843  };
844 
845  char *langtable_pt[] = {
846  /* LNG_REQUEST_SYNTAX */
847  "Sintaxe: \002REQUEST \037vhost\037\002",
848  /* LNG_REQUESTED */
849  "Seu pedido de vHost foi encaminhado",
850  /* LNG_REQUEST_WAIT */
851  "Por favor, espere %d segundos antes de fazer um novo pedido de vHost",
852  /* LNG_REQUEST_MEMO */
853  "[Auto Memo] O vHost \002%s\002 foi solicitado.",
854  /* LNG_ACTIVATE_SYNTAX */
855  "Sintaxe: \002ACTIVATE \037nick\037\002",
856  /* LNG_ACTIVATED */
857  "O vHost para %s foi ativado",
858  /* LNG_ACTIVATE_MEMO */
859  "[Auto Memo] Seu pedido de vHost foi aprovado.",
860  /* LNG_REJECT_SYNTAX */
861  "Sintaxe: \002REJECT \037nick\037\002",
862  /* LNG_REJECTED */
863  "O vHost de %s foi recusado",
864  /* LNG_REJECT_MEMO */
865  "[Auto Memo] Seu pedido de vHost foi recusado.",
866  /* LNG_REJECT_MEMO_REASON */
867  "[Auto Memo] Seu pedido de vHost foi recusado. Motivo: %s",
868  /* LNG_NO_REQUEST */
869  "Nenhum pedido encontrado para o nick %s.",
870  /* LNG_HELP */
871  " REQUEST Request a vHost for your nick",
872  /* LNG_HELP_SETTER */
873  " ACTIVATE Aprova o pedido de vHost de um usurio\n"
874  " REJECT Recusa o pedido de vHost de um usurio\n"
875  " WAITING Comando para LISTAR +req",
876  /* LNG_HELP_REQUEST */
877  "Solicita a ativao do vHost fornecido em seu nick pelos\n"
878  "administradores da rede. Por favor, tenha pacincia\n"
879  "enquanto seu pedido analisado.",
880  /* LNG_HELP_ACTIVATE */
881  "Ativa o vHost solicitado para o nick fornecido.",
882  /* LNG_HELP_ACTIVATE_MEMO */
883  "Um memo informando o usurio tambm ser enviado.",
884  /* LNG_HELP_REJECT */
885  "Recusa o pedido de vHost para o nick fornecido.",
886  /* LNG_HELP_REJECT_MEMO */
887  "Um memo informando o usurio tambm ser enviado.",
888  /* LNG_WAITING_SYNTAX */
889  "Sintaxe: \002WAITING\002",
890  /* LNG_HELP_WAITING */
891  "Este comando usado por convenincia. essencialmente\n"
892  "o mesmo que fazer um LIST +req"
893  };
894 
895  char *langtable_ru[] = {
896  /* LNG_REQUEST_SYNTAX */
897  ": \002REQUEST \037vHost\037\002",
898  /* LNG_REQUESTED */
899  " vHost .",
900  /* LNG_REQUEST_WAIT */
901  ", %d , vHost",
902  /* LNG_REQUEST_MEMO */
903  "[-] vHost \002%s\002",
904  /* LNG_ACTIVATE_SYNTAX */
905  ": \002ACTIVATE \037037\002", /* LNG_ACTIVATED */ "vHost %s ", /* LNG_ACTIVATE_MEMO */ "[-] vHost .", /* LNG_REJECT_SYNTAX */ ": \002REJECT \037\037\002", /* LNG_REJECTED */ "vHost %s .", /* LNG_REJECT_MEMO */ "[-] vHost .", /* LNG_REJECT_MEMO_REASON */ "[-] vHost . : %s", /* LNG_NO_REQUEST */ " vHost %s .", /* LNG_HELP */ " REQUEST vHost ", /* LNG_HELP_SETTER */ " ACTIVATE vHost\n" " REJECT vHost\n" " WAITING ( LIST +req)", /* LNG_HELP_REQUEST */ " vHost, \n" " . , \n" " .", /* LNG_HELP_ACTIVATE */ " vHost .", /* LNG_HELP_ACTIVATE_MEMO */ " - .", /* LNG_HELP_REJECT */ " vHost .", /* LNG_HELP_REJECT_MEMO */ " - .", /* LNG_WAITING_SYNTAX */ ": \002WAITING\002", /* LNG_HELP_WAITING */ " ,\n" " . : LIST +req ." }; char *langtable_it[] = { /* LNG_REQUEST_SYNTAX */ "Sintassi: \002REQUEST \037vhost\037\002", /* LNG_REQUESTED */ "Il tuo vHost stato richiesto", /* LNG_REQUEST_WAIT */ "Prego attendere %d secondi prima di richiedere un nuovo vHost", /* LNG_REQUEST_MEMO */ "[auto memo] stato richiesto il vHost \002%s\002.", /* LNG_ACTIVATE_SYNTAX */ "Sintassi: \002ACTIVATE \037nick\037\002", /* LNG_ACTIVATED */ "Il vHost per %s stato attivato", /* LNG_ACTIVATE_MEMO */ "[auto memo] Il vHost da te richiesto stato approvato.", /* LNG_REJECT_SYNTAX */ "Sintassi: \002REJECT \037nick\037\002", /* LNG_REJECTED */ "Il vHost per %s stato rifiutato", /* LNG_REJECT_MEMO */ "[auto memo] Il vHost da te richiesto stato rifiutato.", /* LNG_REJECT_MEMO_REASON */ "[auto memo] Il vHost da te richiesto stato rifiutato. Motivo: %s", /* LNG_NO_REQUEST */ "Nessuna richiesta trovata per il nick %s.", /* LNG_HELP */ " REQUEST Richiede un vHost per il tuo nick", /* LNG_HELP_SETTER */ " ACTIVATE Approva il vHost richiesto di un utente\n" " REJECT Rifiuta il vHost richiesto di un utente\n" " WAITING Comando per LIST +req", /* LNG_HELP_REQUEST */ "Richiede l'attivazione del vHost specificato per il tuo nick da parte\n" "degli amministratori di rete. Sei pregato di pazientare finch la tua\n" "richiesta viene elaborata.", /* LNG_HELP_ACTIVATE */ "Attiva il vHost richiesto per il nick specificato.", /* LNG_HELP_ACTIVATE_MEMO */ "Viene inviato un memo per informare l'utente.", /* LNG_HELP_REJECT */ "Rifiuta il vHost richiesto per il nick specificato.", /* LNG_HELP_REJECT_MEMO */ "Viene inviato un memo per informare l'utente.", /* LNG_WAITING_SYNTAX */ "Sintassi: \002WAITING\002", /* LNG_HELP_WAITING */ "Questo comando per comodit. Praticamente la stessa cosa che\n" "eseguire un LIST +req ." }; char *langtable_de[] = { /* LNG_REQUEST_SYNTAX */ "Syntax: \002REQUEST \037vhost\037\002", /* LNG_REQUESTED */ "Dein vHost wurde beantragt", /* LNG_REQUEST_WAIT */ "Bitte warte %d Sekunden bevor Du einen neuen vHost beantragst", /* LNG_REQUEST_MEMO */ "[auto memo] vHost \002%s\002 wurde beantragt.", /* LNG_ACTIVATE_SYNTAX */ "Syntax: \002ACTIVATE \037nick\037\002", /* LNG_ACTIVATED */ "vHost fr %s wurde aktiviert", /* LNG_ACTIVATE_MEMO */ "[auto memo] Dein beantragter vHost wurde freigegeben.", /* LNG_REJECT_SYNTAX */ "Syntax: \002REJECT \037nick\037\002", /* LNG_REJECTED */ "vHost fr %s wurde abgelehnt", /* LNG_REJECT_MEMO */ "[auto memo] Dein beantragter vHost wurde abgelehnt.", /* LNG_REJECT_MEMO_REASON */ "[auto memo] Dein beantragter vHost wurde abgelehnt. Begrndung: %s", /* LNG_NO_REQUEST */ "Keine vHost Beantragung fr Nick %s gefunden.", /* LNG_HELP */ " REQUEST Beantrage einen vHost fr Deinen Nick", /* LNG_HELP_SETTER */ " ACTIVATE Freigeben eines beantragten vHostes von einem User\n" " REJECT Ablehnen eines beantragten vHostes von einem User\n" " WAITING Vereinfachter Befehl fr LIST +req", /* LNG_HELP_REQUEST */ "Beantragt den angegebenen vHost fr Deinen Nick, um von den\n" "Network Administratoren aktiviert zu werden. Bitte gedulde Dich eine Weile,\n" "bis ber Deine Anfrage entschieden wurde.", /* LNG_HELP_ACTIVATE */ "Aktivert den beantragten vHost fr den angegebenen Nick.", /* LNG_HELP_ACTIVATE_MEMO */ "Eine Memo wird an den User gesendet, um ihn zu informieren.", /* LNG_HELP_REJECT */ "Lehnt den beantragten vHost fr den genannten Nick ab.", /* LNG_HELP_REJECT_MEMO */ "Eine Memo wird an den User gesendet, um ihn zu informieren.", /* LNG_WAITING_SYNTAX */ "Syntax: \002WAITING\002", /* LNG_HELP_WAITING */ "Dieser Befehl ist Benutzerfreundlicher. Es ist genau derselbe\n" "als wenn man LIST +req benutzt." }; char *langtable_fr[] = { /* LNG_REQUEST_SYNTAX */ "Syntaxe: \002REQUEST \037vhost\037\002", /* LNG_REQUESTED */ "Votre demande de vHost a t envoye", /* LNG_REQUEST_WAIT */ "Merci d'attendre %d secondes avant de demander un autre vHost", /* LNG_REQUEST_MEMO */ "[auto memo] Le vHost \002%s\002 a t demand.", /* LNG_ACTIVATE_SYNTAX */ "Syntaxe: \002ACTIVATE \037pseudo\037\002", /* LNG_ACTIVATED */ "Le vHost de %s est activ", /* LNG_ACTIVATE_MEMO */ "[auto memo] Votre demande de vHost a t approuve.", /* LNG_REJECT_SYNTAX */ "Syntaxe: \002REJECT \037pseudo\037\002", /* LNG_REJECTED */ "Le vHost de %s a t refus", /* LNG_REJECT_MEMO */ "[auto memo] Votre demande de vHost a t refuse.", /* LNG_REJECT_MEMO_REASON */ "[auto memo] Votre demande de vHost a t refuse pour le motif suivant : %s", /* LNG_NO_REQUEST */ "Aucune demande faite pour %s.", /* LNG_HELP */ " REQUEST Demander un vHost pour votre pseudo", /* LNG_HELP_SETTER */ " ACTIVATE Approuver la demande de vHost d'un utilisateur\n" " REJECT Refuser la demande de vHost d'un utilisateur\n" " WAITING Raccourci de la commande LIST +req", /* LNG_HELP_REQUEST */ "Demande le vHost spcifi tre activ pour votre pseudo par les\n" "administrateurs du rseau. Merci d'tre patient le temps que votre demande\n" "soit prise en compte.", /* LNG_HELP_ACTIVATE */ "Active le vHost demand pour un pseudo spcifi.", /* LNG_HELP_ACTIVATE_MEMO */ "Un mmo informant l'utilisateur de l'activation sera envoy galement.", /* LNG_HELP_REJECT */ "Refuse le vHost demand pour un pseudo spcifi.", /* LNG_HELP_REJECT_MEMO */ "Un mmo informant l'utilisateur du refus sera envoy galement.", /* LNG_WAITING_SYNTAX */ "Syntaxe: \002WAITING\002", /* LNG_HELP_WAITING */ "Cette commande est fournie par commodit. C'est essentiellement\n" "la mme que LIST +req ." }; moduleInsertLanguage(LANG_EN_US, LNG_NUM_STRINGS, langtable_en_us); moduleInsertLanguage(LANG_NL, LNG_NUM_STRINGS, langtable_nl); moduleInsertLanguage(LANG_PT, LNG_NUM_STRINGS, langtable_pt); moduleInsertLanguage(LANG_RU, LNG_NUM_STRINGS, langtable_ru); moduleInsertLanguage(LANG_IT, LNG_NUM_STRINGS, langtable_it); moduleInsertLanguage(LANG_DE, LNG_NUM_STRINGS, langtable_de); moduleInsertLanguage(LANG_FR, LNG_NUM_STRINGS, langtable_fr); } /* EOF */ \037\002",
906  /* LNG_ACTIVATED */
907  "vHost %s , /* LNG_ACTIVATE_MEMO */ "[-] vHost .", /* LNG_REJECT_SYNTAX */ ": \002REJECT \037\037\002", /* LNG_REJECTED */ "vHost %s .", /* LNG_REJECT_MEMO */ "[-] vHost .", /* LNG_REJECT_MEMO_REASON */ "[-] vHost . : %s", /* LNG_NO_REQUEST */ " vHost %s .", /* LNG_HELP */ " REQUEST vHost ", /* LNG_HELP_SETTER */ " ACTIVATE vHost\n" " REJECT vHost\n" " WAITING ( LIST +req)", /* LNG_HELP_REQUEST */ " vHost, \n" " . , \n" " .", /* LNG_HELP_ACTIVATE */ " vHost .", /* LNG_HELP_ACTIVATE_MEMO */ " - .", /* LNG_HELP_REJECT */ " vHost .", /* LNG_HELP_REJECT_MEMO */ " - .", /* LNG_WAITING_SYNTAX */ ": \002WAITING\002", /* LNG_HELP_WAITING */ " ,\n" " . : LIST +req ." }; char *langtable_it[] = { /* LNG_REQUEST_SYNTAX */ "Sintassi: \002REQUEST \037vhost\037\002", /* LNG_REQUESTED */ "Il tuo vHost stato richiesto", /* LNG_REQUEST_WAIT */ "Prego attendere %d secondi prima di richiedere un nuovo vHost", /* LNG_REQUEST_MEMO */ "[auto memo] stato richiesto il vHost \002%s\002.", /* LNG_ACTIVATE_SYNTAX */ "Sintassi: \002ACTIVATE \037nick\037\002", /* LNG_ACTIVATED */ "Il vHost per %s stato attivato", /* LNG_ACTIVATE_MEMO */ "[auto memo] Il vHost da te richiesto stato approvato.", /* LNG_REJECT_SYNTAX */ "Sintassi: \002REJECT \037nick\037\002", /* LNG_REJECTED */ "Il vHost per %s stato rifiutato", /* LNG_REJECT_MEMO */ "[auto memo] Il vHost da te richiesto stato rifiutato.", /* LNG_REJECT_MEMO_REASON */ "[auto memo] Il vHost da te richiesto stato rifiutato. Motivo: %s", /* LNG_NO_REQUEST */ "Nessuna richiesta trovata per il nick %s.", /* LNG_HELP */ " REQUEST Richiede un vHost per il tuo nick", /* LNG_HELP_SETTER */ " ACTIVATE Approva il vHost richiesto di un utente\n" " REJECT Rifiuta il vHost richiesto di un utente\n" " WAITING Comando per LIST +req", /* LNG_HELP_REQUEST */ "Richiede l'attivazione del vHost specificato per il tuo nick da parte\n" "degli amministratori di rete. Sei pregato di pazientare finch la tua\n" "richiesta viene elaborata.", /* LNG_HELP_ACTIVATE */ "Attiva il vHost richiesto per il nick specificato.", /* LNG_HELP_ACTIVATE_MEMO */ "Viene inviato un memo per informare l'utente.", /* LNG_HELP_REJECT */ "Rifiuta il vHost richiesto per il nick specificato.", /* LNG_HELP_REJECT_MEMO */ "Viene inviato un memo per informare l'utente.", /* LNG_WAITING_SYNTAX */ "Sintassi: \002WAITING\002", /* LNG_HELP_WAITING */ "Questo comando per comodit. Praticamente la stessa cosa che\n" "eseguire un LIST +req ." }; char *langtable_de[] = { /* LNG_REQUEST_SYNTAX */ "Syntax: \002REQUEST \037vhost\037\002", /* LNG_REQUESTED */ "Dein vHost wurde beantragt", /* LNG_REQUEST_WAIT */ "Bitte warte %d Sekunden bevor Du einen neuen vHost beantragst", /* LNG_REQUEST_MEMO */ "[auto memo] vHost \002%s\002 wurde beantragt.", /* LNG_ACTIVATE_SYNTAX */ "Syntax: \002ACTIVATE \037nick\037\002", /* LNG_ACTIVATED */ "vHost fr %s wurde aktiviert", /* LNG_ACTIVATE_MEMO */ "[auto memo] Dein beantragter vHost wurde freigegeben.", /* LNG_REJECT_SYNTAX */ "Syntax: \002REJECT \037nick\037\002", /* LNG_REJECTED */ "vHost fr %s wurde abgelehnt", /* LNG_REJECT_MEMO */ "[auto memo] Dein beantragter vHost wurde abgelehnt.", /* LNG_REJECT_MEMO_REASON */ "[auto memo] Dein beantragter vHost wurde abgelehnt. Begrndung: %s", /* LNG_NO_REQUEST */ "Keine vHost Beantragung fr Nick %s gefunden.", /* LNG_HELP */ " REQUEST Beantrage einen vHost fr Deinen Nick", /* LNG_HELP_SETTER */ " ACTIVATE Freigeben eines beantragten vHostes von einem User\n" " REJECT Ablehnen eines beantragten vHostes von einem User\n" " WAITING Vereinfachter Befehl fr LIST +req", /* LNG_HELP_REQUEST */ "Beantragt den angegebenen vHost fr Deinen Nick, um von den\n" "Network Administratoren aktiviert zu werden. Bitte gedulde Dich eine Weile,\n" "bis ber Deine Anfrage entschieden wurde.", /* LNG_HELP_ACTIVATE */ "Aktivert den beantragten vHost fr den angegebenen Nick.", /* LNG_HELP_ACTIVATE_MEMO */ "Eine Memo wird an den User gesendet, um ihn zu informieren.", /* LNG_HELP_REJECT */ "Lehnt den beantragten vHost fr den genannten Nick ab.", /* LNG_HELP_REJECT_MEMO */ "Eine Memo wird an den User gesendet, um ihn zu informieren.", /* LNG_WAITING_SYNTAX */ "Syntax: \002WAITING\002", /* LNG_HELP_WAITING */ "Dieser Befehl ist Benutzerfreundlicher. Es ist genau derselbe\n" "als wenn man LIST +req benutzt." }; char *langtable_fr[] = { /* LNG_REQUEST_SYNTAX */ "Syntaxe: \002REQUEST \037vhost\037\002", /* LNG_REQUESTED */ "Votre demande de vHost a t envoye", /* LNG_REQUEST_WAIT */ "Merci d'attendre %d secondes avant de demander un autre vHost", /* LNG_REQUEST_MEMO */ "[auto memo] Le vHost \002%s\002 a t demand.", /* LNG_ACTIVATE_SYNTAX */ "Syntaxe: \002ACTIVATE \037pseudo\037\002", /* LNG_ACTIVATED */ "Le vHost de %s est activ", /* LNG_ACTIVATE_MEMO */ "[auto memo] Votre demande de vHost a t approuve.", /* LNG_REJECT_SYNTAX */ "Syntaxe: \002REJECT \037pseudo\037\002", /* LNG_REJECTED */ "Le vHost de %s a t refus", /* LNG_REJECT_MEMO */ "[auto memo] Votre demande de vHost a t refuse.", /* LNG_REJECT_MEMO_REASON */ "[auto memo] Votre demande de vHost a t refuse pour le motif suivant : %s", /* LNG_NO_REQUEST */ "Aucune demande faite pour %s.", /* LNG_HELP */ " REQUEST Demander un vHost pour votre pseudo", /* LNG_HELP_SETTER */ " ACTIVATE Approuver la demande de vHost d'un utilisateur\n" " REJECT Refuser la demande de vHost d'un utilisateur\n" " WAITING Raccourci de la commande LIST +req", /* LNG_HELP_REQUEST */ "Demande le vHost spcifi tre activ pour votre pseudo par les\n" "administrateurs du rseau. Merci d'tre patient le temps que votre demande\n" "soit prise en compte.", /* LNG_HELP_ACTIVATE */ "Active le vHost demand pour un pseudo spcifi.", /* LNG_HELP_ACTIVATE_MEMO */ "Un mmo informant l'utilisateur de l'activation sera envoy galement.", /* LNG_HELP_REJECT */ "Refuse le vHost demand pour un pseudo spcifi.", /* LNG_HELP_REJECT_MEMO */ "Un mmo informant l'utilisateur du refus sera envoy galement.", /* LNG_WAITING_SYNTAX */ "Syntaxe: \002WAITING\002", /* LNG_HELP_WAITING */ "Cette commande est fournie par commodit. C'est essentiellement\n" "la mme que LIST +req ." }; moduleInsertLanguage(LANG_EN_US, LNG_NUM_STRINGS, langtable_en_us); moduleInsertLanguage(LANG_NL, LNG_NUM_STRINGS, langtable_nl); moduleInsertLanguage(LANG_PT, LNG_NUM_STRINGS, langtable_pt); moduleInsertLanguage(LANG_RU, LNG_NUM_STRINGS, langtable_ru); moduleInsertLanguage(LANG_IT, LNG_NUM_STRINGS, langtable_it); moduleInsertLanguage(LANG_DE, LNG_NUM_STRINGS, langtable_de); moduleInsertLanguage(LANG_FR, LNG_NUM_STRINGS, langtable_fr); } /* EOF */ ",
908  /* LNG_ACTIVATE_MEMO */
909  "[-] vHost .",
910  /* LNG_REJECT_SYNTAX */
911  ": \002REJECT \037037\002", /* LNG_REJECTED */ "vHost %s .", /* LNG_REJECT_MEMO */ "[-] vHost .", /* LNG_REJECT_MEMO_REASON */ "[-] vHost . : %s", /* LNG_NO_REQUEST */ " vHost %s .", /* LNG_HELP */ " REQUEST vHost ", /* LNG_HELP_SETTER */ " ACTIVATE vHost\n" " REJECT vHost\n" " WAITING ( LIST +req)", /* LNG_HELP_REQUEST */ " vHost, \n" " . , \n" " .", /* LNG_HELP_ACTIVATE */ " vHost .", /* LNG_HELP_ACTIVATE_MEMO */ " - .", /* LNG_HELP_REJECT */ " vHost .", /* LNG_HELP_REJECT_MEMO */ " - .", /* LNG_WAITING_SYNTAX */ ": \002WAITING\002", /* LNG_HELP_WAITING */ " ,\n" " . : LIST +req ." }; char *langtable_it[] = { /* LNG_REQUEST_SYNTAX */ "Sintassi: \002REQUEST \037vhost\037\002", /* LNG_REQUESTED */ "Il tuo vHost stato richiesto", /* LNG_REQUEST_WAIT */ "Prego attendere %d secondi prima di richiedere un nuovo vHost", /* LNG_REQUEST_MEMO */ "[auto memo] stato richiesto il vHost \002%s\002.", /* LNG_ACTIVATE_SYNTAX */ "Sintassi: \002ACTIVATE \037nick\037\002", /* LNG_ACTIVATED */ "Il vHost per %s stato attivato", /* LNG_ACTIVATE_MEMO */ "[auto memo] Il vHost da te richiesto stato approvato.", /* LNG_REJECT_SYNTAX */ "Sintassi: \002REJECT \037nick\037\002", /* LNG_REJECTED */ "Il vHost per %s stato rifiutato", /* LNG_REJECT_MEMO */ "[auto memo] Il vHost da te richiesto stato rifiutato.", /* LNG_REJECT_MEMO_REASON */ "[auto memo] Il vHost da te richiesto stato rifiutato. Motivo: %s", /* LNG_NO_REQUEST */ "Nessuna richiesta trovata per il nick %s.", /* LNG_HELP */ " REQUEST Richiede un vHost per il tuo nick", /* LNG_HELP_SETTER */ " ACTIVATE Approva il vHost richiesto di un utente\n" " REJECT Rifiuta il vHost richiesto di un utente\n" " WAITING Comando per LIST +req", /* LNG_HELP_REQUEST */ "Richiede l'attivazione del vHost specificato per il tuo nick da parte\n" "degli amministratori di rete. Sei pregato di pazientare finch la tua\n" "richiesta viene elaborata.", /* LNG_HELP_ACTIVATE */ "Attiva il vHost richiesto per il nick specificato.", /* LNG_HELP_ACTIVATE_MEMO */ "Viene inviato un memo per informare l'utente.", /* LNG_HELP_REJECT */ "Rifiuta il vHost richiesto per il nick specificato.", /* LNG_HELP_REJECT_MEMO */ "Viene inviato un memo per informare l'utente.", /* LNG_WAITING_SYNTAX */ "Sintassi: \002WAITING\002", /* LNG_HELP_WAITING */ "Questo comando per comodit. Praticamente la stessa cosa che\n" "eseguire un LIST +req ." }; char *langtable_de[] = { /* LNG_REQUEST_SYNTAX */ "Syntax: \002REQUEST \037vhost\037\002", /* LNG_REQUESTED */ "Dein vHost wurde beantragt", /* LNG_REQUEST_WAIT */ "Bitte warte %d Sekunden bevor Du einen neuen vHost beantragst", /* LNG_REQUEST_MEMO */ "[auto memo] vHost \002%s\002 wurde beantragt.", /* LNG_ACTIVATE_SYNTAX */ "Syntax: \002ACTIVATE \037nick\037\002", /* LNG_ACTIVATED */ "vHost fr %s wurde aktiviert", /* LNG_ACTIVATE_MEMO */ "[auto memo] Dein beantragter vHost wurde freigegeben.", /* LNG_REJECT_SYNTAX */ "Syntax: \002REJECT \037nick\037\002", /* LNG_REJECTED */ "vHost fr %s wurde abgelehnt", /* LNG_REJECT_MEMO */ "[auto memo] Dein beantragter vHost wurde abgelehnt.", /* LNG_REJECT_MEMO_REASON */ "[auto memo] Dein beantragter vHost wurde abgelehnt. Begrndung: %s", /* LNG_NO_REQUEST */ "Keine vHost Beantragung fr Nick %s gefunden.", /* LNG_HELP */ " REQUEST Beantrage einen vHost fr Deinen Nick", /* LNG_HELP_SETTER */ " ACTIVATE Freigeben eines beantragten vHostes von einem User\n" " REJECT Ablehnen eines beantragten vHostes von einem User\n" " WAITING Vereinfachter Befehl fr LIST +req", /* LNG_HELP_REQUEST */ "Beantragt den angegebenen vHost fr Deinen Nick, um von den\n" "Network Administratoren aktiviert zu werden. Bitte gedulde Dich eine Weile,\n" "bis ber Deine Anfrage entschieden wurde.", /* LNG_HELP_ACTIVATE */ "Aktivert den beantragten vHost fr den angegebenen Nick.", /* LNG_HELP_ACTIVATE_MEMO */ "Eine Memo wird an den User gesendet, um ihn zu informieren.", /* LNG_HELP_REJECT */ "Lehnt den beantragten vHost fr den genannten Nick ab.", /* LNG_HELP_REJECT_MEMO */ "Eine Memo wird an den User gesendet, um ihn zu informieren.", /* LNG_WAITING_SYNTAX */ "Syntax: \002WAITING\002", /* LNG_HELP_WAITING */ "Dieser Befehl ist Benutzerfreundlicher. Es ist genau derselbe\n" "als wenn man LIST +req benutzt." }; char *langtable_fr[] = { /* LNG_REQUEST_SYNTAX */ "Syntaxe: \002REQUEST \037vhost\037\002", /* LNG_REQUESTED */ "Votre demande de vHost a t envoye", /* LNG_REQUEST_WAIT */ "Merci d'attendre %d secondes avant de demander un autre vHost", /* LNG_REQUEST_MEMO */ "[auto memo] Le vHost \002%s\002 a t demand.", /* LNG_ACTIVATE_SYNTAX */ "Syntaxe: \002ACTIVATE \037pseudo\037\002", /* LNG_ACTIVATED */ "Le vHost de %s est activ", /* LNG_ACTIVATE_MEMO */ "[auto memo] Votre demande de vHost a t approuve.", /* LNG_REJECT_SYNTAX */ "Syntaxe: \002REJECT \037pseudo\037\002", /* LNG_REJECTED */ "Le vHost de %s a t refus", /* LNG_REJECT_MEMO */ "[auto memo] Votre demande de vHost a t refuse.", /* LNG_REJECT_MEMO_REASON */ "[auto memo] Votre demande de vHost a t refuse pour le motif suivant : %s", /* LNG_NO_REQUEST */ "Aucune demande faite pour %s.", /* LNG_HELP */ " REQUEST Demander un vHost pour votre pseudo", /* LNG_HELP_SETTER */ " ACTIVATE Approuver la demande de vHost d'un utilisateur\n" " REJECT Refuser la demande de vHost d'un utilisateur\n" " WAITING Raccourci de la commande LIST +req", /* LNG_HELP_REQUEST */ "Demande le vHost spcifi tre activ pour votre pseudo par les\n" "administrateurs du rseau. Merci d'tre patient le temps que votre demande\n" "soit prise en compte.", /* LNG_HELP_ACTIVATE */ "Active le vHost demand pour un pseudo spcifi.", /* LNG_HELP_ACTIVATE_MEMO */ "Un mmo informant l'utilisateur de l'activation sera envoy galement.", /* LNG_HELP_REJECT */ "Refuse le vHost demand pour un pseudo spcifi.", /* LNG_HELP_REJECT_MEMO */ "Un mmo informant l'utilisateur du refus sera envoy galement.", /* LNG_WAITING_SYNTAX */ "Syntaxe: \002WAITING\002", /* LNG_HELP_WAITING */ "Cette commande est fournie par commodit. C'est essentiellement\n" "la mme que LIST +req ." }; moduleInsertLanguage(LANG_EN_US, LNG_NUM_STRINGS, langtable_en_us); moduleInsertLanguage(LANG_NL, LNG_NUM_STRINGS, langtable_nl); moduleInsertLanguage(LANG_PT, LNG_NUM_STRINGS, langtable_pt); moduleInsertLanguage(LANG_RU, LNG_NUM_STRINGS, langtable_ru); moduleInsertLanguage(LANG_IT, LNG_NUM_STRINGS, langtable_it); moduleInsertLanguage(LANG_DE, LNG_NUM_STRINGS, langtable_de); moduleInsertLanguage(LANG_FR, LNG_NUM_STRINGS, langtable_fr); } /* EOF */ \037\002",
912  /* LNG_REJECTED */
913  "vHost %s .",
914  /* LNG_REJECT_MEMO */
915  "[-] vHost .",
916  /* LNG_REJECT_MEMO_REASON */
917  "[-] vHost . : %s",
918  /* LNG_NO_REQUEST */
919  " vHost %s .",
920  /* LNG_HELP */
921  " REQUEST vHost ",
922  /* LNG_HELP_SETTER */
923  " ACTIVATE vHost\n"
924  " REJECT vHost\n"
925  " WAITING ( LIST +req)",
926  /* LNG_HELP_REQUEST */
927  " vHost, \n"
928  " . , \n"
929  " .",
930  /* LNG_HELP_ACTIVATE */
931  " vHost .",
932  /* LNG_HELP_ACTIVATE_MEMO */
933  " - .",
934  /* LNG_HELP_REJECT */
935  " vHost .",
936  /* LNG_HELP_REJECT_MEMO */
937  " - .",
938  /* LNG_WAITING_SYNTAX */
939  ": \002WAITING\002",
940  /* LNG_HELP_WAITING */
941  " ,\n"
942  " . : LIST +req ."
943  };
944 
945  char *langtable_it[] = {
946  /* LNG_REQUEST_SYNTAX */
947  "Sintassi: \002REQUEST \037vhost\037\002",
948  /* LNG_REQUESTED */
949  "Il tuo vHost stato richiesto",
950  /* LNG_REQUEST_WAIT */
951  "Prego attendere %d secondi prima di richiedere un nuovo vHost",
952  /* LNG_REQUEST_MEMO */
953  "[auto memo] stato richiesto il vHost \002%s\002.",
954  /* LNG_ACTIVATE_SYNTAX */
955  "Sintassi: \002ACTIVATE \037nick\037\002",
956  /* LNG_ACTIVATED */
957  "Il vHost per %s stato attivato",
958  /* LNG_ACTIVATE_MEMO */
959  "[auto memo] Il vHost da te richiesto stato approvato.",
960  /* LNG_REJECT_SYNTAX */
961  "Sintassi: \002REJECT \037nick\037\002",
962  /* LNG_REJECTED */
963  "Il vHost per %s stato rifiutato",
964  /* LNG_REJECT_MEMO */
965  "[auto memo] Il vHost da te richiesto stato rifiutato.",
966  /* LNG_REJECT_MEMO_REASON */
967  "[auto memo] Il vHost da te richiesto stato rifiutato. Motivo: %s",
968  /* LNG_NO_REQUEST */
969  "Nessuna richiesta trovata per il nick %s.",
970  /* LNG_HELP */
971  " REQUEST Richiede un vHost per il tuo nick",
972  /* LNG_HELP_SETTER */
973  " ACTIVATE Approva il vHost richiesto di un utente\n"
974  " REJECT Rifiuta il vHost richiesto di un utente\n"
975  " WAITING Comando per LIST +req",
976  /* LNG_HELP_REQUEST */
977  "Richiede l'attivazione del vHost specificato per il tuo nick da parte\n"
978  "degli amministratori di rete. Sei pregato di pazientare finch la tua\n"
979  "richiesta viene elaborata.",
980  /* LNG_HELP_ACTIVATE */
981  "Attiva il vHost richiesto per il nick specificato.",
982  /* LNG_HELP_ACTIVATE_MEMO */
983  "Viene inviato un memo per informare l'utente.",
984  /* LNG_HELP_REJECT */
985  "Rifiuta il vHost richiesto per il nick specificato.",
986  /* LNG_HELP_REJECT_MEMO */
987  "Viene inviato un memo per informare l'utente.",
988  /* LNG_WAITING_SYNTAX */
989  "Sintassi: \002WAITING\002",
990  /* LNG_HELP_WAITING */
991  "Questo comando per comodit. Praticamente la stessa cosa che\n"
992  "eseguire un LIST +req ."
993  };
994 
995  char *langtable_de[] = {
996  /* LNG_REQUEST_SYNTAX */
997  "Syntax: \002REQUEST \037vhost\037\002",
998  /* LNG_REQUESTED */
999  "Dein vHost wurde beantragt",
1000  /* LNG_REQUEST_WAIT */
1001  "Bitte warte %d Sekunden bevor Du einen neuen vHost beantragst",
1002  /* LNG_REQUEST_MEMO */
1003  "[auto memo] vHost \002%s\002 wurde beantragt.",
1004  /* LNG_ACTIVATE_SYNTAX */
1005  "Syntax: \002ACTIVATE \037nick\037\002",
1006  /* LNG_ACTIVATED */
1007  "vHost fr %s wurde aktiviert",
1008  /* LNG_ACTIVATE_MEMO */
1009  "[auto memo] Dein beantragter vHost wurde freigegeben.",
1010  /* LNG_REJECT_SYNTAX */
1011  "Syntax: \002REJECT \037nick\037\002",
1012  /* LNG_REJECTED */
1013  "vHost fr %s wurde abgelehnt",
1014  /* LNG_REJECT_MEMO */
1015  "[auto memo] Dein beantragter vHost wurde abgelehnt.",
1016  /* LNG_REJECT_MEMO_REASON */
1017  "[auto memo] Dein beantragter vHost wurde abgelehnt. Begrndung: %s",
1018  /* LNG_NO_REQUEST */
1019  "Keine vHost Beantragung fr Nick %s gefunden.",
1020  /* LNG_HELP */
1021  " REQUEST Beantrage einen vHost fr Deinen Nick",
1022  /* LNG_HELP_SETTER */
1023  " ACTIVATE Freigeben eines beantragten vHostes von einem User\n"
1024  " REJECT Ablehnen eines beantragten vHostes von einem User\n"
1025  " WAITING Vereinfachter Befehl fr LIST +req",
1026  /* LNG_HELP_REQUEST */
1027  "Beantragt den angegebenen vHost fr Deinen Nick, um von den\n"
1028  "Network Administratoren aktiviert zu werden. Bitte gedulde Dich eine Weile,\n"
1029  "bis ber Deine Anfrage entschieden wurde.",
1030  /* LNG_HELP_ACTIVATE */
1031  "Aktivert den beantragten vHost fr den angegebenen Nick.",
1032  /* LNG_HELP_ACTIVATE_MEMO */
1033  "Eine Memo wird an den User gesendet, um ihn zu informieren.",
1034  /* LNG_HELP_REJECT */
1035  "Lehnt den beantragten vHost fr den genannten Nick ab.",
1036  /* LNG_HELP_REJECT_MEMO */
1037  "Eine Memo wird an den User gesendet, um ihn zu informieren.",
1038  /* LNG_WAITING_SYNTAX */
1039  "Syntax: \002WAITING\002",
1040  /* LNG_HELP_WAITING */
1041  "Dieser Befehl ist Benutzerfreundlicher. Es ist genau derselbe\n"
1042  "als wenn man LIST +req benutzt."
1043  };
1044 
1045  char *langtable_fr[] = {
1046  /* LNG_REQUEST_SYNTAX */
1047  "Syntaxe: \002REQUEST \037vhost\037\002",
1048  /* LNG_REQUESTED */
1049  "Votre demande de vHost a t envoye",
1050  /* LNG_REQUEST_WAIT */
1051  "Merci d'attendre %d secondes avant de demander un autre vHost",
1052  /* LNG_REQUEST_MEMO */
1053  "[auto memo] Le vHost \002%s\002 a t demand.",
1054  /* LNG_ACTIVATE_SYNTAX */
1055  "Syntaxe: \002ACTIVATE \037pseudo\037\002",
1056  /* LNG_ACTIVATED */
1057  "Le vHost de %s est activ, /* LNG_ACTIVATE_MEMO */ "[auto memo] Votre demande de vHost a t approuve.", /* LNG_REJECT_SYNTAX */ "Syntaxe: \002REJECT \037pseudo\037\002", /* LNG_REJECTED */ "Le vHost de %s a t refus", /* LNG_REJECT_MEMO */ "[auto memo] Votre demande de vHost a t refuse.", /* LNG_REJECT_MEMO_REASON */ "[auto memo] Votre demande de vHost a t refuse pour le motif suivant : %s", /* LNG_NO_REQUEST */ "Aucune demande faite pour %s.", /* LNG_HELP */ " REQUEST Demander un vHost pour votre pseudo", /* LNG_HELP_SETTER */ " ACTIVATE Approuver la demande de vHost d'un utilisateur\n" " REJECT Refuser la demande de vHost d'un utilisateur\n" " WAITING Raccourci de la commande LIST +req", /* LNG_HELP_REQUEST */ "Demande le vHost spcifi tre activ pour votre pseudo par les\n" "administrateurs du rseau. Merci d'tre patient le temps que votre demande\n" "soit prise en compte.", /* LNG_HELP_ACTIVATE */ "Active le vHost demand pour un pseudo spcifi.", /* LNG_HELP_ACTIVATE_MEMO */ "Un mmo informant l'utilisateur de l'activation sera envoy galement.", /* LNG_HELP_REJECT */ "Refuse le vHost demand pour un pseudo spcifi.", /* LNG_HELP_REJECT_MEMO */ "Un mmo informant l'utilisateur du refus sera envoy galement.", /* LNG_WAITING_SYNTAX */ "Syntaxe: \002WAITING\002", /* LNG_HELP_WAITING */ "Cette commande est fournie par commodit. C'est essentiellement\n" "la mme que LIST +req ." }; moduleInsertLanguage(LANG_EN_US, LNG_NUM_STRINGS, langtable_en_us); moduleInsertLanguage(LANG_NL, LNG_NUM_STRINGS, langtable_nl); moduleInsertLanguage(LANG_PT, LNG_NUM_STRINGS, langtable_pt); moduleInsertLanguage(LANG_RU, LNG_NUM_STRINGS, langtable_ru); moduleInsertLanguage(LANG_IT, LNG_NUM_STRINGS, langtable_it); moduleInsertLanguage(LANG_DE, LNG_NUM_STRINGS, langtable_de); moduleInsertLanguage(LANG_FR, LNG_NUM_STRINGS, langtable_fr); } /* EOF */ ",
1058  /* LNG_ACTIVATE_MEMO */
1059  "[auto memo] Votre demande de vHost a t approuve.",
1060  /* LNG_REJECT_SYNTAX */
1061  "Syntaxe: \002REJECT \037pseudo\037\002",
1062  /* LNG_REJECTED */
1063  "Le vHost de %s a t refus, /* LNG_REJECT_MEMO */ "[auto memo] Votre demande de vHost a t refuse.", /* LNG_REJECT_MEMO_REASON */ "[auto memo] Votre demande de vHost a t refuse pour le motif suivant : %s", /* LNG_NO_REQUEST */ "Aucune demande faite pour %s.", /* LNG_HELP */ " REQUEST Demander un vHost pour votre pseudo", /* LNG_HELP_SETTER */ " ACTIVATE Approuver la demande de vHost d'un utilisateur\n" " REJECT Refuser la demande de vHost d'un utilisateur\n" " WAITING Raccourci de la commande LIST +req", /* LNG_HELP_REQUEST */ "Demande le vHost spcifi tre activ pour votre pseudo par les\n" "administrateurs du rseau. Merci d'tre patient le temps que votre demande\n" "soit prise en compte.", /* LNG_HELP_ACTIVATE */ "Active le vHost demand pour un pseudo spcifi.", /* LNG_HELP_ACTIVATE_MEMO */ "Un mmo informant l'utilisateur de l'activation sera envoy galement.", /* LNG_HELP_REJECT */ "Refuse le vHost demand pour un pseudo spcifi.", /* LNG_HELP_REJECT_MEMO */ "Un mmo informant l'utilisateur du refus sera envoy galement.", /* LNG_WAITING_SYNTAX */ "Syntaxe: \002WAITING\002", /* LNG_HELP_WAITING */ "Cette commande est fournie par commodit. C'est essentiellement\n" "la mme que LIST +req ." }; moduleInsertLanguage(LANG_EN_US, LNG_NUM_STRINGS, langtable_en_us); moduleInsertLanguage(LANG_NL, LNG_NUM_STRINGS, langtable_nl); moduleInsertLanguage(LANG_PT, LNG_NUM_STRINGS, langtable_pt); moduleInsertLanguage(LANG_RU, LNG_NUM_STRINGS, langtable_ru); moduleInsertLanguage(LANG_IT, LNG_NUM_STRINGS, langtable_it); moduleInsertLanguage(LANG_DE, LNG_NUM_STRINGS, langtable_de); moduleInsertLanguage(LANG_FR, LNG_NUM_STRINGS, langtable_fr); } /* EOF */ ",
1064  /* LNG_REJECT_MEMO */
1065  "[auto memo] Votre demande de vHost a t refuse.",
1066  /* LNG_REJECT_MEMO_REASON */
1067  "[auto memo] Votre demande de vHost a t refuse pour le motif suivant : %s",
1068  /* LNG_NO_REQUEST */
1069  "Aucune demande faite pour %s.",
1070  /* LNG_HELP */
1071  " REQUEST Demander un vHost pour votre pseudo",
1072  /* LNG_HELP_SETTER */
1073  " ACTIVATE Approuver la demande de vHost d'un utilisateur\n"
1074  " REJECT Refuser la demande de vHost d'un utilisateur\n"
1075  " WAITING Raccourci de la commande LIST +req",
1076  /* LNG_HELP_REQUEST */
1077  "Demande le vHost spcifi tre activ pour votre pseudo par les\n"
1078  "administrateurs du rseau. Merci d'tre patient le temps que votre demande\n"
1079  "soit prise en compte.",
1080  /* LNG_HELP_ACTIVATE */
1081  "Active le vHost demand pour un pseudo spcifi.",
1082  /* LNG_HELP_ACTIVATE_MEMO */
1083  "Un mmo informant l'utilisateur de l'activation sera envoy galement.",
1084  /* LNG_HELP_REJECT */
1085  "Refuse le vHost demand pour un pseudo spcifi.",
1086  /* LNG_HELP_REJECT_MEMO */
1087  "Un mmo informant l'utilisateur du refus sera envoy galement.",
1088  /* LNG_WAITING_SYNTAX */
1089  "Syntaxe: \002WAITING\002",
1090  /* LNG_HELP_WAITING */
1091  "Cette commande est fournie par commodit. C'est essentiellement\n"
1092  "la mme que LIST +req ."
1093  };
1094 
1095  moduleInsertLanguage(LANG_EN_US, LNG_NUM_STRINGS, langtable_en_us);
1102 }
1103 
1104 /* EOF */
time_t time
Definition: services.h:1113
E int isValidHost(const char *host, int type)
Definition: misc.c:614
static void hs_help(User *u)
Definition: hs_request.c:596
static int hs_help_activate(User *u)
Definition: hs_request.c:553
#define LANG_DE
Definition: services.h:1324
#define Anope_Free(x)
Definition: extern.h:1391
E void ModuleDatabaseBackup(char *dbname)
Definition: datafiles.c:732
E void addHostCore(char *nick, char *vIdent, char *vhost, char *creator, int32 tmp_time)
Definition: hostserv.c:291
#define LNG_ACTIVATE_MEMO
Definition: hs_request.c:40
static int hs_do_activate(User *u)
Definition: hs_request.c:411
char ** argv
Definition: modules.h:133
char nick[NICKMAX]
Definition: services.h:875
#define LNG_REJECTED
Definition: hs_request.c:42
E int snprintf(char *buf, size_t size, const char *fmt,...)
Definition: compat.c:37
static void my_add_host_request(char *nick, char *vIdent, char *vhost, char *creator, int32 tmp_time)
Definition: hs_request.c:456
static Channel * current
Definition: channels.c:427
E HostCore * createHostCorelist(HostCore *next, char *nick, char *vIdent, char *vHost, char *creator, int32 tmp_time)
Definition: hostserv.c:131
E NickAlias * findnick(const char *nick)
Definition: db-merger.c:1857
static int hs_do_reject(User *u)
Definition: hs_request.c:362
MDE void moduleNoticeLang(char *source, User *u, int number,...)
Definition: modules.c:2680
#define EVENT_DB_SAVING
Definition: events.h:17
E int checkDefCon(int level)
Definition: operserv.c:1608
E IRCDVar * ircd
Definition: extern.h:39
#define LNG_HELP_REJECT
Definition: hs_request.c:51
static void req_send_memos(User *u, char *vIdent, char *vHost)
Definition: hs_request.c:313
#define LANG_RU
Definition: services.h:1328
E SList servadmins
Definition: extern.h:971
E int nick_identified(User *u)
Definition: nickserv.c:1111
#define LNG_ACTIVATE_SYNTAX
Definition: hs_request.c:38
#define LNG_HELP
Definition: hs_request.c:46
static void hsreq_save_db(void)
Definition: hs_request.c:661
E int stricmp(const char *s1, const char *s2)
Definition: compat.c:58
E char * myStrGetTokenRemainder(const char *str, const char dilim, int token_number)
Definition: misc.c:720
#define LNG_HELP_ACTIVATE
Definition: hs_request.c:49
ModuleLang lang[NUM_LANGS]
Definition: modules.h:156
#define LANG_NL
Definition: services.h:1327
E void notice(char *source, char *dest, const char *fmt,...)
Definition: send.c:274
int argc
Definition: modules.h:132
static int hs_do_list_out(User *u)
Definition: hs_request.c:488
uint16 language
Definition: services.h:549
HostCore * hs_request_head
Definition: hs_request.c:84
#define getstring(na, index)
Definition: extern.h:731
#define LNG_REQUEST_WAIT
Definition: hs_request.c:36
#define LNG_WAITING_SYNTAX
Definition: hs_request.c:53
#define LNG_HELP_REQUEST
Definition: hs_request.c:48
int vident
Definition: services.h:337
#define PARAM_RELOAD
Definition: services.h:454
#define LNG_REJECT_SYNTAX
Definition: hs_request.c:41
E char * strscpy(char *d, const char *s, size_t len)
Definition: db-merger.c:1886
MDE void moduleAddAuthor(const char *author)
Definition: modules.c:1772
E HostCore * findHostCore(HostCore *head, char *nick, boolean *found)
Definition: hostserv.c:180
#define HOSTSERV
Definition: modules.h:56
E void notice_lang(char *source, User *dest, int message,...)
Definition: send.c:169
MDE void moduleSetType(MODType type)
Definition: modules.c:818
MDE char * moduleGetLastBuffer(void)
Definition: modules.c:1988
static int HSRequestMemoOper
Definition: hs_request.c:25
E char * sstrdup(const char *s)
Definition: memory.c:105
NickCore * nc
Definition: services.h:533
void ** list
Definition: slist.h:21
#define LNG_ACTIVATED
Definition: hs_request.c:39
#define VERSION
Definition: hs_request.c:21
#define LANG_FR
Definition: services.h:1321
#define EVENT_NICK_EXPIRE
Definition: events.h:47
#define LNG_HELP_WAITING
Definition: hs_request.c:54
int16 count
Definition: slist.h:23
MDE Module * findModule(char *name)
Definition: modules.c:473
E User * finduser(const char *nick)
Definition: users.c:323
int32_t int32
Definition: db-merger.c:122
MDE void moduleAddVersion(const char *version)
Definition: modules.c:1760
HostCore * next
Definition: services.h:1108
#define LNG_NUM_STRINGS
Definition: hs_request.c:32
#define LNG_HELP_SETTER
Definition: hs_request.c:47
static void my_add_languages(void)
Definition: hs_request.c:743
static int hs_help_request(User *u)
Definition: hs_request.c:544
#define LNG_REQUEST_MEMO
Definition: hs_request.c:37
static void my_memo_lang(User *u, char *name, int z, char *source, int number,...)
Definition: hs_request.c:262
#define LNG_REJECT_MEMO
Definition: hs_request.c:43
MDE EvtHook * createEventHook(char *name, int(*func)(int argc, char **argv))
Definition: events.c:305
#define HSREQ_DEFAULT_DBNAME
Definition: hs_request.c:29
Command * c
Definition: ns_recover.c:17
u_int32_t uint32
Definition: db-merger.c:123
#define AUTHOR
Definition: hs_request.c:20
E void alog(const char *fmt,...) FORMAT(printf
E char * myStrGetOnlyToken(const char *str, const char dilim, int token_number)
Definition: misc.c:685
#define MOD_CONT
Definition: modules.h:54
static int hs_help_waiting(User *u)
Definition: hs_request.c:583
E HostCore * deleteHostCore(HostCore *head, HostCore *prev)
Definition: hostserv.c:268
E int HostNumber
Definition: extern.h:367
char * name
Definition: modules.h:137
#define EVENT_START
Definition: events.h:14
#define LNG_HELP_REJECT_MEMO
Definition: hs_request.c:52
#define LANG_IT
Definition: services.h:1323
static int hsreqevt_db_backup(int argc, char **argv)
Definition: hs_request.c:702
static int hsreqevt_nick_dropped(int argc, char **argv)
Definition: hs_request.c:347
E int debug
Definition: extern.h:775
char * vHost
Definition: services.h:1111
void AnopeFini(void)
Definition: hs_request.c:143
MDE void moduleInsertLanguage(int langNumber, int ac, char **av)
Definition: modules.c:2650
#define PARAM_SET
Definition: services.h:446
#define LNG_REJECT_MEMO_REASON
Definition: hs_request.c:44
static int my_isvalidchar(const char c)
Definition: hs_request.c:479
E char * s_HostServ
Definition: extern.h:303
char * HSRequestDBName
Definition: hs_request.c:27
char * nick
Definition: services.h:526
#define DEFCON_NO_NEW_MEMOS
Definition: services.h:1263
MDE Module * mod_current_module
Definition: modules.c:52
E int NSListMax
Definition: extern.h:392
#define LNG_REQUESTED
Definition: hs_request.c:35
char * vIdent
Definition: services.h:1110
E HostCore * insertHostCore(HostCore *head, HostCore *prev, char *nick, char *vIdent, char *vHost, char *creator, int32 tmp_time)
Definition: hostserv.c:212
#define LNG_NO_REQUEST
Definition: hs_request.c:45
E int vsnprintf(char *buf, size_t size, const char *fmt, va_list args)
MDE Command * createCommand(const char *name, int(*func)(User *u), int(*has_priv)(User *u), int help_all, int help_reg, int help_oper, int help_admin, int help_root)
Definition: modules.c:987
E char ** ServicesRoots
Definition: extern.h:434
static int hsreqevt_db_saving(int argc, char **argv)
Definition: hs_request.c:694
E char * myStrGetToken(const char *str, const char dilim, int token_number)
Definition: misc.c:654
static void hsreq_load_db(void)
Definition: hs_request.c:602
static int hs_help_reject(User *u)
Definition: hs_request.c:568
int AnopeInit(int argc, char **argv)
Definition: hs_request.c:86
static int hs_do_request(User *u)
Definition: hs_request.c:157
#define LANG_EN_US
Definition: services.h:1315
MDE int moduleAddHelp(Command *c, int(*func)(User *u))
Definition: modules.c:2064
static int HSRequestMemoUser
Definition: hs_request.c:24
#define USERMAX
Definition: config.h:68
E int is_services_oper(User *u)
Definition: operserv.c:606
static int HSRequestMemoSetters
Definition: hs_request.c:26
MDE int moduleGetConfigDirective(Directive *h)
Definition: modules.c:2553
E int MSSendDelay
Definition: extern.h:416
static void show_list(User *u)
Definition: hs_request.c:511
#define PARAM_STRING
Definition: services.h:443
E void memo_send(User *u, char *name, char *text, int z)
Definition: memoserv.c:198
#define EVENT_DB_BACKUP
Definition: events.h:18
char * creator
Definition: services.h:1112
#define LNG_REQUEST_SYNTAX
Definition: hs_request.c:34
E int is_host_setter(User *u)
Definition: hostserv.c:614
MDE int moduleAddCommand(CommandHash *cmdTable[], Command *c, int pos)
Definition: modules.c:1082
E SList servopers
Definition: extern.h:972
#define LNG_HELP_ACTIVATE_MEMO
Definition: hs_request.c:50
#define MOD_HEAD
Definition: module.h:12
static void my_load_config(void)
Definition: hs_request.c:714
MDE void moduleSetHostHelp(void(*func)(User *u))
Definition: modules.c:2138
E char ** HostSetters
Definition: extern.h:366
time_t lastmemosend
Definition: services.h:912
static int hs_do_waiting(User *u)
Definition: hs_request.c:504
#define LANG_PT
Definition: services.h:1320
char * nick
Definition: services.h:1109
MDE char * mod_current_module_name
Definition: modules.c:53
#define BUFSIZE
Definition: config.h:47
MDE int moduleAddEventHook(EvtHook *evh)
Definition: events.c:528
#define EVENT_NICK_DROPPED
Definition: events.h:45
E int RootNumber
Definition: extern.h:435
#define HOSTMAX
Definition: config.h:71
E char * normalizeBuffer(char *)
Definition: botserv.c:1101
NickAlias * na
Definition: services.h:892
E void memo_send_from(User *u, char *name, char *text, int z, char *source)
Definition: memoserv.c:217