I am sorry for the delayed response.

I am -0 on this.  I think having one API which is supposed to be called all
the time(even if it is a no-op) is less complicated than having an API to
be called at certain times.

Thanks,
Vijay

On Tue, Sep 3, 2019 at 3:56 PM Walt Karas <wka...@verizonmedia.com> wrote:

> OK then barring further input, I guess I will replace TSMLoc with TSMsgLoc,
> TSUrlLoc and TSMimeFldLoc. TSHandleMLocRelease() will be removed,
> TSHandleMimeFldLocRelease() will be added.  TS API functions that currently
> deal with MIME header mlocs will be changed to deal with TSMsgLoc.
>
> Since this goes beyond adding a function to the C API, the change can't be
> backported into 9.  Thus it won't be possible to backport
> https://github.com/apache/trafficserver/pull/5812 into 9.
>
> On Tue, Sep 3, 2019 at 12:14 PM Walt Karas <wka...@verizonmedia.com>
> wrote:
>
> > Currently a TSMLoc can be a message, a MIME header, a URL, or a MIME
> > header field.  It does make sense to have TS API functions that operate
> on
> > a MIME header, but can also accept a message mloc and retrieve the MIME
> > header object from it.  InkAPI.cc is able to do run-time validation that
> > the right sort of mloc is passed to TS API functions.  So it isn't so cut
> > and dried that it's worth forcing all the rework to existing plugins to
> > break up TSMLoc into multiple types.
> >
> > On Sat, Aug 24, 2019 at 8:36 AM Alan Carroll <
> > solidwallofc...@verizonmedia.com> wrote:
> >
> >> I thought when we discussed this you were going to segregate these by
> >> type.
> >> One might consider splitting the current TSMLoc in to TSHdrLoc and
> TSMLoc,
> >> the latter requiring a release. I agreed with your view that it was best
> >> to
> >> have distinct types to avoid confusion about what should be passed to
> >> which
> >> API functions.
> >>
> >> On Thu, Aug 22, 2019 at 12:06 PM Walt Karas <wka...@verizonmedia.com
> >> .invalid>
> >> wrote:
> >>
> >> > Nominally, plugins are supposed to call TSHandleMLocRelease() for all
> >> > TSMLoc values returned by the API.  But in practice it is only
> >> necessary to
> >> > call it for TSMLoc values that refer to MIME header fields:
> >> >
> >> >
> >> >
> >>
> https://github.com/apache/trafficserver/blob/d75af6f2eb6c63aa216111bd7f477f1f4c775580/src/traffic_server/InkAPI.cc#L2046
> >> >
> >> > This adds significant complexity to plugin code.  In some cases, the
> API
> >> > itself forces plugins to ignore the nominal need to call the release
> >> > function for TSMLoc values that don't refer for MIME header
> >> > fields.  TSRemapFromUrlGet() and TSRemapToUrlGet() returns TSMLoc
> >> values,
> >> > but not a TSMBuffer value, making it impossible release the TSMLoc
> >> values.
> >> > I propose adding the API function:
> >> >
> >> > void TSMimeHdrFieldMLocRelease(TSMbuffer, TSMLoc);
> >> >
> >>
> >
>

Reply via email to