// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "net/websockets/websocket_errors.h"
#include "base/logging.h"
namespace net {
Error WebSocketErrorToNetError(WebSocketError error) {
switch (error) {
case kWebSocketNormalClosure:
return OK;
case kWebSocketErrorGoingAway: // TODO(ricea): More specific code?
case kWebSocketErrorProtocolError:
case kWebSocketErrorUnsupportedData:
case kWebSocketErrorInvalidFramePayloadData:
case kWebSocketErrorPolicyViolation:
case kWebSocketErrorMandatoryExtension:
case kWebSocketErrorInternalServerError:
return ERR_WS_PROTOCOL_ERROR;
case kWebSocketErrorNoStatusReceived:
case kWebSocketErrorAbnormalClosure:
return ERR_CONNECTION_CLOSED;
case kWebSocketErrorTlsHandshake:
// This error will probably be reported with more detail at a lower layer;
// this is the best we can do at this layer.
return ERR_SSL_PROTOCOL_ERROR;
case kWebSocketErrorMessageTooBig:
return ERR_MSG_TOO_BIG;
default:
return ERR_UNEXPECTED;
}
}
} // namespace net