It seems that DetectWirelessInterface()/DetectWiredInterface() are only used within the daemon. The daemon calls them directly without going through DBus, so that's probably why removing str() on them happened not to cause problems. Do these methods have to be available to the client? If a string must be returned, then the check in ReadConfig() should be changed to `if iface != "None"' from `if iface'.
There is indeed a warning being logged when an interface is not detected, and that's how I diagnosed the problem. I think your concern about annoying users who really don't have wireless is well-taken, and here's what I suggest in light of it. If no wireless is detected, then in the list of networks show a grayed-out pseudo-network that says "No wireless interface found." This way, it becomes clear to the user what's going on if there really is a wireless interface, and users who don't want to see that pseudo-network can just turn off a relevant option. A "don't show this warning" button that toggles that option might be on the pseudo-network too.
About the last paragraph: the client can know that an interface is missing when it receives config information from the daemon. This should be thought of as detecting suspicious configuration rather than detecting an event.
A listing of my /sys/class/ net/wlan0 is attached.
It seems that DetectWirelessI nterface( )/DetectWiredIn terface( ) are only used within the daemon. The daemon calls them directly without going through DBus, so that's probably why removing str() on them happened not to cause problems. Do these methods have to be available to the client? If a string must be returned, then the check in ReadConfig() should be changed to `if iface != "None"' from `if iface'.
There is indeed a warning being logged when an interface is not detected, and that's how I diagnosed the problem. I think your concern about annoying users who really don't have wireless is well-taken, and here's what I suggest in light of it. If no wireless is detected, then in the list of networks show a grayed-out pseudo-network that says "No wireless interface found." This way, it becomes clear to the user what's going on if there really is a wireless interface, and users who don't want to see that pseudo-network can just turn off a relevant option. A "don't show this warning" button that toggles that option might be on the pseudo-network too.
About the last paragraph: the client can know that an interface is missing when it receives config information from the daemon. This should be thought of as detecting suspicious configuration rather than detecting an event.