• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
WebSocketErrorToNetError(WebSocketError error)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