if (input->module != NULL) {
strarr_push(&conf_argv, "-m");
strarr_push(&conf_argv, input->module);
- if (service->want_ssl_settings) {
+ }
+ if (input->extra_modules != NULL) {
+ for (unsigned int i = 0; input->extra_modules[i] != NULL; i++) {
strarr_push(&conf_argv, "-m");
- strarr_push(&conf_argv, "ssl");
+ strarr_push(&conf_argv, input->extra_modules[i]);
}
}
+ if (service->want_ssl_settings &&
+ (input->module != NULL || input->extra_modules != NULL)) {
+ strarr_push(&conf_argv, "-m");
+ strarr_push(&conf_argv, "ssl");
+ }
if (input->parse_full_config)
strarr_push(&conf_argv, "-p");
bool use_sysexits;
bool parse_full_config;
+ /* Either/both module and extra_modules can be set. Usually just one
+ is needed, so module is simpler to set. */
const char *module;
+ const char *const *extra_modules;
const char *service;
const char *username;
struct ip_addr local_ip, remote_ip;