int cServerDC::OnNewConn(cAsyncConn *nc) { cConnDC *conn = (cConnDC *)nc; if (!conn) return -1; #ifndef WITHOUT_PLUGINS if (!mCallBacks.mOnNewConn.CallAll(conn)) return -1; #endif string omsg; omsg = "$Lock EXTENDEDPROTOCOL_" LOCK_VERSION " Pk=version" VERSION; conn->Send(omsg, true); SendHeaders(conn, 2); if (mSysLoad >= eSL_RECOVERY) { stringstream os; os << _("The hub is currently unable to service your request. Please try again in a few minutes."); DCPublicHS(os.str(), conn); conn->CloseNice(500, eCR_HUB_LOAD); return -1; } conn->SetTimeOut(eTO_KEY, mC.timeout_length[eTO_KEY], mTime); return 0; }
void XaLibControllerBackEnd::SendResponse(){ LOG.Write("INF", __FILE__, __FUNCTION__,__LINE__,"RESPONSE="+RESPONSE.Content); SendHeaders(RESPONSE.ResponseType); cout<<"<WsData><token>"+SESSION.Token+"</token>"+RESPONSE.Content+"</WsData>"<<endl; };
void SendHTTPError(int response) { HTTPHeaders empty; std::string data = "<html><head></head><body>Server error "+ConvToStr(response)+": "+Response(response)+"<br>"+ "<small>Powered by <a href='http://www.inspircd.org'>InspIRCd</a></small></body></html>"; SendHeaders(data.length(), response, empty); WriteData(data); }
ErrnoError HttpClient::SendError(common::http::http_protocol protocol, common::http::http_status status, const char* extra_header, const char* text, bool is_keep_alive, const HttpServerInfo& info) { CHECK(protocol <= common::http::HP_1_1); const std::string title = ConvertToString(status); char err_data[1024] = {0}; off_t err_len = SNPrintf(err_data, sizeof(err_data), HTML_PATTERN_ISISSSS7, status, title, status, title, text, info.server_url, info.server_name); ErrnoError err = SendHeaders(protocol, status, extra_header, "text/html", &err_len, nullptr, is_keep_alive, info); if (err) { DEBUG_MSG_ERROR(err, logging::LOG_LEVEL_ERR); } size_t nwrite = 0; err = Write(err_data, err_len, &nwrite); if (err) { DEBUG_MSG_ERROR(err, logging::LOG_LEVEL_ERR); } return err; }
void XaLibControllerFrontEnd::SendResponse() { LOG.Write("INF", __FILE__, __FUNCTION__,__LINE__,"Sending Response Page Content -> " +RESPONSE.Content); SendHeaders(RESPONSE.ResponseType); cout<<RESPONSE.Content<<endl; };
void cServerDC::DoUserLogin(cConnDC *conn) { // verify we didn't get here by chance if(eLS_LOGIN_DONE != conn->GetLSFlag(eLS_LOGIN_DONE)) { if(conn->ErrLog(2)) conn->LogStream() << "User Login when not all done"<<endl; conn->CloseNow(); return; } // check if same nick already exists if (!VerifyUniqueNick(conn)) return; // he is not anymore in progress if (mInProgresUsers.ContainsNick(conn->mpUser->mNick)) { mInProgresUsers.FlushForUser(conn->mpUser); mInProgresUsers.Remove(conn->mpUser); } // anti login flood temp bans if (conn->GetTheoricalClass() <= mC.max_class_int_login) { mBanList->AddNickTempBan(conn->mpUser->mNick, mTime.Sec() + mC.int_login, "login later"); mBanList->AddIPTempBan(conn->GetSockAddress(), mTime.Sec() + mC.int_login, "login later"); } // users special rights and restrictions cPenaltyList::sPenalty pen; if (mPenList->LoadTo(pen, conn->mpUser->mNick) && (conn->mpUser->mClass != eUC_PINGER)) conn->mpUser->ApplyRights(pen); // insert user to userlist if(!AddToList(conn->mpUser)) { conn->CloseNow(); return; } // display user to others ShowUserToAll(conn->mpUser); if(mC.send_user_ip) { if(conn->mpUser->mClass >= eUC_OPERATOR) { conn->Send(mUserList.GetIPList(),true); } else { string UserIP; cCompositeUserCollection::ufDoIpList DoUserIP(UserIP); DoUserIP.Clear(); DoUserIP(conn->mpUser); mOpchatList.SendToAll(UserIP, true, true); conn->Send(UserIP); } } if (!mC.hub_topic.empty()) { // send hub name with topic static string omsg; cDCProto::Create_HubName(omsg, mC.hub_name, mC.hub_topic); #ifndef WITHOUT_PLUGINS if (mCallBacks.mOnHubName.CallAll(conn->mpUser->mNick, omsg)) #endif { conn->Send(omsg); } } SendHeaders(conn, 1); AfterUserLogin(conn); conn->ClearTimeOut(eTO_LOGIN); conn->mpUser->mT.login.Get(); }
void RequestOKResponse::Send(Print& sink) { sink.print(F("HTTP/1.1 200 OK\r\n")); SendHeaders(sink); SendBodyStart(sink); }
void RouteNotFoundResponse::Send(Print& sink) { sink.print(F("HTTP/1.1 404 NOT FOUND\r\n")); SendHeaders(sink); SendBodyStart(sink); sink.print(F("<html><head><title>Page not found!</title></head><body>Page not found!</body></html>\n")); }
void BadRequestResponse::Send(Print& sink) { sink.print(F("HTTP/1.1 400 BAD REQUEST\r\n")); SendHeaders(sink); SendBodyStart(sink); }