| // 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. | 
 |  | 
 | package websocket | 
 |  | 
 | import ( | 
 | 	"crypto/tls" | 
 | 	"net" | 
 | ) | 
 |  | 
 | func dialWithDialer(dialer *net.Dialer, config *Config) (conn net.Conn, err error) { | 
 | 	switch config.Location.Scheme { | 
 | 	case "ws": | 
 | 		conn, err = dialer.Dial("tcp", parseAuthority(config.Location)) | 
 |  | 
 | 	case "wss": | 
 | 		conn, err = tls.DialWithDialer(dialer, "tcp", parseAuthority(config.Location), config.TlsConfig) | 
 |  | 
 | 	default: | 
 | 		err = ErrBadScheme | 
 | 	} | 
 | 	return | 
 | } |