void sJarvisNode::initNode() { m_initDone =false; connect(&m_tcpClient,SIGNAL(socket_rx(QByteArray)),this,SLOT(validateClient(QByteArray))); send(encodeNodeMsg(QStringList(QString(M_JARVIS_GREETING)))); // le damos un segundo para que reciba de vuelta la informacion, al cumplir el segundo se llama a la funcion initDone() m_initTimeout.start(5000); }
int peerValidation(char *ip,char *cport){ //Loop through the present connections and update the //connection status int errorflag = 0; int success = 0; if((strcmp(ip,ipaddress) == 0) && (strcmp(cport,portnum) == 0)){ printf("\n[PA1]$: Self connection not allowed !!"); printf("\n[PA1]$:"); fflush(stdout); return 0 ; } errorflag = validateClient(ip,cport,headClientNode); //errorflag = 1 ; if(errorflag == 0) { printf("\n Invalid IP/HOST NAME OR AN IP/HOSTNAME NOT LISTED BY THE SERVER"); printf("\n[PA1]$:"); fflush(stdout); }else{ errorflag = validateClient(ip,cport,headConnectdNode); if(errorflag == 1){ printf("\n Duplicate Connection already exists"); printf("\n[PA1]$:"); fflush(stdout); } else{ success = 1 ; //updtConnectionStatus(ip,cport); } } return success ; }
void sJarvisNode::validateClient(QByteArray data) { QString greet; greet += P_PACKETSTART ; greet += M_JARVISMSG; greet += P_PACKETSEPARATOR; greet += M_NODE_GREETING; greet += P_PACKETTERMINATOR; qDebug() << data << "/" << greet ; if(data == greet) { disconnect(&m_tcpClient,SIGNAL(socket_rx(QByteArray)),this,SLOT(validateClient(QByteArray))); connect(&m_tcpClient,SIGNAL(socket_rx(QByteArray)),this,SLOT(data_rx(QByteArray))); } else closeTCP(); }
void sJarvisNodeServer::handleNewConn() { QTcpSocket* s = this->nextPendingConnection(); validateClient(s); }
void sJarvisNodeServer::connectNode(QString host, qint16 port) { QTcpSocket* c = new QTcpSocket(this); c->connectToHost(host,port); validateClient(c); }