summaryrefslogtreecommitdiffstats
path: root/model/config.go
diff options
context:
space:
mode:
Diffstat (limited to 'model/config.go')
-rw-r--r--model/config.go13
1 files changed, 12 insertions, 1 deletions
diff --git a/model/config.go b/model/config.go
index 1d0f40901..aa7900279 100644
--- a/model/config.go
+++ b/model/config.go
@@ -6,9 +6,12 @@ package model
import (
"encoding/json"
"io"
+ "math"
+ "net"
"net/http"
"net/url"
"regexp"
+ "strconv"
"strings"
"time"
)
@@ -2352,7 +2355,15 @@ func (ss *ServiceSettings) isValid() *AppError {
}
}
- if len(*ss.ListenAddress) == 0 {
+ host, port, err := net.SplitHostPort(*ss.ListenAddress)
+ var isValidHost bool
+ if host == "" {
+ isValidHost = true
+ } else {
+ isValidHost = (net.ParseIP(host) != nil) || IsDomainName(host)
+ }
+ portInt, err := strconv.Atoi(port)
+ if err != nil || !isValidHost || portInt < 0 || portInt > math.MaxUint16 {
return NewAppError("Config.IsValid", "model.config.is_valid.listen_address.app_error", nil, "", http.StatusBadRequest)
}