mirror of
https://github.com/gin-gonic/gin.git
synced 2025-10-16 21:32:11 +08:00
Merge 7f2796464f61123a3c36804fdf8431ca2a6d7de6 into 7927a45143da95dc4151519ceda2de78a7cd55c3
This commit is contained in:
commit
98d84d6c24
12
utils.go
12
utils.go
@ -11,6 +11,7 @@ import (
|
|||||||
"path"
|
"path"
|
||||||
"reflect"
|
"reflect"
|
||||||
"runtime"
|
"runtime"
|
||||||
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -140,10 +141,12 @@ func resolveAddress(addr []string) string {
|
|||||||
switch len(addr) {
|
switch len(addr) {
|
||||||
case 0:
|
case 0:
|
||||||
if port := os.Getenv("PORT"); port != "" {
|
if port := os.Getenv("PORT"); port != "" {
|
||||||
|
if isValidPORTEnvVar(port) {
|
||||||
debugPrint("Environment variable PORT=\"%s\"", port)
|
debugPrint("Environment variable PORT=\"%s\"", port)
|
||||||
return ":" + port
|
return ":" + port
|
||||||
}
|
}
|
||||||
debugPrint("Environment variable PORT is undefined. Using port :8080 by default")
|
}
|
||||||
|
debugPrint("Environment variable PORT is undefined or invalid. Using port :8080 by default")
|
||||||
return ":8080"
|
return ":8080"
|
||||||
case 1:
|
case 1:
|
||||||
return addr[0]
|
return addr[0]
|
||||||
@ -151,3 +154,10 @@ func resolveAddress(addr []string) string {
|
|||||||
panic("too many parameters")
|
panic("too many parameters")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Determine the PORT environment variable whether is valid。
|
||||||
|
// If the PORT can be parsed to uint(0-65535),return true。
|
||||||
|
func isValidPORTEnvVar(portString string) bool {
|
||||||
|
_, err := strconv.ParseUint(portString, 10, 16)
|
||||||
|
return err == nil
|
||||||
|
}
|
||||||
|
@ -143,3 +143,18 @@ func TestMarshalXMLforH(t *testing.T) {
|
|||||||
e := h.MarshalXML(enc, x)
|
e := h.MarshalXML(enc, x)
|
||||||
assert.Error(t, e)
|
assert.Error(t, e)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestIsValidPPORTEnvVar(t *testing.T) {
|
||||||
|
assert.Equal(t, false, isValidPORTEnvVar("abc"))
|
||||||
|
assert.Equal(t, false, isValidPORTEnvVar("-1"))
|
||||||
|
assert.Equal(t, false, isValidPORTEnvVar("-100"))
|
||||||
|
assert.Equal(t, true, isValidPORTEnvVar("1"))
|
||||||
|
assert.Equal(t, true, isValidPORTEnvVar("1000"))
|
||||||
|
assert.Equal(t, true, isValidPORTEnvVar("10000"))
|
||||||
|
assert.Equal(t, false, isValidPORTEnvVar(" 10000"))
|
||||||
|
assert.Equal(t, false, isValidPORTEnvVar("10000 "))
|
||||||
|
assert.Equal(t, false, isValidPORTEnvVar("10000."))
|
||||||
|
assert.Equal(t, true, isValidPORTEnvVar("65535"))
|
||||||
|
assert.Equal(t, false, isValidPORTEnvVar("65536"))
|
||||||
|
assert.Equal(t, false, isValidPORTEnvVar("655360"))
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user