> This is the approach that the recent TSHttpTxnCacheLookupUrlGet API took. We > should take a consistent approach across the API. Its confusing and harder > than necessary when some APIs take strings and some take TS objects.
As I wrote on the second to last mail, I guess the URLs would come from out of TS APIs. So if we require TSMLoc, it means plugin developers need to create a TSMBuffer somehow and pass a offset to a URL, to just pass a URL. Is this really convenient to plugin developers? > Why did you want to overload it? I tried to provide two APIs, URL object version and string version. One is for a case that a URL comes from other TS APIs, and another one is for a case that a URL comes from out of TS APIs. On Thu, Aug 18, 2016 at 5:20 AM, James Peach <jpe...@apache.org> wrote: > >> On Aug 17, 2016, at 9:36 AM, Masakazu Kitajo <mas...@apache.org> wrote: >> >> I realized that URL class isn't exposed as a part of TS API. None of >> APIs receive it explicitly, and TSMLoc is used instead. > > This is the approach that the recent TSHttpTxnCacheLookupUrlGet API took. We > should take a consistent approach across the API. Its confusing and harder > than necessary when some APIs take strings and some take TS objects. > >> Also, I >> couldn't overload the API because it's not C++ but C. > > Why did you want to overload it? > >> >> So, I think passing URLs as strings is a reasonable way, and it is the >> only option for now. >> >> I'm going to start writing documentation this weekend and merge the >> Pull Request by next weekend. Please comment if you have any thoughts. >> This would be the final call since there's no responses in last 10 >> days. >> >> Thanks >> >> >> >> On Sat, Aug 6, 2016 at 6:13 PM, Masakazu Kitajo <mas...@apache.org> wrote: >>> What do you think about providing the both interfaces? >>> >>> I'm fine with passing URL objects internally. However, I guess there >>> are cases that URL strings comes from out of TS APIs such as >>> databases, results of some processing, etc. Though people can create >>> URL objects easily, it needs few more boring codes in every plugins. >>> >>> >>> On Sat, Aug 6, 2016 at 12:08 AM, Leif Hedstrom <zw...@apache.org> wrote: >>>> >>>>> On Aug 4, 2016, at 8:15 PM, James Peach <jpe...@apache.org> wrote: >>>>> >>>>> >>>>>> On Aug 1, 2016, at 12:18 AM, Masakazu Kitajo <mas...@apache.org> wrote: >>>>>> >>>>>> Hi all, >>>>>> >>>>>> I'd like to add a new API to support Server Push[1] introduced by HTTP/2. >>>>>> >>>>>> void TSHttpTxnServerPush(TSHttpTxn txnp, const char *url, int url_len) >>>>> >>>>> I think the direction we are moving in is to pass URLs as URL objects >>>>> rather than strings. >>>> >>>> >>>> Definitely. >>>> >>>> — leif >>>> >>>>> >>>>>> >>>>>> This allows plugins to push contents with Server Push mechanism >>>>>> supported by client session protocols. Currently, the API can be used >>>>>> with HTTP/2 sessions but it will be used with QUIC[2] sessions too in >>>>>> the future. >>>>>> >>>>>> I think the API should be marked as experimental, and it need to be >>>>>> brushed up with practical use cases. However, at least, it should >>>>>> satisfy the simple approaches discussed on TS-3474. >>>>>> >>>>>> JIRA: >>>>>> https://issues.apache.org/jira/browse/TS-3474 >>>>>> >>>>>> Pull Request: >>>>>> https://github.com/apache/trafficserver/pull/833 >>>>>> >>>>>> [1] https://tools.ietf.org/html/rfc7540#section-8.2 >>>>>> [2] >>>>>> https://tools.ietf.org/html/draft-shade-quic-http2-mapping-00#section-9 >>>>>> >>>>>> Thanks, >>>>>> Masakazu >>>>> >>>> >