Bug 11561

Summary: Update from no-ip.com fails
Product: DDNS Updater Reporter: Nateos <nateos2g>
Component: ProvidersAssignee: Stefan Schantl <stefan.schantl>
Status: CLOSED FIXED QA Contact: Michael Tremer <michael.tremer>
Severity: Minor Usability    
Priority: - Unknown -    
Version: unspecified   
Hardware: all   
OS: Linux   

Description Nateos 2017-12-08 00:20:36 UTC
0. IPFire 2.19 (i586) - Core Update 116  (but bug has existed since no-ip changed their domain name.)

1. DDNS update for no-ip.com fails.

/var/log/messages: 
...
ddns[24126]: An update has not been performed because earlier updates failed for somesite.noipdomainname.com
ddns[24126]: Last failure message:
ddns[24126]:   DDNSUpdateError: The update could not be performed
ddns[24126]: Further updates will be withheld until 2017-12-08 02:35:02.142824
...

2. no-ip.com domain has changed to noip.com

3. Changed /usr/lib/python2.7/site-packages/ddns/providers.py

*** /usr/lib/python2.7/site-packages/ddns/providers.py	2017-12-07 17:40:45.608646893 -0500
--- /usr/lib/python2.7/site-packages/ddns/providers.py.noip.fix	2017-12-07 17:40:19.855313792 -0500
***************
*** 1249,1264 ****
  
  
  class DDNSProviderNOIP(DDNSProtocolDynDNS2, DDNSProvider):
! 	handle    = "no-ip.com"
  	name      = "No-IP"
! 	website   = "http://www.no-ip.com/"
  	protocols = ("ipv4",)
  
  	# Information about the format of the HTTP request is to be found
! 	# here: http://www.no-ip.com/integrate/request and
! 	# here: http://www.no-ip.com/integrate/response
  
! 	url = "http://dynupdate.no-ip.com/nic/update"
  
  	def prepare_request_data(self, proto):
  		assert proto == "ipv4"
--- 1249,1264 ----
  
  
  class DDNSProviderNOIP(DDNSProtocolDynDNS2, DDNSProvider):
! 	handle    = "noip.com"
  	name      = "No-IP"
! 	website   = "http://www.noip.com/"
  	protocols = ("ipv4",)
  
  	# Information about the format of the HTTP request is to be found
! 	# here: http://www.noip.com/integrate/request and
! 	# here: http://www.noip.com/integrate/response
  
! 	url = "http://dynupdate.noip.com/nic/update"
  
  	def prepare_request_data(self, proto):
  		assert proto == "ipv4"


4. Also had to clear /var/lib/ddns.db

sqlite3 /var/lib/ddns.db
sqlite> DELETE FROM updates WHERE status = 'failure';
sqlite> .quit
Comment 2 Michael Tremer 2019-11-06 15:25:33 UTC
You cannot change the handle here.

Configuration files will have it configured and now this provider won't be picked for "no-ip.com" any more. So this has to remain what it was before.
Comment 3 Stefan Schantl 2019-11-12 08:06:26 UTC
A big thanks for pointing this up.

I've fixed this issue with the following commit:

https://git.ipfire.org/?p=ddns.git;a=commit;h=c0277eeea2b2c1ed8f40f1248b28438e44e51912