Closed mgrandi closed 2 years ago
Agreed, this is a bug. At a minimum. it should be added to the documentation as "Known Bugs" or so. Actually fixing is possible if/when resolving #23. It might be possible to add add some escaping or storing using base64 or so.
This is actually a known limitation in the python netrc module, see the docs
I have added notes to ddupdate.8 and ddupdate-config.8 about this.
Real fixes must be postponed until #23 is resolved. With a backend which handles more general stuff we should be able to handle iit in the script as well.
After #23 being merged it's now possible to set the password for a service using ddupdate --set-password <host> <username> <pw>
. This should be a usable work-around although there is certainly still work to do with ddupdate-config
@mgrandi: what exactly does "complicated" mean in this context?
/ _ " ( ! { Are the characters in the password I used but it could really be any symbol that needs to be escaped in bash
In the context of current devel, this seems to be a backend-specific issue for netrc. Using the new keyring backend everything seems to work.
I will try to make a fix for the netrc backend which stores the password base64-encoded, stay tuned
This might break if some user out there has created a password which could be base64-decoded without errors, but this is a risk I guess we could take. If it becomes an issue the fix would to just re-enter the password, either using ddupdate -p
or by running ddupdate-config
again which is what I guess most users just would try anyway.
There is no bash involved, all scripts are pure python, so this is only about the netrc backend.
yeah, originally, i think it had some bash script to patch .netrc (/tmp/tmplpessltr: 8: Syntax error: "fi" unexpected (expecting "then")
hence why i brought it up, but sounds good
a password with characters that need to be bash escaped don't work