关于ClearOS 7.3问题的netlink

时间:2017-09-21 10:25:13

标签: netfilter netlink clearos

我正在尝试在ClearOS 7.3,64位

上执行简单程序
#include <sys/socket.h>
#include <linux/netlink.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <errno.h>

int main()
{
    int flags =0;
    int bus = NETLINK_NETFILTER;

    int sock_fd = socket(AF_NETLINK, SOCK_RAW | flags, bus);
    if(sock_fd<0)
    {
        printf("\nsocket failed with error no = %d and error msg = %s\n",
                                errno, strerror(errno));

        return -1;
    }

    printf("\nOP completed successfully..!\n");
    return 0;
}

我收到以下错误:

  

套接字失败,错误号= 93,错误消息msg =协议没有   支持的

我的操作系统详细信息是:

  • ClearOS版本7.3.0(最终版)
  • Linux 3.10.0-514.26.2.v7.x86_64#1 SMP Wed Jul 5 10:37:54 MDT 2017 x86_64 x86_64 x86_64 GNU / Linux

请帮忙。

1 个答案:

答案 0 :(得分:0)

适合我。

NETLINK_NETFILTER模块注册了$ sudo modprobe nfnetlink 协议。

在我的情况下,内核会自动注册模块,因为此代码使用它,但如果你的代码没有,请尝试手动插入:

let infoButton = UIButton.init(type: .custom)
infoButton.setImage(UIImage(named: "info button white.png"), for: UIControlState.normal)
infoButton.addTarget(self, action: #selector(StartViewController.infoButtonPressed), for: UIControlEvents.touchUpInside)
infoButton.frame = CGRect(x: 0, y: 0, width: 25, height: 25)

let barButton = UIBarButtonItem(customView: infoButton)
self.navigationItem.rightBarButtonItem = barButton

然后再次尝试打开套接字。