[asterisk-dev] Opinions Needed: Case sensitivity in config file section names
Richard Mudgett
rmudgett at digium.com
Tue Sep 23 11:05:30 CDT 2014
On Tue, Sep 23, 2014 at 10:51 AM, George Joseph <george.joseph at fairview5.com
> wrote:
> On Tue, Sep 23, 2014 at 9:45 AM, George Joseph <
> george.joseph at fairview5.com> wrote:
>
>> I've been working on some changes for config.c and in the process I've
>> found 5 instances of someone attempting to do "cat->name == category_name"
>> instead of "strcmp(cat->name, category_name)". Example:
>>
>> /* try exact match first, then case-insensitive match */
>> for (cat = config->root; cat; cat = cat->next) {
>> if (cat->name == category_name && (ignored || !cat->ignored))
>> return cat;
>> }
>>
>> for (cat = config->root; cat; cat = cat->next) {
>> if (!strcasecmp(cat->name, category_name) && (ignored || !cat->ignored))
>> return cat;
>> }
>>
>> The result is that the case sensitive match never succeeds and it's
>> always the case insensitive match that's run.
>>
>> My question is... Should I fix these so the case sensitive match works
>> and runs first or just remove the first loop so the match is always
>> case-insensitive? I'm hoping the latter not only because it makes the
>> code simpler but because that's how it's worked for years and suddenly
>> making the match case sensitive might cause unexpected problems.
>>
>> Thoughts?
>>
>> Forgot to mention...There are other places in the code where the
> comparison is always case-insensitive.
>
I was under the impression that the code was done this way
initially to avoid doing a string comparison. Though, I'm not
sure avoiding the string comparison really buys much in the
way of performance anyway.
Another reason is if you have several sections named [foo]
and you need to resume with the same [foo] section as last
time.
Richard
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20140923/8bf9cbc8/attachment.html>
More information about the asterisk-dev
mailing list