()
| 53 | } |
| 54 | |
| 55 | func newFirewall() (*firewall, error) { |
| 56 | opts := &wf.Options{ |
| 57 | Dynamic: true, // remove filters when the process terminates |
| 58 | } |
| 59 | |
| 60 | sess, err := wf.New(opts) |
| 61 | if err != nil { |
| 62 | return nil, err |
| 63 | } |
| 64 | |
| 65 | return &firewall{s: sess}, nil |
| 66 | } |
| 67 | |
| 68 | func (f *firewall) allow(whitelist []net.IP) error { |
| 69 | f.mu.Lock() |