]> git.ipfire.org Git - ddns.git/blobdiff - src/ddns/providers.py
Merge remote-tracking branch 'stevee/ddns-fixes'
[ddns.git] / src / ddns / providers.py
index 151d6a3852e8e344f65632417380759c66fafc0b..00a3855bbffab6d61679ccc7614eaac0cef18352 100644 (file)
@@ -224,6 +224,8 @@ class DDNSProtocolDynDNS2(object):
                        raise DDNSInternalServerError
                elif output == "dnserr":
                        raise DDNSInternalServerError(_("DNS error encountered."))
+               elif output == "badagent":
+                       raise DDNSBlockedError
 
                # If we got here, some other update error happened.
                raise DDNSUpdateError(_("Server response: %s") % output)
@@ -521,9 +523,11 @@ class DDNSProviderDynU(DDNSProtocolDynDNS2, DDNSProvider):
                data = DDNSProtocolDynDNS2._prepare_request_data(self)
 
                # This one supports IPv6
-               data.update({
-                       "myipv6"   : self.get_address("ipv6"),
-               })
+               myipv6 = self.get_address("ipv6")
+
+               # Add update information if we have an IPv6 address.
+               if myipv6:
+                       data["myipv6"] = myipv6
 
                return data
 
@@ -614,7 +618,7 @@ class DDNSProviderEntryDNS(DDNSProvider):
 
                # Send update to the server.
                try:
-                       response = self.send_request(url, method="PUT", data=data)
+                       response = self.send_request(url, data=data)
 
                # Handle error codes
                except urllib2.HTTPError, e: