@@ -19,7 +19,7 @@ type flags struct {
19
19
db.Config
20
20
debug bool
21
21
version bool
22
- domain string
22
+ addr string
23
23
serverPort uint
24
24
network string
25
25
adminTwinID uint64
@@ -53,7 +53,7 @@ func Run() error {
53
53
flag .BoolVar (& f .version , "v" , false , "shows the package version" )
54
54
flag .BoolVar (& f .debug , "debug" , false , "allow debug logs" )
55
55
flag .UintVar (& f .serverPort , "server-port" , 8080 , "server port" )
56
- flag .StringVar (& f .domain , "domain " , "" , "domain on which the server will be served" )
56
+ flag .StringVar (& f .addr , "address " , "" , "address or domain on which the server will be served" )
57
57
flag .StringVar (& f .network , "network" , "dev" , "the registrar network" )
58
58
flag .Uint64Var (& f .adminTwinID , "admin-twin-id" , 1 , "admin twin ID" )
59
59
@@ -91,7 +91,7 @@ func Run() error {
91
91
92
92
log .Info ().Msgf ("server is running on port :%d" , f .serverPort )
93
93
94
- err = s .Run (fmt .Sprintf ("%s:%d" , f .domain , f .serverPort ))
94
+ err = s .Run (fmt .Sprintf ("%s:%d" , f .addr , f .serverPort ))
95
95
if err != nil {
96
96
return errors .Wrap (err , "failed to run gin server" )
97
97
}
@@ -104,19 +104,27 @@ func (f flags) validate() error {
104
104
return errors .Errorf ("invalid port %d, server port should be in the valid port range 1–65535" , f .serverPort )
105
105
}
106
106
107
- if strings .TrimSpace (f .domain ) == "" {
108
- return errors .New ("invalid domain name, domain name should not be empty" )
109
- }
110
-
111
107
if f .Config .SqlLogLevel < 1 || f .Config .SqlLogLevel > 4 {
112
108
return errors .Errorf ("invalid sql log level %d, sql log level should be in the range 1-4" , f .Config .SqlLogLevel )
113
109
}
114
110
if f .adminTwinID == 0 {
115
111
return errors .Errorf ("invalid admin twin id %d, admin twin id should not be 0" , f .adminTwinID )
116
112
}
117
113
118
- if _ , err := net .LookupHost (f .domain ); err != nil {
119
- return errors .Wrapf (err , "invalid domain %s" , f .domain )
114
+ if strings .TrimSpace (f .addr ) == "" {
115
+ return errors .New ("invalid domain/address, should not be empty" )
116
+ }
117
+
118
+ // Skip validation for common binding addresses
119
+ if f .addr == "0.0.0.0" || f .addr == "localhost" || f .addr == "127.0.0.1" {
120
+ return f .Config .Validate ()
121
+ }
122
+
123
+ if net .ParseIP (f .addr ) == nil {
124
+ // if not valid IP address, check if valid domain
125
+ if _ , err := net .LookupHost (f .addr ); err != nil {
126
+ return errors .Wrapf (err , "invalid domain %s" , f .addr )
127
+ }
120
128
}
121
129
122
130
return f .Config .Validate ()
0 commit comments