From 52e8a969c6733a3bd1622ea11c1d0a7fd7a2464c Mon Sep 17 00:00:00 2001 From: Jonatan Schlag Date: Fri, 10 Feb 2017 15:37:47 +0100 Subject: [PATCH] Add new provider Servercow Tested-by: Jonatan Schlag Signed-off-by: Jonatan Schlag Signed-off-by: Stefan Schantl --- src/ddns/providers.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/src/ddns/providers.py b/src/ddns/providers.py index 2c30d42..01d7827 100644 --- a/src/ddns/providers.py +++ b/src/ddns/providers.py @@ -1452,6 +1452,41 @@ class DDNSProviderSelfhost(DDNSProtocolDynDNS2, DDNSProvider): return data +class DDNSProviderServercow(DDNSProvider): + handle = "servercow.de" + name = "servercow.de" + website = "https://servercow.de/" + protocols = ("ipv4", "ipv6") + + url = "https://www.servercow.de/dnsupdate/update.php" + can_remove_records = False + + def update_protocol(self, proto): + data = { + "ipaddr" : self.get_address(proto), + "hostname" : self.hostname, + "username" : self.username, + "pass" : self.password, + } + + # Send request to provider + response = self.send_request(self.url, data=data) + + # Read response + output = response.read() + + # Server responds with OK if update was successful + if output.startswith("OK"): + return + + # Catch any errors + elif output.startswith("FAILED - Authentication failed"): + raise DDNSAuthenticationError + + # If we got here, some other update error happened + raise DDNSUpdateError(output) + + class DDNSProviderSPDNS(DDNSProtocolDynDNS2, DDNSProvider): handle = "spdns.org" name = "SPDYN" -- 2.39.2