// AME = Alive Message Expected void UDPServer::sendAME() { QString address = udpSocket->localAddress().toString(); quint16 port = udpSocket->localPort(); QByteArray datagram = "4;" + address.toLatin1() + ";" + QByteArray::number(port); startAliveTimer(); sendDatagram(datagram); qDebug() << "AME Message sent"; }
//Select transport based on profile and opts and set default GUID int MF_BaseSocketManager::openRequest(MF_APIOpen *event){ MF_Log::mf_log(MF_DEBUG, "MF_BaseSocketManager:open request analyzing request profile=%s guid=%d", event->getProfile(), event->getSrcGUID()); if(!strcmp("basic", event->getProfile())){ type = 1; } else{ MF_Log::mf_log(MF_ERROR, "MF_BaseSocketManager:openRequest wrong profile request %s", event->getProfile()); openReplyError(STACK_ACTION_FAILURE); return -1; } //Create transport if (transSetting.isReliabTrans) { trnsp = new MF_ReliabTransport(ID, &recvBuffer, &sendBuffer, _system); ((MF_ReliabTransport*)(trnsp))->setTransSetting(transSetting); } else { trnsp = new MF_BasicTransport(ID, &recvBuffer, &sendBuffer, _system); } trnsp->setMyGUID(event->getSrcGUID()); _system->getSocketTable()->addManager(this); if(event->getSrcGUID()==0){ MF_Log::mf_log(MF_DEBUG, "MF_BaseSocketManager:openRequest using device default srcGUID"); _system->getSocketTable()->addGUID(event->getUID(), _system->getRouter()->getDefaultGUID()); GUIDs.push_back(_system->getRouter()->getDefaultGUID()); } else{ _system->getSocketTable()->addGUID(event->getUID(), event->getSrcGUID()); _system->getRouter()->addGUID(event->getSrcGUID()); GUIDs.push_back(event->getSrcGUID()); } _system->getSocketTable()->addTID(ID, ID); startAliveTimer(); MF_Log::mf_log(MF_DEBUG, "MF_BaseSocketManager:openRequest opened new socket with ID=%u default srcGUID=%d", ID, event->getSrcGUID()); open = true; openReplySuccess(); connectToClient(); return 0; }