session clean up. better error reporting for server handshake errors

This commit is contained in:
Peter Thorson
2011-09-10 09:06:45 -05:00
parent 4764d69b34
commit bbeba1b214
4 changed files with 4 additions and 15 deletions

View File

@@ -40,9 +40,8 @@ void chat_handler::validate(websocketpp::session_ptr client) {
}
// Require specific origin example
if (client->get_header("Sec-WebSocket-Origin") != "http://zaphoyd.com") {
err << "Request from unrecognized origin: "
<< client->get_header("Sec-WebSocket-Origin");
if (client->get_origin() != "http://zaphoyd.com") {
err << "Request from unrecognized origin: " << client->get_origin();
throw(handshake_error(err.str(),403));
}
}

Binary file not shown.

View File

@@ -44,7 +44,6 @@ session::session (boost::asio::io_service& io_service,
connection_handler_ptr defc)
: m_socket(io_service),
m_status(CONNECTING),
m_http_error_code(0),
m_local_interface(defc) {}
tcp::socket& session::socket() {
@@ -117,11 +116,6 @@ std::string session::get_origin() const {
}
}
void session::set_http_error(int code, std::string msg) {
m_http_error_code = code;
m_http_error_string = (msg != "" ? msg : lookup_http_error_string(code));
}
std::string session::lookup_http_error_string(int code) {
switch (code) {
case 400:
@@ -352,7 +346,7 @@ void session::write_handshake() {
if (!sha.Result(message_digest)) {
std::cerr << "Error computing sha1 hash, killing connection." << std::endl;
write_http_error(500,"");
return;
}
@@ -371,9 +365,7 @@ void session::write_handshake() {
server_handshake += "Sec-WebSocket-Accept: "+server_key+"\r\n\r\n";
// TODO: handler requested headers
//std::cout << server_handshake << std::endl;
// start async write to handle_write_handshake
boost::asio::async_write(
m_socket,

View File

@@ -224,8 +224,6 @@ private:
boost::asio::streambuf m_buf;
// unorganized
int m_http_error_code;
std::string m_http_error_string;
std::string m_handshake;
frame m_read_frame;
frame m_write_frame;