From 2febc9c4b3429b83f2877e072f975b01edde5eb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20S=C3=B8rensen?= Date: Thu, 23 Nov 2023 09:13:00 +0100 Subject: [PATCH] Force IPv4 when getting location information (#104363) --- homeassistant/components/cloudflare/__init__.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/cloudflare/__init__.py b/homeassistant/components/cloudflare/__init__.py index 1901bfdc0e7..d4c6775c6b9 100644 --- a/homeassistant/components/cloudflare/__init__.py +++ b/homeassistant/components/cloudflare/__init__.py @@ -4,8 +4,8 @@ from __future__ import annotations import asyncio from datetime import timedelta import logging +import socket -from aiohttp import ClientSession import pycfdns from homeassistant.config_entries import ConfigEntry @@ -51,7 +51,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: """Set up recurring update.""" try: await _async_update_cloudflare( - session, client, dns_zone, entry.data[CONF_RECORDS] + hass, client, dns_zone, entry.data[CONF_RECORDS] ) except ( pycfdns.AuthenticationException, @@ -63,7 +63,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: """Set up service for manual trigger.""" try: await _async_update_cloudflare( - session, client, dns_zone, entry.data[CONF_RECORDS] + hass, client, dns_zone, entry.data[CONF_RECORDS] ) except ( pycfdns.AuthenticationException, @@ -92,7 +92,7 @@ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: async def _async_update_cloudflare( - session: ClientSession, + hass: HomeAssistant, client: pycfdns.Client, dns_zone: pycfdns.ZoneModel, target_records: list[str], @@ -102,6 +102,7 @@ async def _async_update_cloudflare( records = await client.list_dns_records(zone_id=dns_zone["id"], type="A") _LOGGER.debug("Records: %s", records) + session = async_get_clientsession(hass, family=socket.AF_INET) location_info = await async_detect_location_info(session) if not location_info or not is_ipv4_address(location_info.ip):