David,
As far as docs go, when i went into documentation for liblognorm.com, i
found
http://www.liblognorm.com/files/manual/index.html

Which includes string-to. That said, I know it's there because I put the
function in, and if you have a suggestion as to better document the
functions, that could lead to a wider acceptance of libnorm.
t

On Thu, Mar 12, 2015 at 1:36 AM singh.janmejay <[email protected]>
wrote:

> It never goes back up because if any other rule was going to match the
> current line, it would be a subtree of the current node (this is an
> invariant).
>
> It does try all sub-trees from any node before giving up. It first
> tries all field-nodes, then appropriate literal-node.
>
> In this case anything at the end will be matched by rest, the only
> thing that rest will not match is string with 0 length, which the next
> rule won't match anyway.
>
> About 0-length suffix, I want to think a bit about how to support it
> with descent. As of now it expects a remaining-text field.
>
> Im unsure if this answers your question though.
>
> On Thu, Mar 12, 2015 at 1:05 PM, David Lang <[email protected]> wrote:
> > On Thu, 12 Mar 2015, singh.janmejay wrote:
> >
> >> On Thu, Mar 12, 2015 at 9:19 AM, David Lang <[email protected]> wrote:
> >>>
> >>> On Thu, 12 Mar 2015, singh.janmejay wrote:
> >>>
> >>>> Tried re-ordering it? Put the one with /port first?
> >>>
> >>>
> >>>
> >>> no, lognorm rules are not supposed to be order dependent, so I didn't
> try
> >>> that (especially after finding things failing to parse with rsyslog
> that
> >>> worked manually)
> >>
> >>
> >> In case of input strings being matching-rule-wise disjoint, you are
> >> right, order won't matter. But when they are not disjoint, order does
> >> matter, because the first one to match the string wins.
> >>
> >> Consider this rulebase:
> >> rule=:%ip:ipv4%%last:rest%
> >> rule=:%ip:ipv4%%junk:char-sep:/%/%port:number%
> >>
> >> If you write it the way I have above, you'll end up matching first
> >> rule for input 10.20.30.40/5
> >
> >
> > but when it can't find a match for / and has to undo the match and go
> back
> > up the tree, why doesn't it try the next possible match? (repeating as
> > needed until it has tried all possible branches of the tree)
> >
> > David Lang
> >
> >
> >> But if you write it this way:
> >> rule=:%ip:ipv4%%junk:char-sep:/%/%port:number%
> >> rule=:%ip:ipv4%%last:rest%
> >>
> >> You'll end up matching the first one.
> >>
> >> I know it appears order independent for your original rulebase, but
> >> that is because fields are always tried first(in preference to
> >> subtrees hanging off literals), and rest is a field, while '/' creates
> >> a  litteral-subtree.
> >>
> >>>
> >>>> Yes, rest must get atleast one char to succeed. I'll create some new
> >>>> tests without rest-capture (and see what fails).
> >>>
> >>>
> >>>
> >>> Ok, this can be worked around (but it's a bit ugly), any reason why
> rest
> >>> has
> >>> to get at least one character?
> >>
> >>
> >> Yep, its annoying, it happens only for last token.
> >>
> >> The reason is, parsed-fragment length >= input-string is used as a
> >> termination condition for ln_normalize recursion (see ln_normalizeRec)
> >> and the last token identified when recursion terminates is not the
> >> terminal-node, so its not considered a complete match(one that goes
> >> till leaf of ptree).
> >>
> >>>
> >>> David Lang
> >>>
> >>>
> >>>> On Thu, Mar 12, 2015 at 1:09 AM, David Lang <[email protected]> wrote:
> >>>>>
> >>>>>
> >>>>> I just upgraded to liblognorm 1.1.1 (unfortunantly I didn't get a
> >>>>> chance
> >>>>> to
> >>>>> compile it myself and test it earlier)
> >>>>>
> >>>>> I ran into two problems
> >>>>>
> >>>>> first, %last:rest% does not match if there is nothing left on the
> line
> >>>>>
> >>>>> i.e. a line that ends with an IP address will not match
> >>>>> rule=:%ip:ipv4%%last:rest%
> >>>>>
> >>>>> secondly, liblognorm is selecting the rule that matches the least
> >>>>> amount
> >>>>> of
> >>>>> the message.
> >>>>>
> >>>>> so with these two rules
> >>>>>
> >>>>> rule=:%ip:ipv4%%last:rest%
> >>>>> rule=:%ip:ipv4%/%port:number%%last:rest%
> >>
> >>
> >> I guess the hack I proposed above (using char-sep) can unblock you for
> >> now, unless you hate its aesthetics too much :-).
> >>
> >>>>>
> >>>>> 192.168.1.1/5 will get matched by the first rule, with '/5' in last,
> >>>>> even
> >>>>> though the second rule would match it. If I remove the first rule,
> the
> >>>>> second rule does match and the parse succeeds.
> >>>>>
> >>>>> David Lang
> >>>>>
> >>>>>
> >>>>> On Fri, 6 Feb 2015, David Lang wrote:
> >>>>>
> >>>>>> While I'm working to build packages of this to test with, what
> happens
> >>>>>> if
> >>>>>> you descend into a ruleset like the following
> >>>>>>
> >>>>>> rule=:%ip:ipv4%%last:rest%
> >>>>>> rule=:%ip:ipv4%/%port:number%%last:rest%
> >>>>>>
> >>>>>> will it work to find the match that has the least left in last?
> >>>>>>
> >>>>>> David Lang
> >>>>>>
> >>>>>>
> >>>>>> On Fri, 6 Feb 2015, singh.janmejay wrote:
> >>>>>>
> >>>>>>> It's going to be in the coming release, just master build for now.
> >>>>>>>
> >>>>>>> --
> >>>>>>> Regards,
> >>>>>>> Janmejay
> >>>>>>>
> >>>>>>> PS: Please blame the typos in this mail on my phone's uncivilized
> >>>>>>> soft
> >>>>>>> keyboard sporting it's not-so-smart-assist technology.
> >>>>>>>
> >>>>>>> On Feb 6, 2015 6:37 AM, "David Lang" <[email protected]> wrote:
> >>>>>>>
> >>>>>>>> On Wed, 4 Feb 2015, singh.janmejay wrote:
> >>>>>>>>
> >>>>>>>>  On Wed, Feb 4, 2015 at 6:22 PM, David Lang <[email protected]>
> wrote:
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>  On Wed, 4 Feb 2015, singh.janmejay wrote:
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>  On Wed, Feb 4, 2015 at 7:17 AM, David Lang <[email protected]>
> wrote:
> >>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>  Field type 'descent' does this, but not exactly in the same
> >>>>>>>>>>>> way.
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>> does it? I understood it to just be calling another ruleset on
> the
> >>>>>>>>>> whole
> >>>>>>>>>> line (doc problem again)
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>> It allows field to identify how remaining-text should be
> returned,
> >>>>>>>>> which
> >>>>>>>>> allows it to be parsed by remaining part of the rule which the
> >>>>>>>>> field
> >>>>>>>>> belongs to.
> >>>>>>>>>
> >>>>>>>>> Here is a test which uses something similar to what you are
> trying
> >>>>>>>>> to
> >>>>>>>>> do:
> >>>>>>>>> https://github.com/rsyslog/liblognorm/blob/master/tests/
> >>>>>>>>> field_tokenized_recursive.sh#L41
> >>>>>>>>>
> >>>>>>>>> (check 41 to EOF)
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>> This looks like it may do this, but it looks like it's not in the
> >>>>>>>> release
> >>>>>>>> yet. I'll have to compile from scratch.
> >>>>>>>>
> >>>>>>>> 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.
> >>>>>>>>
> >>>>>>> _______________________________________________
> >>>>>>> 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.
> >>>>>>>
> >>>>>> _______________________________________________
> >>>>>> 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.
> >>>>>>
> >>>>> _______________________________________________
> >>>>> 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.
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>> _______________________________________________
> >>> 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.
> >>
> >>
> >>
> >>
> >>
> > _______________________________________________
> > 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.
>
>
>
> --
> Regards,
> Janmejay
> http://codehunk.wordpress.com
> _______________________________________________
> 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.
>
_______________________________________________
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