X-Git-Url: http://git.ipfire.org/?p=oddments%2Fddns.git;a=blobdiff_plain;f=src%2Fddns%2Fproviders.py;fp=src%2Fddns%2Fproviders.py;h=01d782740c5a855e14aa17fa8f85ca62f9e56bbe;hp=2c30d42976059a84af947c67da0fcd5371b3e465;hb=52e8a969c6733a3bd1622ea11c1d0a7fd7a2464c;hpb=f77e6bc92825d65e881d5dc7fc443139278c0d5f 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"