Rebased network changes (#751)

* add initial mdns responder for rtp-midi aka applemidi

* do not reinitialized network

* continue publishing mdns after network connection reestablishes
network
Ömer Şiar Baysal 5 days ago committed by GitHub
parent 29b5d05bd4
commit b822a9742f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 25
      src/minidexed.cpp
  2. 1
      src/minidexed.h

@ -32,6 +32,7 @@ const char WLANFirmwarePath[] = "SD:firmware/";
const char WLANConfigFile[] = "SD:wpa_supplicant.conf"; const char WLANConfigFile[] = "SD:wpa_supplicant.conf";
#define FTPUSERNAME "admin" #define FTPUSERNAME "admin"
#define FTPPASSWORD "admin" #define FTPPASSWORD "admin"
#define MDNSSERVICENAME "MiniDexed"
LOGMODULE ("minidexed"); LOGMODULE ("minidexed");
@ -62,6 +63,7 @@ CMiniDexed::CMiniDexed (CConfig *pConfig, CInterruptSystem *pInterrupt,
m_WPASupplicant(WLANConfigFile), m_WPASupplicant(WLANConfigFile),
m_bNetworkReady(false), m_bNetworkReady(false),
m_UDPMIDI (this, pConfig, &m_UI), m_UDPMIDI (this, pConfig, &m_UI),
m_pmDNSPublisher (),
m_bSavePerformance (false), m_bSavePerformance (false),
m_bSavePerformanceNewFile (false), m_bSavePerformanceNewFile (false),
m_bSetNewPerformance (false), m_bSetNewPerformance (false),
@ -2188,10 +2190,14 @@ void CMiniDexed::UpdateNetwork()
if (!m_pNet) if (!m_pNet)
return; return;
//add wired network check as well
bool bNetIsRunning = m_pNet->IsRunning(); bool bNetIsRunning = m_pNet->IsRunning();
bNetIsRunning &= m_WPASupplicant.IsConnected(); if ((strcmp(m_pConfig->GetNetworkType(), "ethernet") == 0))
bNetIsRunning &= m_pNetDevice->IsLinkUp();
if (!m_bNetworkReady && bNetIsRunning) else if ((strcmp(m_pConfig->GetNetworkType(), "wifi") == 0))
bNetIsRunning &= m_WPASupplicant.IsConnected();
if (!m_bNetworkReady && (m_pNet->IsRunning()))
{ {
m_bNetworkReady = true; m_bNetworkReady = true;
CString IPString; CString IPString;
@ -2199,7 +2205,6 @@ void CMiniDexed::UpdateNetwork()
//LOGNOTE("Network up and running at: %s", static_cast<const char *>(IPString)); //LOGNOTE("Network up and running at: %s", static_cast<const char *>(IPString));
m_UDPMIDI.Initialize(); m_UDPMIDI.Initialize();
m_pFTPDaemon = new CFTPDaemon(FTPUSERNAME, FTPPASSWORD); m_pFTPDaemon = new CFTPDaemon(FTPUSERNAME, FTPPASSWORD);
@ -2236,8 +2241,18 @@ void CMiniDexed::UpdateNetwork()
} }
else if (m_bNetworkReady && !bNetIsRunning) else if (m_bNetworkReady && !bNetIsRunning)
{ {
m_bNetworkReady = false; //m_bNetworkReady = false;
m_pmDNSPublisher->UnpublishService (MDNSSERVICENAME);
LOGNOTE("Network disconnected."); LOGNOTE("Network disconnected.");
}
else if (m_bNetworkReady && bNetIsRunning)
{
if (!m_pmDNSPublisher->PublishService (MDNSSERVICENAME, CmDNSPublisher::ServiceTypeAppleMIDI,
5004))
{
LOGPANIC ("Cannot publish mdns service");
}
LOGNOTE("Network connection reestablished.");
} }
} }

@ -340,6 +340,7 @@ private:
bool m_bNetworkReady; bool m_bNetworkReady;
CUDPMIDIDevice m_UDPMIDI; CUDPMIDIDevice m_UDPMIDI;
CFTPDaemon* m_pFTPDaemon; CFTPDaemon* m_pFTPDaemon;
CmDNSPublisher *m_pmDNSPublisher;
bool m_bSavePerformance; bool m_bSavePerformance;
bool m_bSavePerformanceNewFile; bool m_bSavePerformanceNewFile;

Loading…
Cancel
Save