return NULL;
}
- /*
- * Do some basic sanity checks.
- */
- if (request->client->network.af != c->ipaddr.af) {
- fr_strerror_printf("Client IP address %pV IP version does not match the source network %pV of the packet.",
- fr_box_ipaddr(c->ipaddr), fr_box_ipaddr(request->client->network));
- goto error;
- }
-
- /*
- * Network prefix is more restrictive than the one given
- * by the client... that's bad.
- */
- if (request->client->network.prefix > c->ipaddr.prefix) {
- fr_strerror_printf("Client IP address %pV is not within the prefix with the defined network %pV",
- fr_box_ipaddr(c->ipaddr), fr_box_ipaddr(request->client->network));
- goto error;
- }
-
- ipaddr = c->ipaddr;
- fr_ipaddr_mask(&ipaddr, request->client->network.prefix);
- if (fr_ipaddr_cmp(&ipaddr, &request->client->network) != 0) {
- fr_strerror_printf("Client IP address %pV is not within the defined network %pV.",
- fr_box_ipaddr(c->ipaddr), fr_box_ipaddr(request->client->network));
- goto error;
- }
-
return c;
}