On Mon, 21 Oct 2013, Rainer Gerhards wrote:

On Mon, Oct 21, 2013 at 12:32 PM, David Lang <[email protected]> wrote:

On Mon, 21 Oct 2013, Rainer Gerhards wrote:


That previous discussion was wrong, it is $$!var!var - and it does not
give
the ref to $var, but it's value.


hmm, I had a problem where I was trying to set var2 = $$!var1 and then
delete var1 and the result was that once var1 was deleted, var2 had no
value, if var1 wasn't deleted, var2 had a value. when I posted about it,
I
was told to change $$ to $ (I'll have to go back and dig up the e-mail
for
the exact syntax that I used), and changing to a single $ on the right
side
caused everything to work properly after var1 was deleted.



yeah, that's a big confusion that I created, sorry for that. If you look
at
git logs, you'll even see that there are a couple of regression fixes
undoing what an other one did which than got undone... This is what I
checked this morning when I remembered that there was something in this
area recently. I *think* the bottom problem is that I did not fully obey
the $<propname> rule, and after initial review it looks so (and so I did
another regression fix that undoes what the previous one did, and I am 98%
sure it is right this time). Get to understand with what I mean with "I
need a break and the code propbably some refactoring"?


Yep, this sounds like something for you to fix tomorrow, or at least after
you have taken a break to clear your mind. People are just starting to try
and use this, but once they start using it, changing it will break configs.
right now the documentation (on rsyslog.com and the ;login article) all
use a single $. so my tendancy would be to make the docs work :-) but if
this can't be done, now is the time to change things, we just need to make
things consistant between the three variable classes



consistency depends on how you look at it :-(

if we support $/zz for global var and $msg in script (instead of $$/zz),
the string templates are inconsistent, because they have $/zz and "msg".
The core idea when I wrote the script engine was that $ prefixes
properties, so that this goes along with the documented properties. If we
change that, we need to use different property names in templates and
script :-(

but... I think I won't discuss this any further today, bears not fruit in
my state of mind ;)

for you to think about tomorrow :-)

you already have

template

%hostname%
%$myhostname%
%$!%

and script

$hostname
$myhostname (instead of $$myhostname)
$!

so while I don't really like the template stuff not matching the scripting stuff, it's already inconsistent, and I think it's better to be consistent within the scripting than to have some of them be $<what you would use in a template> and some consolodating $$ into $

right now the parser can deal with things with a single $ without any ambiguity, you are unlikely to add many more properties, so it's unlikely to get significantly worse.

David Lang
_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com/professional-services/
What's up with rsyslog? Follow https://twitter.com/rgerhards
NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of 
sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE 
THAT.

Reply via email to