mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 13:17:32 +00:00
Don't allow badly formed upnp devices to kill auto discovery (#30342)
Prevent the following from occurring: ``` 2019-12-31 22:38:41 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 85, in async_init return await self._async_handle_step(flow, flow.init_step, data) File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 145, in _async_handle_step result: Dict = await getattr(flow, method)(user_input) File "/usr/src/homeassistant/homeassistant/components/deconz/config_flow.py", line 182, in async_step_ssdp if discovery_info[ssdp.ATTR_UPNP_MANUFACTURER_URL] != DECONZ_MANUFACTURERURL: KeyError: 'manufacturerURL' 2019-12-31 22:38:41 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 85, in async_init return await self._async_handle_step(flow, flow.init_step, data) File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 145, in _async_handle_step result: Dict = await getattr(flow, method)(user_input) File "/usr/src/homeassistant/homeassistant/components/deconz/config_flow.py", line 182, in async_step_ssdp if discovery_info[ssdp.ATTR_UPNP_MANUFACTURER_URL] != DECONZ_MANUFACTURERURL: KeyError: 'manufacturerURL' ```
This commit is contained in:
parent
3f33fc6122
commit
5580ee3fa1
@ -175,7 +175,10 @@ class DeconzFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
|
|||||||
|
|
||||||
async def async_step_ssdp(self, discovery_info):
|
async def async_step_ssdp(self, discovery_info):
|
||||||
"""Handle a discovered deCONZ bridge."""
|
"""Handle a discovered deCONZ bridge."""
|
||||||
if discovery_info[ssdp.ATTR_UPNP_MANUFACTURER_URL] != DECONZ_MANUFACTURERURL:
|
if (
|
||||||
|
discovery_info.get(ssdp.ATTR_UPNP_MANUFACTURER_URL)
|
||||||
|
!= DECONZ_MANUFACTURERURL
|
||||||
|
):
|
||||||
return self.async_abort(reason="not_deconz_bridge")
|
return self.async_abort(reason="not_deconz_bridge")
|
||||||
|
|
||||||
self.bridge_id = normalize_bridge_id(discovery_info[ssdp.ATTR_UPNP_SERIAL])
|
self.bridge_id = normalize_bridge_id(discovery_info[ssdp.ATTR_UPNP_SERIAL])
|
||||||
|
@ -148,7 +148,7 @@ class HueFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
|
|||||||
host is already configured and delegate to the import step if not.
|
host is already configured and delegate to the import step if not.
|
||||||
"""
|
"""
|
||||||
# Filter out non-Hue bridges #1
|
# Filter out non-Hue bridges #1
|
||||||
if discovery_info[ssdp.ATTR_UPNP_MANUFACTURER_URL] != HUE_MANUFACTURERURL:
|
if discovery_info.get(ssdp.ATTR_UPNP_MANUFACTURER_URL) != HUE_MANUFACTURERURL:
|
||||||
return self.async_abort(reason="not_hue_bridge")
|
return self.async_abort(reason="not_hue_bridge")
|
||||||
|
|
||||||
# Filter out non-Hue bridges #2
|
# Filter out non-Hue bridges #2
|
||||||
|
Loading…
x
Reference in New Issue
Block a user