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

37 lines
880 B
Plaintext
Raw Normal View History

//
// 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;
if(req.method() != http::verb::get)
return false;
if(! http::token_list{req["Connection"]}.exists("upgrade"))
return false;
2017-06-05 19:28:17 -07:00
if(! http::token_list{req["Upgrade"]}.exists("websocket"))
return false;
2017-06-05 19:28:17 -07:00
if(! req.exists("Sec-WebSocket-Version"))
return false;
return true;
}
} // websocket
} // beast
#endif