cfg.h 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. #ifndef _CFG_H
  2. #define _CFG_H
  3. #ifdef HAVE_CONFIG_H
  4. # include "config.h"
  5. #endif
  6. #define CFGF_GLOBAL 1 /* Accessible as .config */
  7. #define CFGF_LOCAL 2 /* Accessible as .botconfig */
  8. typedef struct cfg_entry {
  9. char *name;
  10. int flags;
  11. char *gdata;
  12. char *ldata;
  13. void (*globalchanged) (struct cfg_entry *, char *oldval, int *valid);
  14. void (*localchanged) (struct cfg_entry *, char *oldval, int *valid);
  15. #ifdef HUB
  16. void (*describe) (struct cfg_entry *, int idx);
  17. #endif /* HUB */
  18. } cfg_entry_T;
  19. extern struct cfg_entry CFG_MOTD, CFG_CMDPREFIX, CFG_BADCOOKIE, CFG_MANUALOP, CFG_MDOP,
  20. CFG_MOP, CFG_FORKINTERVAL, CFG_CHANSET, CFG_SERVERS, CFG_SERVERS6,
  21. CFG_NICK, CFG_REALNAME, CFG_INBOTS, CFG_LAGTHRESHOLD, CFG_OPREQUESTS, CFG_OPTIMESLACK,
  22. CFG_OPBOTS, CFG_INBOTS, CFG_SERVPORT;
  23. #if defined(S_AUTHHASH) || defined(S_DCCAUTH)
  24. extern struct cfg_entry CFG_AUTHKEY;
  25. #endif /* S_AUTHHASH || S_DCCAUTH */
  26. #ifdef S_MSGCMDS
  27. extern struct cfg_entry CFG_MSGOP, CFG_MSGPASS, CFG_MSGINVITE, CFG_MSGIDENT;
  28. #endif /* S_MSGCMDS */
  29. #ifdef G_MEAN
  30. extern struct cfg_entry CFG_MEANDEOP, CFG_MEANKICK, CFG_MEANBAN;
  31. #endif /* G_MEAN */
  32. #ifdef S_LASTCHECK
  33. extern struct cfg_entry CFG_LOGIN;
  34. #endif /* S_LASTCHECK */
  35. #ifdef S_HIJACKCHECK
  36. extern struct cfg_entry CFG_HIJACK;
  37. #endif /* S_HIJACKCHECK */
  38. #ifdef S_ANTITRACE
  39. extern struct cfg_entry CFG_TRACE;
  40. #endif /* S_ANTITRACE */
  41. #ifdef S_PROMISC
  42. extern struct cfg_entry CFG_PROMISC;
  43. #endif /* S_PROMISC */
  44. #ifdef S_PROCESSCHECK
  45. extern struct cfg_entry CFG_BADPROCESS, CFG_PROCESSLIST;
  46. #endif /* S_PROCESSCHECK */
  47. #ifdef S_AUTOLOCK
  48. struct cfg_entry CFG_FIGHTTHRESHOLD;
  49. #endif /* S_AUTOLOCK */
  50. void set_cfg_str(char *, char *, char *);
  51. void add_cfg(struct cfg_entry *);
  52. void got_config_share(int, char *, int);
  53. void userfile_cfg_line(char *);
  54. void trigger_cfg_changed();
  55. #ifdef S_DCCPASS
  56. int check_cmd_pass(const char *, char *);
  57. int has_cmd_pass(const char *);
  58. void set_cmd_pass(char *, int);
  59. extern struct cmd_pass *cmdpass;
  60. #endif /* S_DCCPASS */
  61. extern char cmdprefix;
  62. extern int cfg_count, cfg_noshare;
  63. extern struct cfg_entry **cfg;
  64. #define OP_BOTS (CFG_OPBOTS.gdata ? atoi(CFG_OPBOTS.gdata) : 1)
  65. #define IN_BOTS (CFG_INBOTS.gdata ? atoi(CFG_INBOTS.gdata) : 1)
  66. #define LAG_THRESHOLD (CFG_LAGTHRESHOLD.gdata ? atoi(CFG_LAGTHRESHOLD.gdata) : 15)
  67. #define OPREQ_COUNT (CFG_OPREQUESTS.gdata ? atoi( CFG_OPREQUESTS.gdata ) : 2)
  68. #define OPREQ_SECONDS (CFG_OPREQUESTS.gdata ? atoi( strchr(CFG_OPREQUESTS.gdata, ':') + 1 ) : 5)
  69. #define OP_TIME_SLACK (CFG_OPTIMESLACK.gdata ? atoi(CFG_OPTIMESLACK.gdata) : 60)
  70. #define msgop CFG_MSGOP.ldata ? CFG_MSGOP.ldata : CFG_MSGOP.gdata ? CFG_MSGOP.gdata : ""
  71. #define msgpass CFG_MSGPASS.ldata ? CFG_MSGPASS.ldata : CFG_MSGPASS.gdata ? CFG_MSGPASS.gdata : ""
  72. #define msginvite CFG_MSGINVITE.ldata ? CFG_MSGINVITE.ldata : CFG_MSGINVITE.gdata ? CFG_MSGINVITE.gdata : ""
  73. #define msgident CFG_MSGIDENT.ldata ? CFG_MSGIDENT.ldata : CFG_MSGIDENT.gdata ? CFG_MSGIDENT.gdata : ""
  74. #ifdef S_AUTOLOCK
  75. #define kill_threshold (CFG_KILLTHRESHOLD.gdata ? atoi(CFG_KILLTHRESHOLD.gdata) : 0)
  76. #endif /* S_AUTOLOCK */
  77. #endif /* !_CFG_H */