@@ -121,33 +121,33 @@ func runDaemonCommand(cmd *cobra.Command, args []string) {
121121 // Invalid port, such as "Foo"
122122 var dnsError * net.DNSError
123123 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 )
125125 }
126126 // Invalid port number, such as -1
127127 var addrError * net.AddrError
128128 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 )
130130 }
131131 // Port is already in use
132132 var syscallErr * os.SyscallError
133133 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 )
135135 }
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 )
137137 }
138138
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.
142142 if port == "0" {
143143 address := lis .Addr ()
144144 split := strings .Split (address .String (), ":" )
145145
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 )
148148 }
149149
150- port = split [len ( split ) - 1 ]
150+ port = split [1 ]
151151 }
152152
153153 feedback .PrintResult (daemonResult {
@@ -156,7 +156,7 @@ func runDaemonCommand(cmd *cobra.Command, args []string) {
156156 })
157157
158158 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 )
160160 }
161161}
162162
0 commit comments