Hello,
To my mind, admin tasks such as conf file customization, should be performed by admin scripts, not app running in admin mode.
With GnuWin32 sed AND echo commands, things are really simple :
stunnel.conf :
cert = %USERPROFILE%\.config\my.pem (windows)output = %APPDATA%\stunnel.log (windows)
script "envsed.bat" on Windows :
cat stunnel.conf | ^sed -r -e "s/^(.*)$/C\:\\Progra~2\\GnuWin32\\bin\\echo.EXE \1/e"
every envvar "à la windows" is expanded ....
Will work the same in Linux.
If we really modify stunnel to do that job, I recommend to (try to) use stubs for WCE trying to keep one main code, and keeping an acceptable behavior in WCE,
instead of playing with #if WCE #else etc ...
Another way to proceed is that stunnel recognizes a very small set of "pseudo-envvars", like eg we can find in samba conf files,
such as, eg, %u for current user home folder, and that it expands (or "translate") internally with its own logic (of course using system calls if needed),
but in any case, stunnel has to do some work for tokenization, something that I think dangerous :
it would not be good that stunnel expands ANY envvar, known or UNKNOWN, without being able to predict the effects on its execution.
Moreover, envars can be modified on the fly in an unpredictable way: what if stunnel reloads the conf after an envvar change ?
if it even does NOT detect the change, there may be issues ...and if it detects the change and reloads, there may be other issues...
Anyway, for the purpose of having multiple stunnel processes, running in user space, started from USER command line, it does not appear clear to me why an admin should create the USER conf files...the USER should be aware of what is he/she doing with stunnel?
and it is not clear why and HOW multiple users, logged-on on the ?same? machine, each working in USER SPACE, should run stunnel simultaneously ...
Question is also : if stunnel is running as a service, how will it deal with conf file containing ENVVARS, and what interest for this as system-wide stunnel just need one unique conf file.