On 12/22/2017 01:07 PM, Markus Armbruster wrote:
Eric Blake <[email protected]> writes:
On 12/19/2017 08:20 AM, Max Reitz wrote:
So there are three things:
(1) We probably should not allow snapshot names that could be IDs.
Easiest way to solve this: Names have to start with a non-digit.
Yes, that would be a nice change. It is not strictly backwards
compatible (so we'd still have to cope with images that didn't follow
the rule, whether created by older qemu or by non-qemu implementations
of qcow2), but would alleviate a lot of confusion.
I recommend to restrict ID strings to letters, digits, '-', '.', '_',
starting with a letter. Use id_wellformed() to check.
char *id_generate(IdSubSystems id) autogenates ID in the format eg-
"#block146" with starting with '#' always.
restricting ID strings to use id_wellformed() means we need to force ID
to start with letter.
#define ID_SPECIAL_CHAR '#' needs to change to (some letter)
#define ID_SPECIAL_CHAR 'A'
If backward compatibility is an issue, deprecate offending IDs (with a
suitable warning), and kill them off after the customary grace period.
IDs embedded in image files and such you may have to keep working
somehow indefinitely.