Home | History | Annotate | Download | only in websockets
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "net/websockets/websocket_errors.h"
      6 
      7 #include "base/logging.h"
      8 
      9 namespace net {
     10 
     11 Error WebSocketErrorToNetError(WebSocketError error) {
     12   switch (error) {
     13     case kWebSocketNormalClosure:
     14       return OK;
     15 
     16     case kWebSocketErrorGoingAway:  // TODO(ricea): More specific code?
     17     case kWebSocketErrorProtocolError:
     18     case kWebSocketErrorUnsupportedData:
     19     case kWebSocketErrorInvalidFramePayloadData:
     20     case kWebSocketErrorPolicyViolation:
     21     case kWebSocketErrorMandatoryExtension:
     22     case kWebSocketErrorInternalServerError:
     23       return ERR_WS_PROTOCOL_ERROR;
     24 
     25     case kWebSocketErrorNoStatusReceived:
     26     case kWebSocketErrorAbnormalClosure:
     27       return ERR_CONNECTION_CLOSED;
     28 
     29     case kWebSocketErrorTlsHandshake:
     30       // This error will probably be reported with more detail at a lower layer;
     31       // this is the best we can do at this layer.
     32       return ERR_SSL_PROTOCOL_ERROR;
     33 
     34     case kWebSocketErrorMessageTooBig:
     35       return ERR_MSG_TOO_BIG;
     36 
     37     default:
     38       return ERR_UNEXPECTED;
     39   }
     40 }
     41 
     42 }  // namespace net
     43