OSDN Git Service

Hulk did something
[bytom/vapor.git] / vendor / golang.org / x / net / ipv6 / icmp_solaris.go
diff --git a/vendor/golang.org/x/net/ipv6/icmp_solaris.go b/vendor/golang.org/x/net/ipv6/icmp_solaris.go
new file mode 100644 (file)
index 0000000..7c23bb1
--- /dev/null
@@ -0,0 +1,27 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package ipv6
+
+func (f *icmpv6Filter) accept(typ ICMPType) {
+       f.X__icmp6_filt[typ>>5] |= 1 << (uint32(typ) & 31)
+}
+
+func (f *icmpv6Filter) block(typ ICMPType) {
+       f.X__icmp6_filt[typ>>5] &^= 1 << (uint32(typ) & 31)
+}
+
+func (f *icmpv6Filter) setAll(block bool) {
+       for i := range f.X__icmp6_filt {
+               if block {
+                       f.X__icmp6_filt[i] = 0
+               } else {
+                       f.X__icmp6_filt[i] = 1<<32 - 1
+               }
+       }
+}
+
+func (f *icmpv6Filter) willBlock(typ ICMPType) bool {
+       return f.X__icmp6_filt[typ>>5]&(1<<(uint32(typ)&31)) == 0
+}