Hi,
-------- Original Message -------- From: Michael Tremer [mailto:michael.tremer@ipfire.org] Sent: Thursday, 19 September 2019, 14:57 CEST To: Alexander Koch ipfire@starkstromkonsument.de Cc: ddns@lists.ipfire.org Subject: [PATCH] Add new provider INWX (https://www.inwx.com)
Hi,
Thank you for sending this patch, but I am afraid I have a little bit of a problem here…
On 18 Sep 2019, at 15:25, Alexander Koch ipfire@starkstromkonsument.de wrote:
This includes:
- inwx.com
- inwx.de
- inwx.at
- inwx.ch
- inwx.es
Signed-off-by: Alexander Koch ipfire@starkstromkonsument.de
README | 1 + configure.ac | 2 +- src/ddns/providers.py | 15 ++++++++++++++- 3 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/README b/README index b0601a0..0f2798e 100644 --- a/README +++ b/README @@ -68,6 +68,7 @@ SUPPORTED PROVIDERS: enom.com entrydns.net freedns.afraid.org
- inwx.com|de|at|ch|es itsdns.de joker.com loopia.se
diff --git a/configure.ac b/configure.ac index 008950d..14bccc0 100644 --- a/configure.ac +++ b/configure.ac @@ -21,7 +21,7 @@ AC_PREREQ([2.64])
AC_INIT([ddns],
- [011],
- [012], [info@ipfire.org], [ddns], [http://git.ipfire.org/?p=oddments/ddns.git;a=summary])
You don’t need to increment the version number. That will be done by the maintainer when ever it is decided to have a new release.
Ok.
diff --git a/src/ddns/providers.py b/src/ddns/providers.py index 4ffd8bf..12116e3 100644 --- a/src/ddns/providers.py +++ b/src/ddns/providers.py @@ -1003,7 +1003,7 @@ class DDNSProviderDynsNet(DDNSProvider): raise DDNSInternalServerError
# If we got here, some other update error happened.
raise DDNSUpdateError(_("Server response: %s") % output)
raise DDNSUpdateError(_("Server response: %s") % output)
Whitespace changes like this should not be included in this patch. This could be an extra patch.
Ok. My text editor corrected this automatically. I didn't think about it any further...
class DDNSProviderEnomCom(DDNSResponseParserXML, DDNSProvider): @@ -1129,6 +1129,19 @@ class DDNSProviderFreeDNSAfraidOrg(DDNSProvider): raise DDNSUpdateError
+class DDNSProviderItsdns(DDNSProtocolDynDNS2, DDNSProvider):
handle = "inwx.com"
name = "INWX"
website = "https://www.inwx.com"
protocols = ("ipv6", "ipv4")
# Information about the format of the HTTP request is to be found
# here: https://www.inwx.com/en/nameserver2/dyndns (requires login)
# Notice: The URL is the same for: inwx.com|de|at|ch|es
url = "https://dyndns.inwx.com/nic/update"
My problem with this provider is that the documentation is not publicly accessible. Therefore this is not maintainable for everyone who does not have an account there. Creating an account with every single ISP is of course not an option either.
I would be interested to hear what Stefan and others think about this.
Best, -Michael
I get your point. I did some research in their KB - without login - but couldn't find an alternative place providing the infos. They use the dyndns2-protocol without any modifications. The only information they provide at the given URL (with login) is the Update-URL: https://dyndns.inwx.com/nic/update?myip=<ipaddr>&myipv6=<ip6addr> I doubt they will ever change this, unless they move to another protocol ... this would then be reported as a bug by a user who has a login and is able to provide further information though.
I've got an alternative idea to solve this. As they (and some other of the already implemented providers) are using the dyndns2-protocoll without any modifications, why not add a specific handle "DynDNS2 misc" to the service-dropdown (or an additional dropdown for the protocol) and a textfield for the Update-URL on the Web UI and create a unified handle for all dyndns2-providers in providers.py. The Update-URL for the dydns2-service can easily be provided by the user. This would simplify the maintenance of ddns on one side and provide support for more dyndns2-services without any effort on the other side. A similar approach could be used for other existent/future standardized dyndns-service-protocolls.
Please let me know what you think about it. I offer to work on a patch for the "DynDNS2 misc"-service if you like the idea.
class DDNSProviderItsdns(DDNSProtocolDynDNS2, DDNSProvider): handle = "itsdns.de" name = "it's DNS" -- 2.17.1
ddns mailing list ddns@lists.ipfire.org https://lists.ipfire.org/mailman/listinfo/ddns
Regards, Alex