aboutsummaryrefslogtreecommitdiffstats
path: root/plumbing/transport/client/client.go
diff options
context:
space:
mode:
authorMáximo Cuadros <mcuadros@gmail.com>2017-02-21 18:54:48 +0100
committerMáximo Cuadros <mcuadros@gmail.com>2017-02-21 18:54:48 +0100
commitdc322326e26d360cfc6ca6921f48265b1f7a4453 (patch)
tree5cbc2fa0af2e185b96a8a13ce0691768cc12f3f3 /plumbing/transport/client/client.go
parente26a605c93d8085dfff8e440838fd3c43b63cff6 (diff)
downloadgo-git-dc322326e26d360cfc6ca6921f48265b1f7a4453.tar.gz
plumbing/transport: client avoid panics on nil protocol
Diffstat (limited to 'plumbing/transport/client/client.go')
-rw-r--r--plumbing/transport/client/client.go9
1 files changed, 9 insertions, 0 deletions
diff --git a/plumbing/transport/client/client.go b/plumbing/transport/client/client.go
index f749875..ea1e034 100644
--- a/plumbing/transport/client/client.go
+++ b/plumbing/transport/client/client.go
@@ -23,6 +23,11 @@ var Protocols = map[string]transport.Transport{
// InstallProtocol adds or modifies an existing protocol.
func InstallProtocol(scheme string, c transport.Transport) {
+ if c == nil {
+ delete(Protocols, scheme)
+ return
+ }
+
Protocols[scheme] = c
}
@@ -35,5 +40,9 @@ func NewClient(endpoint transport.Endpoint) (transport.Transport, error) {
return nil, fmt.Errorf("unsupported scheme %q", endpoint.Scheme)
}
+ if f == nil {
+ return nil, fmt.Errorf("malformed client for scheme %q, client is defined as nil", endpoint.Scheme)
+ }
+
return f, nil
}