void WebRequest::process (void) { int index; static int count = 0; char buffer[100]; WebPage *page; log (LOG_WEBSOCKET, "Process: %s, %s, %s", method, path, protocol); for (index = 0; index < number_of_arguments; index ++) { log (LOG_WEBSOCKET, " Arg : %-15s = %s", argument_key[index], argument_value[index]); } for (index = 0; index < number_of_headers; index ++) { log (LOG_WEBSOCKET, " Head: %-15s = %s", header_key[index], header_value[index]); } page = WebPage::find (path); if (page) { log (LOG_WEBSOCKET, " Page = %p", page); if (page->process (this)) { end_response (); } } else { page = WebPage::open (path); if ((page) && (page->process (this))) { end_response (); } else { add_response_part ("request_path", path); add_response_part ("page_left", ""); add_response_part ("page_right", "Page Not Found : ${request_path}"); add_template_response ("${page_layout}", strlen ("${page_layout}")); set_response_code (404); end_response (); } } socket->close_when_written (); }
std::unique_ptr<Reply> HandleMessage(Message* message) override { auto payload = ToPropertyMapPayload(message->payload()); if (!payload) { WDS_ERROR("Failed to obtain payload in M5 handler."); return nullptr; } auto property = static_cast<rtsp::TriggerMethod*>(payload->GetProperty(rtsp::TriggerMethodPropertyType).get()); auto reply = std::unique_ptr<Reply>(new Reply(rtsp::STATUS_OK)); reply->header().set_cseq(message->cseq()); if (property->method() != rtsp::TriggerMethod::SETUP) { reply->set_response_code(rtsp::STATUS_SeeOther); } return reply; }