commit 2d3516ed898463fd58314a74d781b842857315ed from: Stefan Sperling date: Fri Sep 08 14:08:47 2023 UTC use a separate DHCP lease database per rdomain ok Tom commit - 0698bd5fd36695ee913ac16345bcaf7dc83d2dbf commit + 2d3516ed898463fd58314a74d781b842857315ed blob - 90c757c613ac4b53c77d0c90ea82967be741cfe8 blob + 528710a4482fd377a428dd36869504591fd47a75 --- ctl.c +++ ctl.c @@ -1041,6 +1041,7 @@ start_dhcpd(char *name, char **args, char *z) char **p, **dhcpd_args = NULL; size_t nargs = 0, niface = 0; int ifs, i; + char leasedb[PATH_MAX]; if (cli_rtable == 0) { cmdargs(name, args); @@ -1094,8 +1095,16 @@ start_dhcpd(char *name, char **args, char *z) } dhcpd_args[0] = name; - for (i = 1; i < nargs + 1; i++) - dhcpd_args[i] = args[i - 1]; + for (i = 1; i < nargs + 1; i++) { + char *arg = args[i - 1]; + + if (strcmp(arg, DHCPLEASES) == 0) { + snprintf(leasedb, sizeof(leasedb), "%s.%d", + arg, cli_rtable); + dhcpd_args[i] = leasedb; + } else + dhcpd_args[i] = arg; + } for (ifnp = ifn_list; ifnp->if_name != NULL; ifnp++) { int flags, rdomain;