> On Nov. 20, 2014, 11:53 a.m., Mark Michelson wrote: > > branches/12/main/sorcery.c, lines 144-145 > > <https://reviewboard.asterisk.org/r/4185/diff/2/?file=69147#file69147line144> > > > > Admittedly, I haven't used regex in C much, but looking at man pages, > > why have you elected to use a heap-allocated pointer for name_regex? Using > > a regex_t struct here seems like it would work better since you don't have > > to worry about an allocation failure and would have the regex_t stored > > directly with the ast_sorcery_object_field, as opposed to elsewhere in > > memory.
As Josh pointed out, non-regex situations are much more prevalent so I didn't want every field to pay the memory penalty for a regex_t structure. Also there's no way to reliably determine if a regex_t has a valid compiled regex in it so the pointer is also the test for a valid regex. - George ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviewboard.asterisk.org/r/4185/#review13834 ----------------------------------------------------------- On Nov. 20, 2014, 11:17 a.m., George Joseph wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviewboard.asterisk.org/r/4185/ > ----------------------------------------------------------- > > (Updated Nov. 20, 2014, 11:17 a.m.) > > > Review request for Asterisk Developers, Joshua Colp and Mark Michelson. > > > Bugs: ASTERISK-24520 > https://issues.asterisk.org/jira/browse/ASTERISK-24520 > > > Repository: Asterisk > > > Description > ------- > > As a result of https://reviewboard.asterisk.org/r/3305, res_sorcery_realtime > was tossing database fields that didn't have an exact match to a sorcery > registered field. This broke the ability to use regexes as field names which > manifested itself as a failure of res_pjsip_phoneprov_provider which uses > this capability. It also broke handling of fields that start with '@' in > realtime but I don't think anyone noticed. > > This patch does the following... > Modifies ast_sorcery_fields_register to pre-compile the name regex. > Modifies ast_sorcery_is_object_field_registered to test the regex if it > exists instead of doing an exact strcmp. > Modifies res_pjsip_phoneprov_provider with a few tweaks to get it to work > with realtime. > > > Diffs > ----- > > branches/12/tests/test_sorcery.c 428504 > branches/12/res/res_pjsip_phoneprov_provider.c 428504 > branches/12/main/sorcery.c 428504 > > Diff: https://reviewboard.asterisk.org/r/4185/diff/ > > > Testing > ------- > > Tested by me with realtime phoneprov, aor and registration objects both with > and without registered objects. > Testsuite testing in progress. EDIT: complete. No issues. > Will also be tested by John Kiniston who reported the > res_pjsip_phoneprov_provider issue. EDIT: complete. > > > Thanks, > > George Joseph > >
-- _____________________________________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- asterisk-dev mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-dev