@@ -313,18 +313,18 @@ func (s *Server) handleConnect(w http.ResponseWriter, r *http.Request) {
313313 }
314314
315315 lease , err := s .admitLeaseByID (leaseID , token , false )
316- switch err {
317- case nil :
318- case errLeaseNotFound :
316+ switch {
317+ case err == nil :
318+ case errors . Is ( err , errLeaseNotFound ) :
319319 utils .WriteAPIError (w , http .StatusNotFound , types .APIErrorCodeLeaseNotFound , err .Error ())
320320 return
321- case errLeaseRejected :
321+ case errors . Is ( err , errLeaseRejected ) :
322322 utils .WriteAPIError (w , http .StatusForbidden , types .APIErrorCodeLeaseRejected , "lease is not approved for routing" )
323323 return
324- case errUnauthorized :
324+ case errors . Is ( err , errUnauthorized ) :
325325 utils .WriteAPIError (w , http .StatusForbidden , types .APIErrorCodeUnauthorized , err .Error ())
326326 return
327- case errTransportMismatch :
327+ case errors . Is ( err , errTransportMismatch ) :
328328 utils .WriteAPIError (w , http .StatusConflict , types .APIErrorCodeTransportMismatch , "lease does not support stream transport" )
329329 return
330330 default :
@@ -397,21 +397,21 @@ func (s *Server) handleQUICTunnelConn(conn *quic.Conn) {
397397 }
398398
399399 lease , err := s .admitLeaseByID (msg .LeaseID , msg .ReverseToken , true )
400- switch err {
401- case nil :
402- case errLeaseNotFound :
400+ switch {
401+ case err == nil :
402+ case errors . Is ( err , errLeaseNotFound ) :
403403 _ = json .NewEncoder (stream ).Encode (types.QUICControlResponse {OK : false , Error : types .APIErrorCodeLeaseNotFound })
404404 _ = conn .CloseWithError (1 , "lease not found" )
405405 return
406- case errLeaseRejected :
406+ case errors . Is ( err , errLeaseRejected ) :
407407 _ = json .NewEncoder (stream ).Encode (types.QUICControlResponse {OK : false , Error : types .APIErrorCodeLeaseRejected })
408408 _ = conn .CloseWithError (1 , "lease rejected" )
409409 return
410- case errUnauthorized :
410+ case errors . Is ( err , errUnauthorized ) :
411411 _ = json .NewEncoder (stream ).Encode (types.QUICControlResponse {OK : false , Error : types .APIErrorCodeUnauthorized })
412412 _ = conn .CloseWithError (1 , "unauthorized" )
413413 return
414- case errTransportMismatch :
414+ case errors . Is ( err , errTransportMismatch ) :
415415 _ = json .NewEncoder (stream ).Encode (types.QUICControlResponse {OK : false , Error : types .APIErrorCodeTransportMismatch })
416416 _ = conn .CloseWithError (1 , "transport mismatch" )
417417 return
0 commit comments