команда
iptables -F пишет ошибку:
getsockopt failed strangely: no such file of directory
Прилагаю код функции, где возникает ошибка:
static int compatible_revision(const char *name, u_int8_t revision, int opt)
{
struct ipt_get_revision rev;
socklen_t s = sizeof(rev);
int max_rev, sockfd;
sockfd = socket(AF_INET, SOCK_RAW, IPPROTO_RAW);
if (sockfd < 0) {
fprintf(stderr, "Could not open socket to kernel: %s\n",
strerror(errno));
exit(1);
}
strcpy(rev.name, name);
rev.revision = revision;
max_rev = getsockopt(sockfd, IPPROTO_IP, opt, &rev, &s);
if (max_rev < 0) {
/* Definitely don't support this? */
if (errno == EPROTONOSUPPORT) {
close(sockfd);
return 0;
} else if (errno == ENOPROTOOPT) {
close(sockfd);
/* Assume only revision 0 support (old kernel) */
return (revision == 0);
} else {
fprintf(stderr, "getsockopt failed strangely: %s\n",
strerror(errno));
exit(1);
}
}
close(sockfd);
return 1;
}