[asterisk-dev] [Code Review] Add #includeif statement

Paul Belanger pabelanger at digium.com
Wed Oct 5 09:47:17 CDT 2011


On 11-10-05 10:41 AM, Tilghman Lesher wrote:
> On Wed, Oct 5, 2011 at 9:32 AM, Paul Belanger<pabelanger at digium.com>  wrote:
>> On 11-10-05 10:21 AM, Jason Parker wrote:
>>>
>>> On 10/04/2011 07:47 PM, Matt Riddell wrote:
>>>>
>>>> What was the original reason that #include started blocking the loading
>>>> of
>>>> modules when the included file was missing?  I've always hated that.
>>>>
>>>
>>> Take the following config setup as an example.
>>>
>>> sip.conf:
>>> #include mypeer.conf
>>> #include yourpeer.conf
>>>
>>> mypeer.conf:
>>> [mypeer]
>>> type=peer
>>> host=10.0.0.2
>>> #include mypeer-secret.conf
>>>
>>> yourpeer.conf:
>>> [yourpeer]
>>> type=peer
>>> host=10.0.0.3
>>> #include yourpeer-secret.conf
>>>
>>> myypeer-secret.conf:
>>> secret=applesauce
>>>
>>> yourpeer-secret.conf:
>>> secret=embiggen
>>>
>>>
>>> The astute may have noticed that there is a typo in the
>>> mypeer-secret.conf.
>>> What would happen if we allowed the config parser to continue?  Very bad
>>> things.
>>>
>>> This is just one of several scenarios that I could think of.  It makes a
>>> lot of
>>> sense to me that if somebody uses a #include, then they absolutely must
>>> have
>>> that file - even if it's empty.
>>>
>> Right, and this approach for #include is fine to be honest.  I don't think I
>> would suggest changing that functionality.  However, if you rely a lot on
>> include files for your asterisk setup, something we currently do with the
>> test-suite, having a lot of empty files lying around clutters up the file
>> system.
>>
>> One of the main reasons #includeif / #sinclude is being suggested is to help
>> an administrator, who understands the differences between the two, cut down
>> on the amount of files that needs to be managed (even if they are empty).
>
> If that's your intent, why not just use the file globbing already in
> the source, i.e.
> #include sippeers-*.conf
>
I can try again, but I was not able to get this working.  The module 
would still fail to load.

-- 
Paul Belanger
Digium, Inc. | Software Developer
twitter: pabelanger | IRC: pabelanger (Freenode)
Check us out at: http://digium.com & http://asterisk.org



More information about the asterisk-dev mailing list