From 3d47ad501870aa09c9e94b15d9e6e528450db6ef Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Sun, 13 Nov 2016 01:00:31 +0100 Subject: [PATCH] Use hass aiohttp connector for ssl connection (#4344) --- homeassistant/components/camera/synology.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/camera/synology.py b/homeassistant/components/camera/synology.py index bbca25fd6b6..9292e839b53 100644 --- a/homeassistant/components/camera/synology.py +++ b/homeassistant/components/camera/synology.py @@ -14,6 +14,7 @@ from aiohttp import web from aiohttp.web_exceptions import HTTPGatewayTimeout import async_timeout +from homeassistant.core import callback from homeassistant.const import ( CONF_NAME, CONF_USERNAME, CONF_PASSWORD, CONF_URL, CONF_WHITELIST, CONF_VERIFY_SSL, EVENT_HOMEASSISTANT_STOP) @@ -60,8 +61,16 @@ def async_setup_platform(hass, config, async_add_devices, discovery_info=None): """Setup a Synology IP Camera.""" if not config.get(CONF_VERIFY_SSL): connector = aiohttp.TCPConnector(verify_ssl=False) + + @asyncio.coroutine + def _async_close_connector(event): + """Close websession on shutdown.""" + yield from connector.close() + + hass.bus.async_listen_once( + EVENT_HOMEASSISTANT_STOP, _async_close_connector) else: - connector = None + connector = hass.websession.connector websession_init = aiohttp.ClientSession( loop=hass.loop, @@ -115,10 +124,10 @@ def async_setup_platform(hass, config, async_add_devices, discovery_info=None): websession = aiohttp.ClientSession( loop=hass.loop, connector=connector, cookies={'id': session_id}) - @asyncio.coroutine + @callback def _async_close_websession(event): - """Close webssesion on shutdown.""" - yield from websession.close() + """Close websession on shutdown.""" + websession.detach() hass.bus.async_listen_once( EVENT_HOMEASSISTANT_STOP, _async_close_websession)