Selaa lähdekoodia

x/net/ipv4: add icmp filter type, constant for linux

LGTM=iant
R=iant
CC=golang-codereviews
https://golang.org/cl/182950043
Mikio Hara 11 vuotta sitten
vanhempi
commit
119dea2c0f
4 muutettua tiedostoa jossa 33 lisäystä ja 0 poistoa
  1. 9 0
      ipv4/defs_linux.go
  2. 8 0
      ipv4/zsys_linux_386.go
  3. 8 0
      ipv4/zsys_linux_amd64.go
  4. 8 0
      ipv4/zsys_linux_arm.go

+ 9 - 0
ipv4/defs_linux.go

@@ -9,7 +9,10 @@
 package ipv4
 
 /*
+#include <time.h>
+
 #include <linux/errqueue.h>
+#include <linux/icmp.h>
 #include <linux/in.h>
 */
 import "C"
@@ -64,6 +67,8 @@ const (
 	//sysIP_PMTUDISC_INTERFACE = C.IP_PMTUDISC_INTERFACE
 	//sysIP_PMTUDISC_OMIT      = C.IP_PMTUDISC_OMIT
 
+	sysICMP_FILTER = C.ICMP_FILTER
+
 	sysSO_EE_ORIGIN_NONE         = C.SO_EE_ORIGIN_NONE
 	sysSO_EE_ORIGIN_LOCAL        = C.SO_EE_ORIGIN_LOCAL
 	sysSO_EE_ORIGIN_ICMP         = C.SO_EE_ORIGIN_ICMP
@@ -81,6 +86,8 @@ const (
 	sysSizeofIPMreqSource   = C.sizeof_struct_ip_mreq_source
 	sysSizeofGroupReq       = C.sizeof_struct_group_req
 	sysSizeofGroupSourceReq = C.sizeof_struct_group_source_req
+
+	sysSizeofICMPFilter = C.sizeof_struct_icmp_filter
 )
 
 type sysKernelSockaddrStorage C.struct___kernel_sockaddr_storage
@@ -100,3 +107,5 @@ type sysIPMreqSource C.struct_ip_mreq_source
 type sysGroupReq C.struct_group_req
 
 type sysGroupSourceReq C.struct_group_source_req
+
+type sysICMPFilter C.struct_icmp_filter

+ 8 - 0
ipv4/zsys_linux_386.go

@@ -46,6 +46,8 @@ const (
 	sysMCAST_MSFILTER            = 0x30
 	sysIP_MULTICAST_ALL          = 0x31
 
+	sysICMP_FILTER = 0x1
+
 	sysSO_EE_ORIGIN_NONE         = 0x0
 	sysSO_EE_ORIGIN_LOCAL        = 0x1
 	sysSO_EE_ORIGIN_ICMP         = 0x2
@@ -63,6 +65,8 @@ const (
 	sysSizeofIPMreqSource   = 0xc
 	sysSizeofGroupReq       = 0x84
 	sysSizeofGroupSourceReq = 0x104
+
+	sysSizeofICMPFilter = 0x4
 )
 
 type sysKernelSockaddrStorage struct {
@@ -120,3 +124,7 @@ type sysGroupSourceReq struct {
 	Group     sysKernelSockaddrStorage
 	Source    sysKernelSockaddrStorage
 }
+
+type sysICMPFilter struct {
+	Data uint32
+}

+ 8 - 0
ipv4/zsys_linux_amd64.go

@@ -46,6 +46,8 @@ const (
 	sysMCAST_MSFILTER            = 0x30
 	sysIP_MULTICAST_ALL          = 0x31
 
+	sysICMP_FILTER = 0x1
+
 	sysSO_EE_ORIGIN_NONE         = 0x0
 	sysSO_EE_ORIGIN_LOCAL        = 0x1
 	sysSO_EE_ORIGIN_ICMP         = 0x2
@@ -63,6 +65,8 @@ const (
 	sysSizeofIPMreqSource   = 0xc
 	sysSizeofGroupReq       = 0x88
 	sysSizeofGroupSourceReq = 0x108
+
+	sysSizeofICMPFilter = 0x4
 )
 
 type sysKernelSockaddrStorage struct {
@@ -122,3 +126,7 @@ type sysGroupSourceReq struct {
 	Group     sysKernelSockaddrStorage
 	Source    sysKernelSockaddrStorage
 }
+
+type sysICMPFilter struct {
+	Data uint32
+}

+ 8 - 0
ipv4/zsys_linux_arm.go

@@ -46,6 +46,8 @@ const (
 	sysMCAST_MSFILTER            = 0x30
 	sysIP_MULTICAST_ALL          = 0x31
 
+	sysICMP_FILTER = 0x1
+
 	sysSO_EE_ORIGIN_NONE         = 0x0
 	sysSO_EE_ORIGIN_LOCAL        = 0x1
 	sysSO_EE_ORIGIN_ICMP         = 0x2
@@ -63,6 +65,8 @@ const (
 	sysSizeofIPMreqSource   = 0xc
 	sysSizeofGroupReq       = 0x84
 	sysSizeofGroupSourceReq = 0x104
+
+	sysSizeofICMPFilter = 0x4
 )
 
 type sysKernelSockaddrStorage struct {
@@ -120,3 +124,7 @@ type sysGroupSourceReq struct {
 	Group     sysKernelSockaddrStorage
 	Source    sysKernelSockaddrStorage
 }
+
+type sysICMPFilter struct {
+	Data uint32
+}