-
-
Notifications
You must be signed in to change notification settings - Fork 141
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
no-ip: invalid base64 encoding of passwords with special characters #211
Comments
Try putting the password in double quotes, like this:
The I recently commented out the encoded debug message you need. But if you run an earlier version it should be logged if you run inadyn with |
I'm seeing the same behaviour, no DDNS response and there's no change actioned on No-Ip's side. However unlike hancockks I'm using a password with no special characters, plain alpha numeric (tried with and without double quotes). This had been working fine for the last few months, is there an API change on No-IP's side perhaps? |
@dakaix Have you tried running inadyn in the foreground with The API is defined here, https://www.noip.com/integrate/request and it looks to me that it's the same as before. Exact same as Dyn et al. The code is in |
@troglobit Indeed, nothing hugely interesting in there (sanitised output below). My account on No-IP looks OK, there's no obvious message stating any rate-limiting is occurring. Although interestingly if I manually perform an API request with a new IP it returns stating there's no change required... and yet the My Account page (and a DNS query) shows the old IP remains. root@nas:~ # /usr/local/sbin/inadyn -n -l debug inadyn[14045]: Checked my IP, return code: 0 {New IP} inadyn[14045]: Successfully sent DDNS update using HTTPS! |
@dakaix I had the same results after changing my password to work around the issue (before the quotes suggestion was posted). I'm not sure if it's a latency issue between the back end and the UI... |
@dakaix I think I'm starting to understand what's going on here. I'm assuming you're using the OpenSSL backend and not GnuTLS? OpenSSL is the only code path that seems plausible, because ... ... The transaction with the server is in two phases: 1) send the HTTP GET string, and 2) wait for and receive reply. After 1) there is the debug message "Successfully sent ...", this is printed on success. But in 2) there no such message, which by looking at the code (openssl.c) there should be, which in turn seems to indicate there was an error. Unfortunately Inadyn doesn't print the OpenSSL error, that code path is still TODO. Either way, the front-end should check the reply from the back-end only attempt to show the reply on success. |
On error we should print a warning to the log and notify the user we're going to retry again (soon). Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
This patch adds support for reading, and emptying, the OpenSSL error queue in case SSL_connect(), SSL_read(), or SSL_write() fails. Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
I've pushed some changes related to this. Would be great if someone could test it. See https://github.com/troglobit/inadyn/#building-from-git for details on building from Git. |
You can almost hear the crickets ... last call, if anyone can test the fixes I've pushed I'd be really grateful! A new release, including these fixes, will be out in a couple of days now, and this issue will be closed due to inactivity unless someone pipes up. |
Closing due to lack of feedback to fixes. |
cat /usr/local/etc/inadyn.conf
period = 432000
provider default@no-ip.com {
username = myusername
password = password#hash
hostname = { "test.com" }
}
inadyn[5411]: Sending alias table update to DDNS server: GET /nic/update?hostname=test.com&myip=XX.XX.XX.XX HTTP/1.0
Host: dynupdate.no-ip.com
Authorization: Basic bXl1c2VybmFtZTpwYXNzd29yZA==
User-Agent: inadyn/2.2 https://github.com/troglobit/inadyn/issues
inadyn[5411]: Successfully sent DDNS update using HTTPS!
inadyn[5411]: DDNS server response:
Note two errors here:
Additionally, I cannot verify whether the username:password@ is being correctly encoded in the URL. Any special characters in the password would have to be html escaped, in the above case http://myusername:password%23hash@dynupdate.no-ip.com
The text was updated successfully, but these errors were encountered: