Re: Unique entry checker for config group...
Aarno Syvänen <[email protected]>
| Newsgroups | gmane.comp.mobile.kannel.devel |
|---|---|
| Message-ID | <[email protected]> |
Can you use dict_put_once ? Semantic of it seems to be what you needed.
Aarno
On 15.8.2005, at 16.50, Alexander Malysh wrote:
> Hi,
>
> patch looks ok. Please fix indents and I will commit it.
>
> Thanks,
> Alex
>
> Wilfried Goesgens schrieb:
>
>> as of kannel at the moment overwrites duplicate entries with the
>> last occurance I 've locked up my sim another time. I think,
>> ignoring valid values in a config file is a bad behaviour, and if
>> valid
>> values occure twice, this is worth a panic, and the user should be
>> hit with the nose to the ground, to review it's config before
>> firing up a kannel configured
>> wrong.
>> so here's the patch to panic if the configvalue occurs a second time:
>> ndex: cfg.c
>> ===================================================================
>> RCS file: /home/cvs/gateway/gwlib/cfg.c,v
>> retrieving revision 1.30
>> diff -u -r1.30 cfg.c
>> --- cfg.c 11 Feb 2005 15:35:48 -0000 1.30
>> +++ cfg.c 15 Aug 2005 13:29:51 -0000
>> @@ -652,7 +652,20 @@
>> void cfg_set(CfgGroup *grp, Octstr *varname, Octstr *value)
>> {
>> - dict_put(grp->vars, varname, octstr_duplicate(value));
>> + Octstr *check = (Octstr*)dict_get(grp->vars, varname);
>> + if (check == NULL){
>> + dict_put(grp->vars, varname, octstr_duplicate
>> (value));
>> + }
>> + else {
>> + Octstr *groupname=(Octstr*)dict_get(grp->vars,
>> octstr_imm("group"));
>> + panic(0, "Duplicate entry '%s' with values '%s|%s' in
>> group %s, %s. Aborting!", + octstr_get_cstr
>> (varname),
>> + octstr_get_cstr(check),
>> + octstr_get_cstr(value),
>> + octstr_get_cstr(groupname),
>> + octstr_get_cstr(grp->configfile));
>> +
>> + }
>> }
>> Willi
>>
>
>
>