diff --git a/src/messages/control.hpp b/src/messages/control.hpp index a3cc9d5296..3b1e0e2ee7 100644 --- a/src/messages/control.hpp +++ b/src/messages/control.hpp @@ -63,26 +63,23 @@ public: for (i = 0; i < size; ++i) { if (input.good()) { - c = input.get(); - } else if (input.eof()) { - break; - } else { - // istream read error? throw? - throw processor::exception("istream read error",processor::error::FATAL_ERROR); - } - if (input.good()) { - // process c + c = input.get(); + + if (input.fail()) { + throw processor::exception("istream read error", + processor::error::FATAL_ERROR); + } + if (m_masking_index >= 0) { c = c ^ m_masking_key[(m_masking_index++)%4]; } - // add c to payload m_payload.push_back(c); + } else if (input.eof()) { break; } else { - // istream read error? throw? - throw processor::exception("istream read error",processor::error::FATAL_ERROR); + throw processor::exception("istream read error",processor::error::FATAL_ERROR); } } diff --git a/src/messages/data.cpp b/src/messages/data.cpp index 85904fd66d..57f4181d88 100644 --- a/src/messages/data.cpp +++ b/src/messages/data.cpp @@ -65,19 +65,15 @@ uint64_t data::process_payload(std::istream& input,uint64_t size) { for (i = 0; i < size; ++i) { if (input.good()) { c = input.get(); - } else if (input.eof()) { - break; - } else { - // istream read error? throw? - throw processor::exception("istream read error", - processor::error::FATAL_ERROR); - } - if (input.good()) { + + if (input.fail()) { + throw processor::exception("istream read error", + processor::error::FATAL_ERROR); + } process_character(c); } else if (input.eof()) { break; } else { - // istream read error? throw? throw processor::exception("istream read error", processor::error::FATAL_ERROR); } @@ -117,6 +113,7 @@ void data::complete() { throw processor::exception("Invalid UTF8 data",processor::error::PAYLOAD_VIOLATION); } } + } void data::validate_payload() { diff --git a/src/processors/hybi_header.cpp b/src/processors/hybi_header.cpp index a8a4142a31..c490815332 100644 --- a/src/processors/hybi_header.cpp +++ b/src/processors/hybi_header.cpp @@ -76,6 +76,7 @@ void hybi_header::consume(std::istream& input) { default: break; } + //std::cout << "header so far: " << to_hex(std::string(m_header,MAX_HEADER_LENGTH)) << std::endl; } uint64_t hybi_header::get_bytes_needed() const { return m_bytes_needed;