diff --git a/src/simplecasttcpservice.cpp b/src/simplecasttcpservice.cpp index d6ccc609227c0c06146dfad944ddeadc0729172a..d94d5d73e36de7de3eeee06ee62d7557eb20f4f0 100644 --- a/src/simplecasttcpservice.cpp +++ b/src/simplecasttcpservice.cpp @@ -79,12 +79,15 @@ signals: SimpleCastTcpService::SimpleCastTcpService(MiniMediaPlayer *player,QObject *parent) : QTcpServer(parent),player(player),manager(new QNetworkAccessManager(this)) { - dnsService = new KDNSSD::PublicService(QString(),"_simplecast._tcp",this->serverPort(),"local"); + dnsService = new KDNSSD::PublicService(QString(),"_simplecast._tcp",port,"local"); dnsService->setParent(this); } bool SimpleCastTcpService::listen(const QHostAddress& address, quint16 port) { + this->address = address; + this->port = port; + dnsService->setPort(port); bool listening = QTcpServer::listen(address,port); dnssdConnection = connect(manager,SIGNAL(networkAccessibleChanged(QNetworkAccessManager::NetworkAccessibility)),this,SLOT(networkAccessChanged(QNetworkAccessManager::NetworkAccessibility))); //Start publishing now and if not, wait for networkAccessibleManager to let us know. @@ -99,10 +102,12 @@ void SimpleCastTcpService::networkAccessChanged(QNetworkAccessManager::NetworkAc { if(accessible == QNetworkAccessManager::Accessible) { + QTcpServer::listen(address,port); dnsService->publishAsync(); } else { + QTcpServer::close(); dnsService->stop(); } @@ -110,8 +115,8 @@ void SimpleCastTcpService::networkAccessChanged(QNetworkAccessManager::NetworkAc void SimpleCastTcpService::close() { - QTcpServer::close(); disconnect(dnssdConnection); + QTcpServer::close(); dnsService->stop(); } diff --git a/src/simplecasttcpservice.h b/src/simplecasttcpservice.h index dc385f418edda753866cd6069ae7ab7b61f1dc8f..8294722795566882ad315e175bda329303db7998 100644 --- a/src/simplecasttcpservice.h +++ b/src/simplecasttcpservice.h @@ -46,6 +46,8 @@ private: KDNSSD::PublicService *dnsService; QNetworkAccessManager *manager; QMetaObject::Connection dnssdConnection; + QHostAddress address = QHostAddress::Any; + quint64 port = 54634; };