Commit 2b5bae9a authored by Simon Kelley's avatar Simon Kelley

Fall back from --bind-dynamic to --bind-interfaces in BSD, rather than quitting.

parent 39f1b8e7
...@@ -114,11 +114,16 @@ int main (int argc, char **argv) ...@@ -114,11 +114,16 @@ int main (int argc, char **argv)
set_option_bool(OPT_NOWILD); set_option_bool(OPT_NOWILD);
} }
# endif # endif
/* -- bind-dynamic not supported on !Linux, fall back to --bind-interfaces */
if (option_bool(OPT_CLEVERBIND)) if (option_bool(OPT_CLEVERBIND))
die(_("--bind-dynamic not available on this platform"), NULL, EC_BADCONF); {
bind_fallback = 1;
set_option_bool(OPT_NOWILD);
reset_option_bool(OPT_CLVERBIND);
}
#endif #endif
#ifndef HAVE_TFTP #ifndef HAVE_TFTP
if (daemon->tftp_unlimited || daemon->tftp_interfaces) if (daemon->tftp_unlimited || daemon->tftp_interfaces)
die(_("TFTP server not available: set HAVE_TFTP in src/config.h"), NULL, EC_BADCONF); die(_("TFTP server not available: set HAVE_TFTP in src/config.h"), NULL, EC_BADCONF);
......
...@@ -932,6 +932,7 @@ char *option_string(int prot, unsigned int opt, unsigned char *val, ...@@ -932,6 +932,7 @@ char *option_string(int prot, unsigned int opt, unsigned char *val,
int opt_len, char *buf, int buf_len); int opt_len, char *buf, int buf_len);
void reread_dhcp(void); void reread_dhcp(void);
void set_option_bool(unsigned int opt); void set_option_bool(unsigned int opt);
void reset_option_bool(unsigned int opt);
struct hostsfile *expand_filelist(struct hostsfile *list); struct hostsfile *expand_filelist(struct hostsfile *list);
/* forward.c */ /* forward.c */
......
...@@ -1119,6 +1119,14 @@ void set_option_bool(unsigned int opt) ...@@ -1119,6 +1119,14 @@ void set_option_bool(unsigned int opt)
daemon->options2 |= 1u << (opt - 32); daemon->options2 |= 1u << (opt - 32);
} }
void reset_option_bool(unsigned int opt)
{
if (opt < 32)
daemon->options &= ~(1u << opt);
else
daemon->options2 &= ~(1u << (opt - 32));
}
static char *one_opt(int option, char *arg, char *gen_prob, int command_line) static char *one_opt(int option, char *arg, char *gen_prob, int command_line)
{ {
int i; int i;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment