[Freeipa-devel] [PATCH 0038] Perform secondary rid range overlap check for local ranges
Martin Kosek
mkosek at redhat.com
Mon Mar 11 12:59:34 UTC 2013
On 03/08/2013 04:41 PM, Tomas Babej wrote:
> On 03/08/2013 12:10 PM, Martin Kosek wrote:
>> On 03/05/2013 12:59 PM, Tomas Babej wrote:
>>> Hi,
>>>
>>> Any of the following checks:
>>> - overlap between primary RID range and secondary RID range
>>> - overlap between secondary RID range and secondary RID range
>>>
>>> is performed now only if both of the ranges involved are local
>>> domain ranges.
>>>
>>> https://fedorahosted.org/freeipa/ticket/3391
>>>
>>
>> I think the patch is functionally OK (I tested it), I would just change the
>> flow of the following:
>>
>> @@ -194,19 +198,22 @@ static int ranges_overlap(struct range_info *r1, struct
>> range_info *r2)
>> r1->id_range_size, r2->id_range_size))
>> return 2;
>>
>> - /* check if secondary rid range overlaps with existing secondary rid
>> range */
>> + /**
>> + * The following 3 checks are relevant only if both ranges are local.
>> + * Check if secondary rid range overlaps with existing secondary rid
>> + * range. **/
>> if (intervals_overlap(r1->secondary_base_rid, r2->secondary_base_rid,
>> - r1->id_range_size, r2->id_range_size))
>> + r1->id_range_size, r2->id_range_size) && local_ranges)
>> return 3;
>> ...
>>
>>
>> TO something like
>>
>> ...
>> /**
>> * The following checks are relevant only if both ranges are local.
>> * Check if secondary rid range overlaps with existing secondary rid
>> * range. **/
>> if (local_ranges) {
>> ... do the checks
>> }
>> ...
>>
>> Doing it your way, intervals_overlap() function is called 3 times when not
>> needed + it is not so obvious that these checks are only done with
>> "local_ranges" only.
>>
>> Martin
> Refactored.
>
> Tomas
ACK. Pushed to master, ipa-3-1.
Martin
More information about the Freeipa-devel
mailing list