I'm curious to know the use case, if any, in where one'd care if a "default" 
value for a setting came from the source code or from records.config. 

Consequently, I wonder if it is sufficient to know that a given setting has a 
"default" value or a non-default value.

It might also be helpful if you can enumerate the possible combinations of 
values and the corresponding source/explicit value that they mean.

- Sudheer

> On Nov 21, 2016, at 12:52 PM, Alan Carroll 
> <solidwallofc...@yahoo-inc.com.INVALID> wrote:
> 
> No, they behave very differently. If you have a config variable in 
> RecordsConfig.cc and it's not mentioned in records.config you get 
> REC_SOURCE_DEFAULT. If you have a plugin created config variable that is not 
> in records.config you get REC_SOURCE_EXPLICIT. In both cases if the value is 
> in records.config you get REC_SOURCE_EXPLICIT. So for a built in it is 
> detectable if the value is in records.config, but not detectable for a plugin 
> created variable. 
> 
>    On Monday, November 21, 2016 2:34 PM, James Peach <jpe...@apache.org> 
> wrote:
> 
> 
> 
>> On Nov 21, 2016, at 11:50 AM, Alan Carroll 
>> <solidwallofc...@yahoo-inc.com.INVALID> wrote:
>> 
>> No, the source is REC_SOURCE_EXPLICIT even if the variable is not mentioned 
>> in records.config. How else can a plugin tell if a config variable it 
>> creates has a value in records.config?
> 
> I think I’m confused about what you are proposing then. It sounds like 
> configuration records used by plugins behave just like configuration records 
> used by traffic_server. Is that the case? If so, it sounds like correct 
> behavior to me. If not, what is the problem that you are addressing here?
> 
>>   
>> 
>>     On Monday, November 21, 2016 12:21 PM, James Peach <jpe...@apache.org> 
>> wrote:
>> 
>> 
>> 
>>> On Nov 21, 2016, at 9:14 AM, Alan Carroll 
>>> <solidwallofc...@yahoo-inc.com.INVALID> wrote:
>>> 
>>> REC_SOURCE_EXPLICIT - see TSMgmtStringCreate in InkAPI.cc (around line 
>>> 8896). That is the same value as setting the value in a configuration file.
>> 
>> That sounds correct to me. The value was set in a configuration file and is 
>> being consumed by a plugin.
>> 
>>>     On Monday, November 21, 2016 10:29 AM, James Peach <jpe...@apache.org> 
>>> wrote:
>>> 
>>> 
>>> 
>>>> On Nov 21, 2016, at 7:20 AM, Alan Carroll 
>>>> <solidwallofc...@yahoo-inc.com.INVALID> wrote:
>>>> 
>>>> The config variable sourcing data was originally put in to be able to 
>>>> detect that a variable was set even if that setting was the same as the 
>>>> default (otherwise this is impossible to reliably determine). I am working 
>>>> with a plugin that defines its own config records but as far as I can tell 
>>>> (1) the source value for a plugin configured record default is the same as 
>>>> for an explicitly set value and (2) the source information is not 
>>>> available via the plugin API.
>>> 
>>> What is the source when you specify a record in records.config, then 
>>> register it from a plugin?
>>> 
>>>> I would like to fix both of these.
>>>> First, add a "PLUGIN" value to RecSourceT to indicate the value is set as 
>>>> a default by the plugin and use EXPLICIT only for values from 
>>>> configuration files or explicit value setting API calls.
>>>> Second,
>>>> * Move or copy the RecSourceT define to apidef.h.in.* Add 
>>>> TSMgmtSourceGet(const char*) to return the RecSourceT value for a 
>>>> configuration variable.
>>>> 
>>> 
>>> 
>> 
>> 
> 
> 

Reply via email to