Browse code

Merge pull request #3377 from cpuguy83/3333-fix_-H_default

Make blank -H option default to the same as no -H was sent

Victor Vieux authored on 2014/01/07 04:30:27
Showing 3 changed files
... ...
@@ -117,6 +117,11 @@ For example:
117 117
 * ``tcp://host:4243`` -> tcp connection on host:4243
118 118
 * ``unix://path/to/socket`` -> unix socket located at ``path/to/socket``
119 119
 
120
+``-H``, when empty, will default to the same value as when no ``-H`` was passed in.
121
+
122
+``-H`` also accepts short form for TCP bindings:
123
+``host[:port]`` or ``:port``
124
+
120 125
 .. code-block:: bash
121 126
 
122 127
    # Run docker in daemon mode
... ...
@@ -781,7 +781,7 @@ func ParseHost(defaultHost string, defaultPort int, defaultUnix, addr string) (s
781 781
 		host  string
782 782
 		port  int
783 783
 	)
784
-
784
+  addr = strings.TrimSpace(addr)
785 785
 	switch {
786 786
 	case strings.HasPrefix(addr, "unix://"):
787 787
 		proto = "unix"
... ...
@@ -792,6 +792,9 @@ func ParseHost(defaultHost string, defaultPort int, defaultUnix, addr string) (s
792 792
 	case strings.HasPrefix(addr, "tcp://"):
793 793
 		proto = "tcp"
794 794
 		addr = strings.TrimPrefix(addr, "tcp://")
795
+	case addr == "":
796
+		proto = "unix"
797
+		addr = defaultUnix
795 798
 	default:
796 799
 		if strings.Contains(addr, "://") {
797 800
 			return "", fmt.Errorf("Invalid bind address protocol: %s", addr)
... ...
@@ -316,6 +316,9 @@ func TestParseHost(t *testing.T) {
316 316
 	if addr, err := ParseHost(defaultHttpHost, defaultHttpPort, defaultUnix, "tcp://:7777"); err != nil || addr != "tcp://127.0.0.1:7777" {
317 317
 		t.Errorf("tcp://:7777 -> expected tcp://127.0.0.1:7777, got %s", addr)
318 318
 	}
319
+  if addr, err := ParseHost(defaultHttpHost, defaultHttpPort, defaultUnix, ""); err != nil || addr != "unix:///var/run/docker.sock" {
320
+    t.Errorf("empty argument -> expected unix:///var/run/docker.sock, got %s", addr)
321
+  }
319 322
 	if addr, err := ParseHost(defaultHttpHost, defaultHttpPort, defaultUnix, "unix:///var/run/docker.sock"); err != nil || addr != "unix:///var/run/docker.sock" {
320 323
 		t.Errorf("unix:///var/run/docker.sock -> expected unix:///var/run/docker.sock, got %s", addr)
321 324
 	}