set.h 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. #ifndef _SET_H
  2. #define _SET_H
  3. #include <sys/types.h>
  4. #define var_type_name(x) (x & VAR_DETECTED) ? "detect" : (x & VAR_BOOL) ? "bool" : (x & VAR_INT) ? "int" :\
  5. (x & VAR_LIST) ? "list" : (x & VAR_STRING) ? "string" : (x & VAR_RATE) ? "rate" : ""
  6. #define VAR_INT BIT0
  7. #define VAR_STRING BIT1
  8. #define VAR_RATE BIT2
  9. #define VAR_BOOL BIT3
  10. #define VAR_HIDE BIT4
  11. #define VAR_DETECTED BIT5
  12. #define VAR_LIST BIT6
  13. /* send this var to server as nick? */
  14. #define VAR_NICK BIT7
  15. #define VAR_SERVERS BIT8
  16. #define VAR_SHUFFLE BIT9
  17. /* no local */
  18. #define VAR_NOLOC BIT10
  19. /* no local hub */
  20. #define VAR_NOLHUB BIT11
  21. /* trigger cloak script changing? */
  22. #define VAR_CLOAK BIT12
  23. /* only perm owner may view/edit */
  24. #define VAR_PERM BIT13
  25. /* Don't set the var data from the mem as default (NICK) */
  26. #define VAR_NODEF BIT14
  27. #define VAR_CHANSET BIT15
  28. /* Don't set the default on startup of a leaf (servers) */
  29. #define VAR_NOLDEF BIT16
  30. /* Don't set global on hub */
  31. #define VAR_NOGHUB BIT17
  32. /* (short) number */
  33. #define VAR_SHORT BIT18
  34. #define VAR_JUPENICK BIT19
  35. #define VAR_NOHUB VAR_NOLHUB|VAR_NOGHUB
  36. #define VAR_LDATA 1
  37. #define VAR_GDATA 2
  38. #define set_data(x) ((x).ldata ? (x).ldata : (x).gdata ? (x).gdata : 0)
  39. #define set_type(x) ((x).ldata ? VAR_LDATA : (x).gdata ? VAR_GDATA : 0)
  40. #define set_types(x) ((x).ldata ? "local" : (x).gdata ? "global" : "")
  41. #define VAR(_name, _mem, _flags, _a, _b, _def) {_name, _mem, sizeof _mem, _flags, NULL, NULL, 0, _def, _a, _b}
  42. typedef struct variable_b {
  43. const char *name;
  44. void *mem;
  45. size_t size;
  46. int flags;
  47. char *ldata;
  48. char *gdata;
  49. bool flagged;
  50. const char *def;
  51. int a;
  52. int b;
  53. } variable_t;
  54. typedef struct rate_b {
  55. int count;
  56. interval_t time;
  57. } rate_t;
  58. extern char auth_key[], auth_prefix[2], motd[], *def_chanset, alias[],
  59. msgident[], msginvite[], msgop[], msgpass[],
  60. homechan[], altchars[];
  61. extern bool dccauth, auth_obscure, manop_warn, auth_chan, oidentd, ident_botnick, irc_autoaway, link_cleartext;
  62. extern int cloak_script, fight_threshold, fork_interval, in_bots, set_noshare, dcc_autoaway,
  63. kill_threshold, lag_threshold, op_bots, hijack, login, promisc, trace,
  64. ison_time;
  65. extern rate_t op_requests, close_threshold;
  66. bool write_vars_and_cmdpass (FILE *, int);
  67. void var_userfile_share_line(char *, int, bool);
  68. void var_parse_my_botset();
  69. void init_vars();
  70. void var_set_by_name(const char *, const char *, const char *);
  71. void var_set_userentry(const char *, const char *, const char *);
  72. int cmd_set_real(const char *, int idx, char *);
  73. const char *var_get_str_by_name(const char *);
  74. #endif /* !_SET_H */