Escape mount string in metadata in libshout (or allow user to specify a different string)
In shout.c, the same string is used for both the mountpoint in the metadata URI and the mountpoint itself. This causes an issue when the string contains characters that could be parsed incorrectly (i.e. a URI with a querystring), because the mountpoint specified in the metadata no longer correlates to the mountpoint that was created. In our case, we have a string that needs to be escaped in the metadata URI only.
I was thinking shout_t could have a separate property for the metadata mount string (and a corresponding setter the user could call), and if it isn't set when shout_set_metadata() is called, then the function uses the original mount property.
Another solution to our problem specifically would always escaping the single mount string for the metadata string, but I think the solution above is more general. (Think, for instance, if a user wanted to send querystring parameters with the SOURCE call, but truncate it to just the resource in the metadata)
I could write a quick patch for either, but I wanted to get your input first.