@@ -121,33 +121,33 @@ func runDaemonCommand(cmd *cobra.Command, args []string) {
121
121
// Invalid port, such as "Foo"
122
122
var dnsError * net.DNSError
123
123
if errors .As (err , & dnsError ) {
124
- feedback .Fatal (tr ("Failed to listen on TCP port: %[1]s. %[2]s is unknown name." , port , dnsError .Name ), feedback .ErrCoreConfig )
124
+ feedback .Fatal (tr ("Failed to listen on TCP port: %[1]s. %[2]s is unknown name." , port , dnsError .Name ), feedback .ErrBadTCPPortArgument )
125
125
}
126
126
// Invalid port number, such as -1
127
127
var addrError * net.AddrError
128
128
if errors .As (err , & addrError ) {
129
- feedback .Fatal (tr ("Failed to listen on TCP port: %[1]s. %[2]s is an invalid port." , port , addrError .Addr ), feedback .ErrCoreConfig )
129
+ feedback .Fatal (tr ("Failed to listen on TCP port: %[1]s. %[2]s is an invalid port." , port , addrError .Addr ), feedback .ErrBadTCPPortArgument )
130
130
}
131
131
// Port is already in use
132
132
var syscallErr * os.SyscallError
133
133
if errors .As (err , & syscallErr ) && errors .Is (syscallErr .Err , syscall .EADDRINUSE ) {
134
- feedback .Fatal (tr ("Failed to listen on TCP port: %s. Address already in use." , port ), feedback .ErrNetwork )
134
+ feedback .Fatal (tr ("Failed to listen on TCP port: %s. Address already in use." , port ), feedback .ErrFailedToListenToTCPPort )
135
135
}
136
- feedback .Fatal (tr ("Failed to listen on TCP port: %[1]s. Unexpected error: %[2]v" , port , err ), feedback .ErrGeneric )
136
+ feedback .Fatal (tr ("Failed to listen on TCP port: %[1]s. Unexpected error: %[2]v" , port , err ), feedback .ErrFailedToListenToTCPPort )
137
137
}
138
138
139
- // We need to parse the port used only if the user let
140
- // us choose it randomly, in all other cases we already
141
- // know which is used.
139
+ // We need to retrieve the port used only if the user did not specify it
140
+ // and let the OS choose it randomly, in all other cases we already know
141
+ // which port is used.
142
142
if port == "0" {
143
143
address := lis .Addr ()
144
144
split := strings .Split (address .String (), ":" )
145
145
146
- if len (split ) == 0 {
147
- feedback .Fatal (tr ("Invalid TCP address: port is missing" ), feedback .ErrBadArgument )
146
+ if len (split ) <= 1 {
147
+ feedback .Fatal (tr ("Invalid TCP address: port is missing" ), feedback .ErrBadTCPPortArgument )
148
148
}
149
149
150
- port = split [len ( split ) - 1 ]
150
+ port = split [1 ]
151
151
}
152
152
153
153
feedback .PrintResult (daemonResult {
@@ -156,7 +156,7 @@ func runDaemonCommand(cmd *cobra.Command, args []string) {
156
156
})
157
157
158
158
if err := s .Serve (lis ); err != nil {
159
- logrus . Fatalf ( "Failed to serve: %v" , err )
159
+ feedback . Fatal ( fmt . Sprintf ( "Failed to serve: %v" , err ), feedback . ErrFailedToListenToTCPPort )
160
160
}
161
161
}
162
162
0 commit comments