As indicated in my original email, there is no way to call it all the
time.  You can't call the existing API release function when using
TSRemap(From|To)UrlGet().

The need to delete/release introduces ownership (owning vs. weak
references/pointers) which can be complex and should be avoided when
possible.

On Wed, Sep 4, 2019 at 9:16 PM vijay mamidi <vijaybhaskar.mam...@gmail.com>
wrote:

> 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