...
Run Format

Source file src/net/main_posix_test.go

Documentation: net

  // 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":
  			if so.Cookie.Family() == syscall.AF_INET && so.Cookie.Type() == syscall.SOCK_STREAM {
  				return nil, syscall.EHOSTUNREACH
  			}
  		case "udp4":
  			if so.Cookie.Family() == syscall.AF_INET && so.Cookie.Type() == syscall.SOCK_DGRAM {
  				return nil, syscall.EHOSTUNREACH
  			}
  		case "ip4":
  			if so.Cookie.Family() == syscall.AF_INET && so.Cookie.Type() == syscall.SOCK_RAW {
  				return nil, syscall.EHOSTUNREACH
  			}
  		case "tcp6":
  			if so.Cookie.Family() == syscall.AF_INET6 && so.Cookie.Type() == syscall.SOCK_STREAM {
  				return nil, syscall.EHOSTUNREACH
  			}
  		case "udp6":
  			if so.Cookie.Family() == syscall.AF_INET6 && so.Cookie.Type() == syscall.SOCK_DGRAM {
  				return nil, syscall.EHOSTUNREACH
  			}
  		case "ip6":
  			if so.Cookie.Family() == syscall.AF_INET6 && so.Cookie.Type() == syscall.SOCK_RAW {
  				return nil, syscall.EHOSTUNREACH
  			}
  		}
  		return nil, nil
  	})
  }
  

View as plain text