// Copyright 2013 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.
#ifndef NET_WEBSOCKETS_WEBSOCKET_MUX_H_
#define NET_WEBSOCKETS_WEBSOCKET_MUX_H_
namespace net {
// Reason codes used by the mux extension.
enum WebSocketMuxError {
// Codes starting with 2000 apply to the physical connection. They are used
// for dropping the control channel.
kWebSocketMuxErrorPhysicalConnectionFailed = 2000,
kWebSocketMuxErrorInvalidEncapsulatingMessage = 2001,
kWebSocketMuxErrorChannelIdTruncated = 2002,
kWebSocketMuxErrorEncapsulatedFrameIsTruncated = 2003,
kWebSocketMuxErrorUnknownMuxOpcode = 2004,
kWebSocketMuxErrorInvalidMuxControlBlock = 2005,
kWebSocketMuxErrorChannelAlreadyExists = 2006,
kWebSocketMuxErrorNewChannelSlotViolation = 2007,
kWebSocketMuxErrorNewChannelSlotOverflow = 2008,
kWebSocketMuxErrorBadRequest = 2009,
kWebSocketMuxErrorUnknownRequestEncoding = 2010,
kWebSocketMuxErrorBadResponse = 2011,
kWebSocketMuxErrorUnknownResponseEncoding = 2012,
// Codes starting with 3000 apply to the logical connection.
kWebSocketMuxErrorLogicalChannelFailed = 3000,
kWebSocketMuxErrorSendQuotaViolation = 3005,
kWebSocketMuxErrorSendQuotaOverflow = 3006,
kWebSocketMuxErrorIdleTimeout = 3007,
kWebSocketMuxErrorDropChannelAck = 3008,
kWebSocketMuxErrorBadFragmentation = 3009,
};
} // namespace net
#endif // NET_WEBSOCKETS_WEBSOCKET_MUX_H_