Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Handle network change
07-09-2015, 09:44 AM
Post: #20
RE: Handle network change
(03-09-2015 01:33 PM)simonc Wrote:  Thanks for looking into this. Your conclusions were very helpful!

While I'm sure your patch works, I think a smaller set of changes might be possible. Could you check whether the patch below also fixes the bug please?

Code:
diff --git a/OpenHome/Net/Device/Upnp/DviProtocolUpnp.cpp b/OpenHome/Net/Device/Upnp/DviProtocolUpnp.cpp
index 38c6db3..0533b95 100644
--- a/OpenHome/Net/Device/Upnp/DviProtocolUpnp.cpp
+++ b/OpenHome/Net/Device/Upnp/DviProtocolUpnp.cpp
@@ -155,10 +155,10 @@ void DviProtocolUpnp::HandleInterfaceChange()
         AutoNetworkAdapterRef ref(iDvStack.Env(), "DviProtocolUpnp::HandleInterfaceChange");
         const NetworkAdapter* current = ref.Adapter();
         TUint i = 0;
-        if (current != NULL) {
+        if (adapterList.SingleSubnetModeEnabled()) {
             // remove listeners whose interface is no longer available
             while (i<iAdapters.size()) {
-                if (iAdapters[i]->Interface() == current->Address()) {
+                if (current != NULL && iAdapters[i]->Interface() == current->Address()) {
                     i++;
                 }
                 else {
@@ -167,7 +167,7 @@ void DviProtocolUpnp::HandleInterfaceChange()
                     iAdapters.erase(iAdapters.begin() + i);
                 }
                 // add listener if 'current' is a new subnet
-                if (iAdapters.size() == 0) {
+                if (iAdapters.size() == 0 && current != NULL) {
                     iDvStack.SsdpNotifierManager().Stop(iDevice.Udn());
                     DviProtocolUpnpAdapterSpecificData* adapter = AddInterface(*current);
                     if (iDevice.Enabled()) {

I've just checked and it doesn't fix this issue. I do not investigate it a lot.
In my opinion clue is to return NULL adapter if port is 0
Find all posts by this user


Messages In This Thread
Handle network change - SiMet - 19-06-2015, 01:10 PM
RE: Handle network change - simonc - 19-06-2015, 04:20 PM
RE: Handle network change - SiMet - 19-06-2015, 08:02 PM
RE: Handle network change - SiMet - 23-06-2015, 10:13 AM
RE: Handle network change - simonc - 23-06-2015, 12:36 PM
RE: Handle network change - SiMet - 23-06-2015, 03:03 PM
RE: Handle network change - SiMet - 24-06-2015, 02:11 PM
RE: Handle network change - simonc - 24-06-2015, 03:07 PM
RE: Handle network change - SiMet - 25-06-2015, 06:20 AM
RE: Handle network change - SiMet - 02-07-2015, 01:40 PM
RE: Handle network change - simonc - 02-07-2015, 04:22 PM
RE: Handle network change - simonc - 30-07-2015, 04:53 PM
RE: Handle network change - SiMet - 05-08-2015, 12:07 PM
RE: Handle network change - simonc - 07-08-2015, 01:51 PM
RE: Handle network change - SiMet - 11-08-2015, 12:15 PM
RE: Handle network change - SiMet - 20-08-2015, 12:33 PM
RE: Handle network change - SiMet - 01-09-2015, 08:13 AM
RE: Handle network change - simonc - 11-09-2015, 03:16 PM
RE: Handle network change - SiMet - 01-09-2015, 12:29 PM
RE: Handle network change - simonc - 03-09-2015, 01:33 PM
RE: Handle network change - SiMet - 07-09-2015 09:44 AM
RE: Handle network change - SiMet - 14-09-2015, 08:15 AM
RE: Handle network change - simonc - 28-09-2015, 02:12 PM

Forum Jump: