connect(this->sendTextEditor,SIGNAL(invalidLink(const QString &)),SLOT(invalidLink(const QString &)));
connect(this->sendTextEditor,SIGNAL(sendTriggered()),this->sendButton,SLOT(click()));
- connect(this->mainServer,SIGNAL(pending(threadedTcpSocket &)),
- SLOT(tcpserver_pending(threadedTcpSocket &)));
+ connect(this->mainServer,SIGNAL(pending(const AddressAndPort &)),
+ SLOT(tcpserver_pending(const AddressAndPort &)));
+ connect(this->mainServer,SIGNAL(socket_accepted(const threadedTcpSocket &)),
+ SLOT(tcpserver_accepted(const threadedTcpSocket &)));
}
mainWindow::~mainWindow(){}
void mainWindow::closeEvent(QCloseEvent *event){
for(int index=0;index<addressList.size();index++){
threadedTcpSocket *client=new threadedTcpSocket(
addressList[index],this->setting.name(),default_buffer_size,this);
- connect(client,SIGNAL(error(const QAbstractSocket::SocketError &)),SLOT(tcpclient_error(const QAbstractSocket::SocketError &)));
connect(client,SIGNAL(sentData()),SLOT(sentData()));
(*client)<<this->sendTextEditor->html();
}
}
-void mainWindow::tcpclient_error(const QAbstractSocket::SocketError &error){
- Q_UNUSED(error);
- threadedTcpSocket *client=qobject_cast<threadedTcpSocket *>(this->sender());
-#ifdef DEBUG
- qDebug()<<"Error:"<<client->errorString();
-#endif
- client->exit(1);
-}
void mainWindow::on_sendFileAction_triggered(){
//TODO:Send files
settings mainWindow::app_setting() const{return this->setting;}
//Main server
-bool mainWindow::tcpserver_pending(threadedTcpSocket &socket){
+bool mainWindow::tcpserver_pending(const AddressAndPort &addr){
#ifdef DEBUG
- qDebug()<<"Pending:"<<socket.peerAddr().first.toString()<<" Port:"<<socket.peerAddr().second;
+ qDebug()<<"Pending:"<<addr.first.toString()<<" Port:"<<addr.second;
#endif
- if(this->memberList->isInMember(socket.peerAddr(),true)<0) return false;
+ return this->memberList->isInMember(addr,true)>=0;
+}
+void mainWindow::tcpserver_accepted(const threadedTcpSocket &socket){
connect(&socket,
SIGNAL(msg_received(const QString &)),
SLOT(tcpserver_msg_received(const QString &)));
- connect(&socket,SIGNAL(error(const QAbstractSocket::SocketError &)),
- SLOT(tcpserver_error(const QAbstractSocket::SocketError &)));
- return true;
-}
-void mainWindow::tcpserver_error(const QAbstractSocket::SocketError &error){
- Q_UNUSED(error);
- threadedTcpSocket *sender=qobject_cast<threadedTcpSocket *>(this->sender());
-#ifdef DEBUG
- qDebug()<<"Receive aborted:"<<sender->errorString();
-#endif
- sender->exit(1);
}
void mainWindow::tcpserver_msg_received(const QString &msg){