void ArpListener::listenerThread() { if( arpFilter_.size() == 0 || device_.size() == 0 ) { MutexLocker lock( runningMutex_ ); running_ = false; return; } sniffer_.setFilter( arpFilter_ ); sniffer_.setInputDevice(device_); sniffer_.start(); while( true ) { Packet p = sniffer_.popPacket(); if( p.appSize() > 0 && p.appIs< Arp >() ) { Arp a = p.getApp<Arp>(); if( a.opcode() == arpopcode::response ) { MACAddress mac = MACAddress(a.senderMacAddress().vector()); IPv4Address ip = IPv4Address(a.senderIPAddress().vector()); cache_->addEntry( ip.toString(), mac ); sendAlert( ip.toString() ); } } MutexLocker lock2( stopMutex_ ); if( stop_ ) break; } }
void loop() { int email = digitalRead(emailPin); if (email == HIGH) { sendAlert("email"); } delay(200); }
int SSL_shutdown(SSL* ssl) { if (!ssl->GetQuietShutdown()) { Alert alert(warning, close_notify); sendAlert(*ssl, alert); } ssl->useLog().ShowTCP(ssl->getSocket().get_fd(), true); GetErrors().Remove(); return SSL_SUCCESS; }
int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QCoreApplication::setOrganizationName("Rabitsa"); QCoreApplication::setApplicationName("test"); QSettings set; set.setValue("/db/db","filter1s"); RxModbus r; r.loadList(":/text/list.txt"); r.setHostName("10.0.3.1"); r.setPort(502); QVector<IoDev*> src; // джерела даних. src << &r; Logging l(src); r.start(); IoNetServer s(src); Alert al(&r); al.loadList(":/text/alert.txt"); QObject::connect(&r,SIGNAL(updateData()),&al,SLOT(checkAlert())); QObject::connect(&al,SIGNAL(newAlert(QString)),&s,SLOT(sendAlert(QString))); QObject::connect(&r,SIGNAL(Alert(QString)),&s,SLOT(sendAlert(QString))); return a.exec(); }
bool LDLMainModel::load(const char *filename) { FILE *file; LDLError *error; setFilename(filename); lDrawDir(); // Initializes sm_lDrawIni if (sm_lDrawIni) { LDrawIniComputeRealDirs(sm_lDrawIni, 1, 0, filename); } if (!strlen(lDrawDir())) { error = newError(LDLEGeneral, TCLocalStrings::get(_UC("LDLMainModelNoLDrawDir"))); error->setLevel(LDLACriticalError); sendAlert(error); error->release(); return false; } file = fopen(filename, "rb"); m_mainModel = this; if (file) { bool retValue; if (m_mainFlags.processLDConfig) { processLDConfig(); } retValue = LDLModel::load(file); if (sm_lDrawIni) { // If bool isn't 1 byte, then the filename case callback won't // work, so doesn't get used. Check to see if this will be a // problem. if (sizeof(bool) != sizeof(char) && fileCaseCallback) { char *tmpStr; size_t len = strlen(lDrawDir()); bool failed = false; struct stat statData; tmpStr = new char[len + 10]; sprintf(tmpStr, "%s/P", lDrawDir()); if (stat(tmpStr, &statData) != 0) { // Check to see if we can access the P directory inside the // LDraw directory. If not, then we have a problem that // needs to be reported to the user. failed = true; } if (!failed) { sprintf(tmpStr, "%s/PARTS", lDrawDir()); if (stat(tmpStr, &statData) != 0) { // Check to see if we can access the PARTS directory // inside the LDraw directory. If not, then we have a // problem that needs to be reported to the user. failed = true; } } delete tmpStr; if (failed) { // Either P or PARTS was inaccessible, so let the user // know that they need to rename the directories to be in // upper case. reportError(LDLEGeneral, TCLocalStrings::get(_UC("LDLMainModelFileCase"))); } } } // The ancestor map has done its job; may as well free up the memory it // was using. m_ancestorMap.clear(); return retValue; } else { error = newError(LDLEFileNotFound, TCLocalStrings::get(_UC("LDLMainModelNoMainModel"))); error->setLevel(LDLACriticalError); sendAlert(error); error->release(); return false; } }