Skip to content
This repository was archived by the owner on Oct 25, 2025. It is now read-only.
This repository was archived by the owner on Oct 25, 2025. It is now read-only.

send_update() does not retry if provider setup fails #509

@mhkrebs

Description

@mhkrebs

I'm running Inadyn on Home Assistant. I have two hostnames configured to update for cloudflare.

I noticed that the first IP address never updated, and here are the [redacted] logs:

2025-03-02T11:30:55.003997000Z inadyn[142]: Failed connecting to 1.1.1.1: Operation in progress
2025-03-02T11:30:55.005634000Z inadyn[142]: Communication with checkip server 1.1.1.1 failed, run again with 'inadyn -l debug' if problem persists
2025-03-02T11:30:55.005972000Z inadyn[142]: Retrying with built-in 'default', http://ifconfig.me/ip ...
2025-03-02T11:31:15.255985000Z inadyn[142]: Failed resolving hostname ifconfig.me: Try again
2025-03-02T11:31:15.257491000Z inadyn[142]: Failed to get IP address for [email protected], giving up!
2025-03-02T11:31:15.391074000Z inadyn[142]: Update needed for alias sub1.domain1.com, new IP# X.X.X.X
2025-03-02T11:31:35.477808000Z inadyn[142]: Failed resolving hostname api.cloudflare.com: Try again
2025-03-02T11:31:35.479520000Z inadyn[142]: Zone 'domain1.com' not found.
2025-03-02T11:33:35.745976000Z inadyn[142]: Update needed for alias sub2.domain2.com, new IP# X.X.X.X
2025-03-02T11:33:36.606211000Z inadyn[142]: Updating IPv4 cache for sub2.domain2.com

I'm guessing there was some networking issue, and it had trouble getting the IP address until T11:31:15.391074000Z. At that point it called send_update() to set the IP address for "sub1.domain1.com".

I believe the problem is that cloudflare's info->system->setup function then failed, but there's no retry in that case:

inadyn/src/ddns.c

Lines 617 to 618 in d809e2b

if (info->system->setup)
DO(info->system->setup(ctx, info, alias));

All but one of the other failure cases in that function set alias->force_addr_update = 1 to presumably retry later.

Can that call to the provider setup function also set force_addr_update if it fails?

(FYI, the IP address for "sub2.domain2.com" did update as expected then.)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions