mirror of https://github.com/docker/docs.git
Support IPv6 address format.
Signed-off-by: Dong Chen <dongluo.chen@docker.com>
This commit is contained in:
parent
f6131d0331
commit
c73f17fb6e
|
@ -2,6 +2,7 @@ package cli
|
|||
|
||||
import (
|
||||
"math/rand"
|
||||
"net"
|
||||
"regexp"
|
||||
"time"
|
||||
|
||||
|
@ -11,7 +12,12 @@ import (
|
|||
)
|
||||
|
||||
func checkAddrFormat(addr string) bool {
|
||||
m, _ := regexp.MatchString("^[0-9a-zA-Z._-]+:[0-9]{1,5}$", addr)
|
||||
// validate addr is in host:port form. Use net function to handle both IPv4/IPv6 cases.
|
||||
_, port, err := net.SplitHostPort(addr)
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
m, _ := regexp.MatchString("^[0-9]{1,5}$", port)
|
||||
return m
|
||||
}
|
||||
|
||||
|
|
|
@ -24,4 +24,7 @@ func TestCheckAddrFormat(t *testing.T) {
|
|||
assert.True(t, checkAddrFormat("1.1.1.1:1111"))
|
||||
assert.True(t, checkAddrFormat("hostname:1111"))
|
||||
assert.True(t, checkAddrFormat("host-name_42:1111"))
|
||||
assert.True(t, checkAddrFormat("[2001:db8:0:f101::3]:2375"))
|
||||
assert.False(t, checkAddrFormat("2001:db8:0:f101::3:2375"))
|
||||
assert.False(t, checkAddrFormat("[2001:db8:0:f101::3]:3:2375"))
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue