Tested-by: Jonatan Schlag jonatan.schlag@ipfire.org Signed-off-by: Jonatan Schlag jonatan.schlag@ipfire.org --- 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"
Signed-off-by: Jonatan Schlag jonatan.schlag@ipfire.org --- README | 1 + 1 file changed, 1 insertion(+)
diff --git a/README b/README index 40f1e7f..ebb647f 100644 --- a/README +++ b/README @@ -77,6 +77,7 @@ SUPPORTED PROVIDERS: regfish.com schokokeks.org selfhost.de + servercow.de spdns.org strato.com twodns.de