[squid-dev] [PATCH] Older response must not update
Alex Rousskov
rousskov at measurement-factory.com
Thu Aug 25 17:05:28 UTC 2016
On 08/25/2016 08:18 AM, Eduard Bagdasaryan wrote:
> 2016-08-24 18:20 GMT+03:00 Amos Jeffries <squid3 at treenet.co.nz>:
>
>> in src/LogTags.cc:
>> * instead of adding new enum entry please extend LogTags with a new bool
>> flag and the c_str() to append the "IGNORED" when that flag is true.
> Added a new LogTags::ignored for this.
The naming of things in logging code is exceptionally poor so please do
not feel upset that you got this wrong. The "_IGNORED" flag Amos is
talking about should go into LogTags::Errors.
I recommend renaming and re-documenting that subclass:
/// Things that may happen to a transaction while it is being
/// processed according to its LOG_* category. Logged as _SUFFIX(es).
/// Unlike LOG_* categories, these flags may not be mutually exclusive.
class Flags
{
...
bool ignored; ///< _IGNORED: the response was not used for anything
bool timedout; ///< _TIMEDOUT: terminated due to a lifetime or I/O
timeout
bool aborted; ///< _ABORTED: other abnormal termination (e.g., I/O error)
} flags;
This does not fix all the problems, but reduces the confusion
considerably IMHO.
> I wonder whether the
> LogTags assignment operator should copy this member too.
Which assignment operator?
* The compiler-generated assignment operator will copy all members
automatically, of course.
* The explicitly-defined LogTags_ot conversion assignment operator is
already buggy or dangerous. It should be removed. Whether it was meant
to clear the flags, I do not know, unfortunately. I recommend leaving it
as is because fixing it is out of scope and may not be trivial. Adding
an "XXX: this operator does not reset flags" and "TODO: either replace
with a category-only setter or remove" comments would be appropriate.
HTH,
Alex.
More information about the squid-dev
mailing list