pbx_realtime: Prevent premature extension matching
authorSean Bright <sean.bright@gmail.com>
Tue, 21 Feb 2017 16:47:41 +0000 (11:47 -0500)
committerSean Bright <sean.bright@gmail.com>
Wed, 22 Feb 2017 16:22:54 +0000 (10:22 -0600)
commit15ed7af0278f459c69b0d0fd9168e3bc34ccb6a2
treeca438e468aa07f180680611884ca97f2f281f833
parentafcdadcd19a118d97bfaab38c14117bd2ff6fd0b
pbx_realtime: Prevent premature extension matching

The patterns provided by pbx_realtime were checked in the order in
which they were returned from the realtime backend. If there was
overlap between multiple patterns, the first one to correctly match was
chosen even though it may not have been the best match.

We now sort the patterns descending by their length and compare in that
order. There may be cases where this still results in a sub-optimal
match, but this patch should improve the overall behavior.

ASTERISK-18271 #close
Reported by: Charlie Smurthwaite

Change-Id: I56d9ac15810eb1775966b669c3028e32cc7bd809
pbx/pbx_realtime.c