ERROR extracting owners from domains: multiple domains specified #465

Closed
opened 2025-11-20 04:24:20 -05:00 by saavagebueno · 3 comments
Owner

Originally created by @jojo18222 on GitHub (Nov 19, 2024).

  1. Is this urgent: Yes
  2. DNS provider(s) you use: goip
  3. Program version: 2024-11-12T13:25:56.063Z (commit 9a62043)
  4. What are you using to run the container: portainer
  5. Extra information:
    I have multiple subdomains from goip and try to add all in one json object.
    The readme says:
    "you can specify multiple owners/hosts for the same domain using a comma separated list. For example with "domain": "example.com,sub.example.com,sub2.example.com",."
    I don't know what I'm doing wrong...

Logs:
2024-11-19T10:45:28+01:00 INFO reading JSON config from file /updater/data/config.json
2024-11-19T10:45:28+01:00 ERROR extracting owners from domains: multiple domains specified: "sub1.goip.de" and "sub2.goip.de"
2024-11-19T10:45:28+01:00 INFO Shutdown successful

Configuration file (remove your credentials!):

{
      "provider": "goip",
      "domain": "sub1.goip.de,sub2.goip.de,sub2.goip.de,sub3.goip.de",
      "username": "user",
      "password": "pass",
      "ip_version": "ipv6",
      "ipv6_suffix": "0:0:0:0:ffff:ffff:fffff:ffff/64"
}

Host OS: Debian 11

Originally created by @jojo18222 on GitHub (Nov 19, 2024). 1. Is this urgent: Yes 2. DNS provider(s) you use: goip 3. Program version: 2024-11-12T13:25:56.063Z (commit 9a62043) 4. What are you using to run the container: portainer 5. Extra information: I have multiple subdomains from goip and try to add all in one json object. The readme says: "you can specify multiple owners/hosts for the same domain using a comma separated list. For example with "domain": "example.com,sub.example.com,sub2.example.com",." I don't know what I'm doing wrong... Logs: 2024-11-19T10:45:28+01:00 INFO reading JSON config from file /updater/data/config.json 2024-11-19T10:45:28+01:00 ERROR extracting owners from domains: multiple domains specified: "sub1.goip.de" and "sub2.goip.de" 2024-11-19T10:45:28+01:00 INFO Shutdown successful Configuration file (**remove your credentials!**): ```json { "provider": "goip", "domain": "sub1.goip.de,sub2.goip.de,sub2.goip.de,sub3.goip.de", "username": "user", "password": "pass", "ip_version": "ipv6", "ipv6_suffix": "0:0:0:0:ffff:ffff:fffff:ffff/64" } ``` Host OS: Debian 11
Author
Owner

@qdm12 commented on GitHub (Nov 19, 2024):

Documentation was kind of terribly wrong!

  • The readme now specifies goip and duckdns are handled differently from commit 8b15e35575
  • The goip domain field documentation is fixed in 1138de5446
  • The goip domain field documentation has new examples with e28b86f9c0

The more details on this:

  • TLD = top level domain, for example de for goip.de
  • eTLD = effective top level domain, for example goip.de for goip.de - also the case for duckdns.org and goip.it. This is because goip.de is an effective TLD (you can't really buy/own goip.de).

So technically the effective domain is domain.goip.de with root owner @, so when reading this the code thinks you are trying to pass it different domains. You could pass sub.domain.goip.de,sub2.domain.goip.de and that would work.

Now in the code, we use "eTLD+1" to get your domain. In your case, because goip.de is an eTLD, the domains found are sub1.goip.de, sub2.goip.de, etc. and each has the root owner @.

I preferred to fix/improve the documentation, since having this in code might cause a bunch of fun with mishandling what's the domain versus the owner. Anyway thanks for reporting this!

@qdm12 commented on GitHub (Nov 19, 2024): Documentation was kind of terribly wrong! - The readme now specifies goip and duckdns are handled differently from commit 8b15e35575fb646b4125d30afe6ede4e676f5026 - The goip domain field documentation is fixed in 1138de5446f29bf452d7123aa98f7f470221ac3f - The goip domain field documentation has new examples with e28b86f9c0d3e6742517c7f490e39003b716558b The more details on this: - TLD = top level domain, for example `de` for `goip.de` - eTLD = effective top level domain, for example `goip.de` for `goip.de` - also the case for duckdns.org and goip.it. This is because goip.de is an effective TLD (you can't really buy/own goip.de). So technically the effective domain is `domain.goip.de` with root owner `@`, so when reading this the code thinks you are trying to pass it different domains. You could pass `sub.domain.goip.de,sub2.domain.goip.de` and that would work. Now in the code, we use "eTLD+1" to get your domain. In your case, because `goip.de` is an eTLD, the domains found are `sub1.goip.de`, `sub2.goip.de`, etc. and each has the root owner `@`. I preferred to fix/improve the documentation, since having this in code might cause a bunch of fun with mishandling what's the domain versus the owner. Anyway thanks for reporting this!
Author
Owner

@jojo18222 commented on GitHub (Nov 19, 2024):

Thanks for your answer.
If I understand you correct, I have to use separate json objects for every (sub)domain of goip?#

{
  "settings": [
      {
      "provider": "goip",
      "domain": "mydomain1.goip.de",
      "username": "same_username",
      "password": "same_password",
      "ip_version": "ipv6",
      "ipv6_suffix": "0:0:0:0:ffff:ffff:fffff:ffff/64"
    }
  ],
  [
    {
      "provider": "goip",
      "domain": "mydomain2.goip.de",
      "username": "same_username",
      "password": "same_password",
      "ip_version": "ipv6",
      "ipv6_suffix": "0:0:0:0:ffff:ffff:fffff:ffff/64"
    }
  ]
}

Or is there a better way? in Version <= 2.7 it worked with host parameter set to goip.de and domain was "mydomain1,mydomain2".

@jojo18222 commented on GitHub (Nov 19, 2024): Thanks for your answer. If I understand you correct, I have to use separate json objects for every (sub)domain of goip?# ```json { "settings": [ { "provider": "goip", "domain": "mydomain1.goip.de", "username": "same_username", "password": "same_password", "ip_version": "ipv6", "ipv6_suffix": "0:0:0:0:ffff:ffff:fffff:ffff/64" } ], [ { "provider": "goip", "domain": "mydomain2.goip.de", "username": "same_username", "password": "same_password", "ip_version": "ipv6", "ipv6_suffix": "0:0:0:0:ffff:ffff:fffff:ffff/64" } ] } ``` Or is there a better way? in Version <= 2.7 it worked with host parameter set to goip.de and domain was "mydomain1,mydomain2".
Author
Owner

@qdm12 commented on GitHub (Nov 19, 2024):

Yes, because now and going forward we use 'effective domains' (effective TLD is goip.de, effective domain is xyz.goip.de with root owner). Otherwise it's a whole mess to handle sub.domain.goip.de: what's the owner, what's the domain etc.?
You could possibly still use the meant-to-be-retro-compatible form with "domains": "goip.de", "owner": "a,b" and that may work.

@qdm12 commented on GitHub (Nov 19, 2024): Yes, because now and going forward we use 'effective domains' (effective TLD is goip.de, effective domain is xyz.goip.de with root owner). Otherwise it's a whole mess to handle `sub.domain.goip.de`: what's the owner, what's the domain etc.? You could possibly still use the meant-to-be-retro-compatible form with `"domains": "goip.de", "owner": "a,b"` and that may work.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/ddns-updater#465