mirror of
https://github.com/bol-van/zapret.git
synced 2025-04-20 22:12:58 +03:00
nfq: switch to PF_DIVERT/SOCK_RAW on FreeBSD 14
FreeBSD/FreeBSD-src@8624f4347e ("divert: declare PF_DIVERT domain and stop abusing PF_INET") deprecated IPPROTO_DIVERT by introducing address family-independent PF_DIVERT. Use socket(PF_DIVERT, SOCK_RAW, 0) to avoid deprecated behavior, i.e. FreeBSD/FreeBSD-src@f70a2e2948.
This commit is contained in:
parent
d5b104d781
commit
aed912e702
@ -899,7 +899,12 @@ static int rawsend_socket_divert(sa_family_t family)
|
||||
// we either have to go to the link layer (its hard, possible problems arise, compat testing, ...) or use some HACKING
|
||||
// from my point of view disabling direct ability to send ip frames is not security. its SHIT
|
||||
|
||||
int fd = socket(family, SOCK_RAW, IPPROTO_DIVERT);
|
||||
int fd;
|
||||
#if __FreeBSD_version >= 1400066 && defined(PF_DIVERT)
|
||||
fd = socket(PF_DIVERT, SOCK_RAW, 0);
|
||||
#else
|
||||
fd = socket(family, SOCK_RAW, IPPROTO_DIVERT);
|
||||
#endif
|
||||
if (fd!=-1 && !set_socket_buffers(fd,4096,RAW_SNDBUF))
|
||||
{
|
||||
close(fd);
|
||||
|
@ -347,7 +347,11 @@ static int dvt_main()
|
||||
bp4.sin_addr.s_addr = INADDR_ANY;
|
||||
|
||||
printf("creating divert4 socket\n");
|
||||
#if __FreeBSD_version >= 1400066 && defined(PF_DIVERT)
|
||||
fd[0] = socket(PF_DIVERT, SOCK_RAW, 0);
|
||||
#else
|
||||
fd[0] = socket(AF_INET, SOCK_RAW, IPPROTO_DIVERT);
|
||||
#endif
|
||||
if (fd[0] == -1) {
|
||||
perror("socket (DIVERT4)");
|
||||
goto exiterr;
|
||||
|
Loading…
x
Reference in New Issue
Block a user