[PATCH 1/2] Add new provider Servercow

Jonatan Schlag jonatan.schlag at ipfire.org
Fri Feb 10 15:37:47 CET 2017


Tested-by: Jonatan Schlag <jonatan.schlag at ipfire.org>
Signed-off-by: Jonatan Schlag <jonatan.schlag at 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"
-- 
2.7.4



More information about the ddns mailing list