dirauth_config.h (3061B)
1 /* Copyright (c) 2001 Matej Pfajfar. 2 * Copyright (c) 2001-2004, Roger Dingledine. 3 * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. 4 * Copyright (c) 2007-2021, The Tor Project, Inc. */ 5 /* See LICENSE for licensing information */ 6 7 /** 8 * @file dirauth_config.h 9 * @brief Header for feature/dirauth/dirauth_config.c 10 **/ 11 12 #ifndef TOR_FEATURE_DIRAUTH_DIRAUTH_CONFIG_H 13 #define TOR_FEATURE_DIRAUTH_DIRAUTH_CONFIG_H 14 15 struct or_options_t; 16 17 #ifdef HAVE_MODULE_DIRAUTH 18 19 #include "lib/cc/torint.h" 20 21 int options_validate_dirauth_mode(const struct or_options_t *old_options, 22 struct or_options_t *options, 23 char **msg); 24 25 int options_validate_dirauth_schedule(const struct or_options_t *old_options, 26 struct or_options_t *options, 27 char **msg); 28 29 int options_validate_dirauth_testing(const struct or_options_t *old_options, 30 struct or_options_t *options, 31 char **msg); 32 33 int options_act_dirauth(const struct or_options_t *old_options); 34 int options_act_dirauth_mtbf(const struct or_options_t *old_options); 35 int options_act_dirauth_stats(const struct or_options_t *old_options, 36 bool *print_notice_out); 37 38 bool dirauth_should_reject_requests_under_load(void); 39 40 extern const struct config_format_t dirauth_options_fmt; 41 42 #else /* !defined(HAVE_MODULE_DIRAUTH) */ 43 44 /** When tor is compiled with the dirauth module disabled, it can't be 45 * configured as a directory authority. 46 * 47 * Returns -1 and sets msg to a newly allocated string, if AuthoritativeDir 48 * is set in options. Otherwise returns 0. */ 49 static inline int 50 options_validate_dirauth_mode(const struct or_options_t *old_options, 51 struct or_options_t *options, 52 char **msg) 53 { 54 (void)old_options; 55 56 /* Only check the primary option for now, #29211 will disable more 57 * options. */ 58 if (options->AuthoritativeDir) { 59 /* REJECT() this configuration */ 60 *msg = tor_strdup("This tor was built with dirauth mode disabled. " 61 "It can not be configured with AuthoritativeDir 1."); 62 return -1; 63 } 64 65 return 0; 66 } 67 68 #define options_validate_dirauth_schedule(old_options, options, msg) \ 69 (((void)(old_options)),((void)(options)),((void)(msg)),0) 70 #define options_validate_dirauth_testing(old_options, options, msg) \ 71 (((void)(old_options)),((void)(options)),((void)(msg)),0) 72 73 #define options_act_dirauth(old_options) \ 74 (((void)(old_options)),0) 75 #define options_act_dirauth_mtbf(old_options) \ 76 (((void)(old_options)),0) 77 78 static inline int 79 options_act_dirauth_stats(const struct or_options_t *old_options, 80 bool *print_notice_out) 81 { 82 (void)old_options; 83 *print_notice_out = 0; 84 return 0; 85 } 86 87 #define dirauth_should_reject_requests_under_load() (false) 88 89 #endif /* defined(HAVE_MODULE_DIRAUTH) */ 90 91 #endif /* !defined(TOR_FEATURE_DIRAUTH_DIRAUTH_CONFIG_H) */