blob: da80ff03c8f68e8b4bafc78b410e084f34622d0a [file] [log] [blame]
// Copyright 2015 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.
// +build !plan9
package net
import (
"net/internal/socktest"
"strings"
"syscall"
)
func enableSocketConnect() {
sw.Set(socktest.FilterConnect, nil)
}
func disableSocketConnect(network string) {
ss := strings.Split(network, ":")
sw.Set(socktest.FilterConnect, func(so *socktest.Status) (socktest.AfterFilter, error) {
switch ss[0] {
case "tcp4", "udp4", "ip4":
if so.Cookie.Family() == syscall.AF_INET {
return nil, syscall.EHOSTUNREACH
}
case "tcp6", "udp6", "ip6":
if so.Cookie.Family() == syscall.AF_INET6 {
return nil, syscall.EHOSTUNREACH
}
}
return nil, nil
})
}