MT#18499 contract location select non 0.0.0.0/0 blocks first

Change-Id: I876fd3a1f9b32b74c3d6f553e76d4fae7748f9ed
changes/88/5388/2
Kirill Solomko 10 years ago
parent 28cb09df87
commit c991cdd635

@ -79,9 +79,9 @@ NGCPContractPrefs_MT.__tostring = function ()
end
local con = self.config:getDBConnection()
local query = string.format("SELECT location_id FROM provisioning.voip_contract_locations cl JOIN provisioning.voip_contract_location_blocks cb ON cb.location_id = cl.id WHERE cl.contract_id = %s AND _ipv4_net_from <= UNHEX(HEX(INET_ATON('%s'))) AND _ipv4_net_to >= UNHEX(HEX(INET_ATON('%s'))) LIMIT 1", contract, ip, ip)
local query = string.format("SELECT location_id FROM provisioning.voip_contract_locations cl JOIN provisioning.voip_contract_location_blocks cb ON cb.location_id = cl.id WHERE cl.contract_id = %s AND _ipv4_net_from <= UNHEX(HEX(INET_ATON('%s'))) AND _ipv4_net_to >= UNHEX(HEX(INET_ATON('%s'))) ORDER BY cb.ip DESC, cb.mask DESC LIMIT 1", contract, ip, ip)
if string.find(ip, ':') ~= nil then
query = string.format("SELECT location_id FROM provisioning.voip_contract_locations cl JOIN provisioning.voip_contract_location_blocks cb ON cb.location_id = cl.id WHERE cl.contract_id = %s AND _ipv6_net_from <= UNHEX(HEX(INET_ATON('%s'))) AND _ipv6_net_to >= UNHEX(HEX(INET_ATON('%s'))) LIMIT 1", contract, ip, ip)
query = string.format("SELECT location_id FROM provisioning.voip_contract_locations cl JOIN provisioning.voip_contract_location_blocks cb ON cb.location_id = cl.id WHERE cl.contract_id = %s AND _ipv6_net_from <= UNHEX(HEX(INET_ATON('%s'))) AND _ipv6_net_to >= UNHEX(HEX(INET_ATON('%s'))) ORDER BY cb.ip DESC, cb.mask DESC LIMIT 1", contract, ip, ip)
end
local cur,err = con:execute(query)

@ -112,7 +112,7 @@ TestNGCPContractPrefs = {} --class
function TestNGCPContractPrefs:test_callee_load()
assertTrue(self.d.config)
con:execute("SELECT location_id FROM provisioning.voip_contract_locations cl JOIN provisioning.voip_contract_location_blocks cb ON cb.location_id = cl.id WHERE cl.contract_id = 2 AND _ipv4_net_from <= UNHEX(HEX(INET_ATON('172.16.15.1'))) AND _ipv4_net_to >= UNHEX(HEX(INET_ATON('172.16.15.1'))) LIMIT 1") ;mc :returns(self.cur)
con:execute("SELECT location_id FROM provisioning.voip_contract_locations cl JOIN provisioning.voip_contract_location_blocks cb ON cb.location_id = cl.id WHERE cl.contract_id = 2 AND _ipv4_net_from <= UNHEX(HEX(INET_ATON('172.16.15.1'))) AND _ipv4_net_to >= UNHEX(HEX(INET_ATON('172.16.15.1'))) ORDER BY cb.ip DESC, cb.mask DESC LIMIT 1") ;mc :returns(self.cur)
self.cur:fetch(mc.ANYARGS) ;mc :returns({location_id = 1 })
self.cur:close()
con:execute("SELECT * FROM contract_preferences WHERE uuid ='2' AND location_id = 1") ;mc :returns(self.cur)

Loading…
Cancel
Save