Skip to content

Conversation

@rhansen
Copy link
Member

@rhansen rhansen commented May 18, 2024

Fixes #554
Fixes #631

@rhansen
Copy link
Member Author

rhansen commented May 18, 2024

@phaze75 Would you please try this to see if it fixes your issue?

@rhansen rhansen force-pushed the status branch 4 times, most recently from a92a6d6 to 2a38bb4 Compare May 19, 2024 06:49
@phaze75
Copy link

phaze75 commented May 19, 2024

@phaze75 Would you please try this to see if it fixes your issue?

@rhansen I would like to try it out. But I have no development skills whatsoever, so I also have no idea how to compile the code to try it out. ddclient is "just" a package of my OPNsense firewall (OPNsense 24.1.7-amd64, FreeBSD 13.2-RELEASE-p11). I installed it by clicking on it. ;-) However, I can handle the system on command line level.

So, if I should try this, I would need dummy step by step instructions provided on how to do it please. ;-)

@rhansen
Copy link
Member Author

rhansen commented May 20, 2024

@phaze75 Try these steps:

  1. Click on the Checks tab in this PR
  2. Just above the big black log output section there's an "Artifacts" drop-down. Click it.
  3. Download the distribution-tarball artifact
  4. Open distribution-tarball.zip and extract ddclient-3.11.3~alpha.tar.gz (yes, it's awkward that there's an archive inside an archive, that's due to a GitHub limitation)
  5. Copy ddclient-3.11.3~alpha.tar.gz to your OPNsense firewall
  6. Extract the tarball. Something like:
    cd /tmp
    tar xvfa /path/to/ddclient-3.11.3~alpha.tar.gz
  7. Build:
    cd ddclient-3.11.3~alpha
    ./configure
    make
  8. Overwrite the existing ddclient script:
    cp ddclient /path/to/your/existing/ddclient
  9. Restart ddclient

rhansen added 8 commits May 20, 2024 01:30
The `dnsexit2` protocol reads the IP addresses from the new `ipv4` and
`ipv6` variables, so it should update the `status-ipv4` and
`status-ipv6` variables.
This shouldn't matter in practice because the `status-ipv$ipversion`
field is initialized to a non-`good` value so failing to set it to
`bad` doesn't turn it `good`, but it improves readability.
`$config{$h}{'status'}` was always initialized to a non-`undef` value,
so the `//` fallbacks never did anything.  Instead, any protocol that
does not explicitly update the legacy `status` variable (such as
`godaddy`) would always appear to have failed even if it had
succeeded.

Change the `status*` variables to `undef` by default, and only set
them when an attempt is made so that the legacy `//` fallback works as
expected.
ddclient infrastructure will update the legacy `status` variable if
necessary.
@phaze75
Copy link

phaze75 commented May 20, 2024

@rhansen Thanks a lot, I successfully managed to compile and replace the ddclient file. Unfortunately, GoDaddy meanwhile denies my access via API (maybe due to the excessive updates). I just became aware of the errors in the log. I tried to renew the API key and secret, but no success. I opened a support case.

Update: I stumbled upon some recent posts from users in Reddit, who have similar issues. Some claim GoDaddy have changed their Domain API requirements, requiring customers to have at least 50 domains in their account to be allowed to use the API. That would kill my use case and our test case. I wait for official confirmation by GoDaddy.

@phaze75
Copy link

phaze75 commented May 22, 2024

@rhansen Unfortunately the claims in Reddit were correct. I just received the official answer by GoDaddy:

We have recently updated the account requirements to access parts of our production Domains API. As part of this update, access to these APIs are now limited:
• Availability API: Limited to accounts with 50 or more domains
• Management and DNS APIs: Limited to accounts with 10 or more domains and/or an active Premium Discount Domain Club plan.

As I have only a single domain, I cannot use or test the GoDaddy API anymore. Sorry! Thank you for your support!

@rhansen
Copy link
Member Author

rhansen commented May 23, 2024

Thanks for following up. I'll go ahead and merge this and hope that someone will speak up if it breaks something. 😉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants