Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sockets 编译iptables模块错误_Sockets_Compilation_Kernel_Iptables - Fatal编程技术网

Sockets 编译iptables模块错误

Sockets 编译iptables模块错误,sockets,compilation,kernel,iptables,Sockets,Compilation,Kernel,Iptables,我第一次尝试测试过滤modbus协议的旧iptables模块,我使用旧的fedora 7来避免兼容性问题,我在配置内核中激活该模块,但当我尝试创建时,我遇到了一些与skbuff.h库函数相关的问题: [root@localhost linux-2.6.38.4]# make CHK include/linux/version.h CHK include/generated/utsrelease.h CALL scripts/checksyscalls.sh

我第一次尝试测试过滤modbus协议的旧iptables模块,我使用旧的fedora 7来避免兼容性问题,我在配置内核中激活该模块,但当我尝试创建时,我遇到了一些与skbuff.h库函数相关的问题:

[root@localhost linux-2.6.38.4]# make
  CHK     include/linux/version.h
  CHK     include/generated/utsrelease.h
  CALL    scripts/checksyscalls.sh
  CHK     include/generated/compile.h
  CC [M]  net/ipv4/netfilter/ipt_modbus.o
net/ipv4/netfilter/ipt_modbus.c:18: warning: data definition has no type or storage class
net/ipv4/netfilter/ipt_modbus.c:18: warning: type defaults to ‘int’ in declaration of ‘EXPORT_NO_SYMBOLS’
net/ipv4/netfilter/ipt_modbus.c: In function ‘length_check’:
net/ipv4/netfilter/ipt_modbus.c:61: warning: suggest parentheses around && within ||
net/ipv4/netfilter/ipt_modbus.c: In function ‘match’:
net/ipv4/netfilter/ipt_modbus.c:141: error: ‘const struct sk_buff’ has no member named ‘nh’
net/ipv4/netfilter/ipt_modbus.c:138: warning: unused variable ‘data’
net/ipv4/netfilter/ipt_modbus.c: In function ‘checkentry’:
net/ipv4/netfilter/ipt_modbus.c:194: error: implicit declaration of function ‘IPT_ALIGN’
net/ipv4/netfilter/ipt_modbus.c:187: warning: unused variable ‘modbusinfo’
net/ipv4/netfilter/ipt_modbus.c: At top level:
net/ipv4/netfilter/ipt_modbus.c:202: error: variable ‘modbus_match’ has initializer but incomplete type
net/ipv4/netfilter/ipt_modbus.c:202: error: extra brace group at end of initializer
net/ipv4/netfilter/ipt_modbus.c:202: error: (near initialization for ‘modbus_match’)
net/ipv4/netfilter/ipt_modbus.c:202: warning: excess elements in struct initializer
net/ipv4/netfilter/ipt_modbus.c:202: warning: (near initialization for ‘modbus_match’)
net/ipv4/netfilter/ipt_modbus.c:202: warning: excess elements in struct initializer
net/ipv4/netfilter/ipt_modbus.c:202: warning: (near initialization for ‘modbus_match’)
net/ipv4/netfilter/ipt_modbus.c:202: warning: excess elements in struct initializer
net/ipv4/netfilter/ipt_modbus.c:202: warning: (near initialization for ‘modbus_match’)
net/ipv4/netfilter/ipt_modbus.c:202: warning: excess elements in struct initializer
net/ipv4/netfilter/ipt_modbus.c:202: warning: (near initialization for ‘modbus_match’)
net/ipv4/netfilter/ipt_modbus.c:202: warning: excess elements in struct initializer
net/ipv4/netfilter/ipt_modbus.c:202: warning: (near initialization for ‘modbus_match’)
net/ipv4/netfilter/ipt_modbus.c:202: warning: excess elements in struct initializer
net/ipv4/netfilter/ipt_modbus.c:202: warning: (near initialization for ‘modbus_match’)
net/ipv4/netfilter/ipt_modbus.c: In function ‘init’:
net/ipv4/netfilter/ipt_modbus.c:206: error: implicit declaration of function ‘ipt_register_match’
net/ipv4/netfilter/ipt_modbus.c: In function ‘cleanup’:
net/ipv4/netfilter/ipt_modbus.c:211: error: implicit declaration of function ‘ipt_unregister_match’
make[3]: *** [net/ipv4/netfilter/ipt_modbus.o] Error 1
make[2]: *** [net/ipv4/netfilter] Error 2
make[1]: *** [net/ipv4] Error 2
make: *** [net] Error 2
[root@localhost linux-2.6.38.4]# 
触发第一个错误的行是第141行:

  iph = skb->nh.iph;
我搜索了一下,发现skbuff.h中有一些变化,一些函数不再可用。 这是显示iptabe模块文件的源


我无法更新我的内核,因为该模块届时将无法工作,因此,如果有人有解决此问题的想法或补丁,我将非常高兴。

普通Linux内核2.6.38中没有文件
net/ipv4/netfilter/ipt_modbus.c
。(参见,例如)。你把它带到哪里去了?是的,ipt_modbus是一个扩展模块,你可以从这里下载,你只需将它添加到你的netfilter并重新编译de linux内核