Hi WG,

with this mail, I am again asking for some clarification. This question
may sound silly, but it actually is an issue to me. I am currently
implementing the COOKED server part.

The <entry> element (RFC3195, 4.4.2) contains a number of pre-parsed
entities, like facility, priority, tag, timestamp... The CDATA of the
entry element contains the full, unmodified syslog messages. This is
very useful, as, among others, it allows a -sign message to be
transmitted via 3195.

HOWEVER, I now have situations where wellformed messages actually
contain 2 PRI, tag, timestamp, ..., one in the entry element and one in
the raw message. I think this is the most common case. Question now, how
to handle this intelligently?

Should I return an error if the two values do not match?
Would it be wise to record both if I am a collector?
What should I do if they are different and I am a relay and need to
forward via e.g. 3195/RAW (because COOKED is not available on the remote
peer)?

One solution is:

If I am a relay and forward to another peer via COOKED, than the
duplicates can be preserved.
If I am a relay and forward to a peer via RAW or a 3164 syslogd,
  - I will discard the entry paramters if the message
    (CDATA) is wellformed
  - I use the entry parameters if the CDATA is not well-formed
    and thus modify the CDATA (much like 3164's relay roles)
If I am a collector, I either store
  - both sets of values
  - or just the raw CDATA
  - or as described for a relay depending on the well-formedness
    of the CDATA

I wonder if someone can actually point my to the "spirit of COOKED", you
know, the philosophy that isn't written down ;)

I also notice that 3195 contains detailled instruction of how to modify
a non-wellformed message when it is being converted for being relayed by
COOKED. But it does contain no instructions what to do if that message
is received via COOKED and needs to be relayed via 3164 or 3195/RAW.
Maybe this is something for the next revision.

Thanks,
Rainer


Reply via email to