Files
boost_beast/include/beast/websocket/impl/rfc6455.ipp
T

37 lines
862 B
C++
Raw Normal View History

2017-04-26 18:20:59 -07:00
//
// Copyright (c) 2013-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
//
#ifndef BEAST_WEBSOCKET_IMPL_RFC6455_IPP
#define BEAST_WEBSOCKET_IMPL_RFC6455_IPP
#include <beast/http/rfc7230.hpp>
namespace beast {
namespace websocket {
template<class Fields>
bool
is_upgrade(http::header<true, Fields> const& req)
{
if(req.version < 11)
return false;
2017-06-04 10:03:36 -07:00
if(req.method() != http::verb::get)
2017-04-26 18:20:59 -07:00
return false;
if(! http::is_upgrade(req))
return false;
if(! http::token_list{req.fields["Upgrade"]}.exists("websocket"))
return false;
if(! req.fields.exists("Sec-WebSocket-Version"))
return false;
return true;
}
} // websocket
} // beast
#endif