nfqws: fail if hostlist/ipset does not exist at startup

This commit is contained in:
bol-van 2024-10-29 13:41:29 +03:00
parent e979f88963
commit 6686c4a190
3 changed files with 17 additions and 6 deletions

View File

@ -245,6 +245,11 @@ static struct hostlist_file *RegisterHostlist_(struct hostlist_files_head *hostl
} }
struct hostlist_file *RegisterHostlist(struct desync_profile *dp, bool bExclude, const char *filename) struct hostlist_file *RegisterHostlist(struct desync_profile *dp, bool bExclude, const char *filename)
{ {
if (!file_mod_time(filename))
{
DLOG_ERR("cannot access hostlist file '%s'\n",filename);
return NULL;
}
return RegisterHostlist_( return RegisterHostlist_(
&params.hostlists, &params.hostlists,
bExclude ? &dp->hl_collection_exclude : &dp->hl_collection, bExclude ? &dp->hl_collection_exclude : &dp->hl_collection,

View File

@ -225,7 +225,8 @@ static bool IpsetCheck_(const struct ipset_collection_head *ips, const struct ip
bool IpsetCheck(const struct desync_profile *dp, const struct in_addr *ipv4, const struct in6_addr *ipv6) bool IpsetCheck(const struct desync_profile *dp, const struct in_addr *ipv4, const struct in6_addr *ipv6)
{ {
if (!PROFILE_IPSETS_EMPTY(dp)) DLOG("* ipset check for profile %d\n",dp->n); if (PROFILE_IPSETS_EMPTY(dp)) return true;
DLOG("* ipset check for profile %d\n",dp->n);
return IpsetCheck_(&dp->ips_collection,&dp->ips_collection_exclude,ipv4,ipv6); return IpsetCheck_(&dp->ips_collection,&dp->ips_collection_exclude,ipv4,ipv6);
} }
@ -243,6 +244,11 @@ static struct ipset_file *RegisterIpset_(struct ipset_files_head *ipsets, struct
} }
struct ipset_file *RegisterIpset(struct desync_profile *dp, bool bExclude, const char *filename) struct ipset_file *RegisterIpset(struct desync_profile *dp, bool bExclude, const char *filename)
{ {
if (!file_mod_time(filename))
{
DLOG_ERR("cannot access ipset file '%s'\n",filename);
return NULL;
}
return RegisterIpset_( return RegisterIpset_(
&params.ipsets, &params.ipsets,
bExclude ? &dp->ips_collection_exclude : &dp->ips_collection, bExclude ? &dp->ips_collection_exclude : &dp->ips_collection,

View File

@ -1511,14 +1511,14 @@ int main(int argc, char **argv)
case 45: /* hostlist */ case 45: /* hostlist */
if (!RegisterHostlist(dp, false, optarg)) if (!RegisterHostlist(dp, false, optarg))
{ {
DLOG_ERR("failed to register hostlist %s\n", optarg); DLOG_ERR("failed to register hostlist '%s'\n", optarg);
exit_clean(1); exit_clean(1);
} }
break; break;
case 46: /* hostlist-exclude */ case 46: /* hostlist-exclude */
if (!RegisterHostlist(dp, true, optarg)) if (!RegisterHostlist(dp, true, optarg))
{ {
DLOG_ERR("failed to register hostlist %s\n", optarg); DLOG_ERR("failed to register hostlist '%s'\n", optarg);
exit_clean(1); exit_clean(1);
} }
break; break;
@ -1549,7 +1549,7 @@ int main(int argc, char **argv)
} }
if (!(dp->hostlist_auto=RegisterHostlist(dp, false, optarg))) if (!(dp->hostlist_auto=RegisterHostlist(dp, false, optarg)))
{ {
DLOG_ERR("failed to register hostlist %s\n", optarg); DLOG_ERR("failed to register hostlist '%s'\n", optarg);
exit_clean(1); exit_clean(1);
} }
break; break;
@ -1639,14 +1639,14 @@ int main(int argc, char **argv)
case 57: /* ipset */ case 57: /* ipset */
if (!RegisterIpset(dp, false, optarg)) if (!RegisterIpset(dp, false, optarg))
{ {
DLOG_ERR("failed to register ipset %s\n", optarg); DLOG_ERR("failed to register ipset '%s'\n", optarg);
exit_clean(1); exit_clean(1);
} }
break; break;
case 58: /* ipset-exclude */ case 58: /* ipset-exclude */
if (!RegisterIpset(dp, true, optarg)) if (!RegisterIpset(dp, true, optarg))
{ {
DLOG_ERR("failed to register ipset %s\n", optarg); DLOG_ERR("failed to register ipset '%s'\n", optarg);
exit_clean(1); exit_clean(1);
} }
break; break;