uint8 Process_Event() { uint8 current_event; current_event = Pop_T(); switch(current_event) { case EVENT_BEACON_SEND: SendBeacon(); break; case EVENT_JOINREQUEST_HANDLER: JoinRequestHandler(); break; case EVENT_JOINREQUESTACKOK_HANDLER: JoinRequestACKOKHandler(); break; case EVENT_DATA_HANDLER: DataHandler(); break; case EVENT_UPLOAD_DATA: Upload_Data(); break; case EVENT_REJOIN_SEND: SendReJoin(); break; } return current_event; }
void TcpServer::OnClientData() { QTcpSocket* connection = qobject_cast<QTcpSocket*>(sender()); quint64 bufferSize = 2048; char buffer[bufferSize]; quint64 dataRead = 0; dataRead = connection->read(buffer, bufferSize); buffer[dataRead] = 0; //qDebug() << "[WEB] Incoming data[" << dataRead << "]: " << buffer; QString value; //Check if it's a Flash policy request, only the first time //if (this->justConnected == true) { value = buffer; if (value.contains("<policy-file-request/>")) { connection->write(XML_CROSS_DOMAIN); qDebug() << "[TcpServer::OnClientData] Sent xml cross domain file"; //this->justConnected = false; return; } else if ( value.contains("HTTP") ) { //then its HTTP request QString response; //Check the data and create response DataHandler(value, response); HttpResponse httpHeader(response); connection->write( httpHeader.GetHeader() ); connection->write( response.toUtf8().constData() ); connection->close(); } //} //Other requests that are not http requests or posts // This may be deleted //else { else if (value == "CORE") { XmlParser xml(buffer, dataRead); int action = CEMI_ACTION_WRITE; int groupAddr = 0; xml.GetValue("cmd", value); if (value == "write") action = CEMI_ACTION_WRITE; else if (value == "read") action = CEMI_ACTION_READ; xml.GetValue("groupAddr", value); groupAddr = Common::GroupAddrToInt(value); //qDebug() << "groupAddr: " << value; xml.GetValue("value", value); emit TcpServerData((int)action, groupAddr, value); } //} //this->justConnected = false; }
int main(int argc,char** argv) { MessageManager mm; SDMData dat; SDMRegInfo info; SDMReqReg req_reg; char buf[BUFSIZE]; long length; //initialize consumer SDMInit(argc,argv); my_port = getPort(); mm.Async_Init(my_port); signal(SIGINT, SigHandler); printf("%s listening on port %ld\n",argv[0],my_port); while(1) { if (mm.IsReady()) { switch(mm.GetMessage(buf,length)) { case SDM_Data: dat.Unmarshal(buf,length); DataHandler(dat,length); break; case SDM_RegInfo: if(info.Unmarshal(buf)!=SDM_NO_FURTHER_DATA_PROVIDER) { RegInfoHandler(info); } break; default: printf("Unexpected message\n"); } } else { //check for data and service providers if(consume_msgs[0].source.getSensorID() == 0) { //request info on integer data providers //Set variable name strcpy(req_reg.item_name,"Total_Messages_Recd"); //Set the quallist can be empty strcpy(req_reg.quallist,"< format=\"UINT32\"/>"); req_reg.reply = SDM_REQREG_CURRENT_FUTURE_AND_CANCELLATIONS; req_reg.destination.setPort(my_port); req_reg.id = DATA_PROVIDER; req_reg.Send(); printf("Searching for new data provider\n"); sleep(2); } usleep(1000); } } }
void BTClient::SomeSocketDataReceived(char *data, unsigned int data_len, unsigned int new_len, unsigned int max_len) { if( strstr( data, "\r\n\r\n" ) == NULL ) { TRACE( "HTTP termination not found\n" ); if( data_len < 0x800 ) ReceiveSomeMoreSocketData( data, data_len, new_len, max_len ); else { TRACE( "Too much data - terminating connection\n" ); //char aFilename[256]; //CString ip = m_clientIP.ToString().c_str(); //sprintf( aFilename, "c:\\BTTracker\\%s - %s - DataHandler error.log", ip.Left( 15 ), // CTime::GetCurrentTime().Format( "%m.%d %H_%M_%S" ) ); //CFile fErrorFile; //if( fErrorFile.Open( aFilename, CFile::modeCreate | CFile::modeWrite | CFile::typeBinary | CFile::shareDenyWrite ) ) //{ // fErrorFile.Write( data, data_len ); // fErrorFile.Close(); //} m_bGarbage = true; Close(); return; } } else { TRACE( "HTTP termination found\n" ); m_receivedBufferReader.SetBuffer( data, data_len ); if( DataHandler() < 0 ) { TRACE( "DataHandler Error - terminating connection\n" ); //char aFilename[256]; //CString ip = m_clientIP.ToString().c_str(); //sprintf( aFilename, "c:\\BTTracker\\%s - %s - DataHandler error.log", ip.Left( 15 ), // CTime::GetCurrentTime().Format( "%m.%d %H_%M_%S" ) ); //CFile fErrorFile; //if( fErrorFile.Open( aFilename, CFile::modeCreate | CFile::modeWrite | CFile::typeBinary | CFile::shareDenyWrite ) ) //{ // fErrorFile.Write( data, data_len ); // fErrorFile.Close(); //} m_bGarbage = true; Close(); return; } } }
bool CHtmlHandler::Handler(CString spage,CString op,CString scmd) { bool brefresh=false; if(spage.Compare("reg") == 0) brefresh= RegHandler(op,scmd); if(spage.Compare("data") == 0) brefresh= DataHandler(op,scmd); if(spage.Compare("jh") == 0) brefresh= JhHandler(op,scmd); if(spage.Compare("report") == 0) brefresh= ReportHandler(op,scmd); if(spage.Compare("test") == 0) brefresh= TestHandler(op,scmd); if(spage.Compare("conf1") == 0) brefresh= Configure1Handler(op,scmd); if(spage.Compare("conf2") == 0) brefresh= Configure2Handler(op,scmd); if(spage.Compare("tbr") == 0) brefresh= TbrHandler(op,scmd); if(brefresh){ g_msTemp.SetAt("testprglst",g_RGroup.sTestLst); g_msTemp.SetAt("testprgsz",g_TesterConf.m_RetestType); SJReplaceTxtByMark(m_gPath+PathQuery(CLSJS,IDTBR),m_gPath+TBR_FORM,MDB_PATTERN,CallBack_Replace); } return brefresh; }