diff options
author | russell <russell@f38db490-d61c-443f-a65b-d21fe96a405b> | 2010-11-20 00:45:51 +0000 |
---|---|---|
committer | russell <russell@f38db490-d61c-443f-a65b-d21fe96a405b> | 2010-11-20 00:45:51 +0000 |
commit | 36625964a25edf229f9d836284f45753f1d866be (patch) | |
tree | 37ed7a5b6ccd38e519cc4057b04d9431c5075c23 /include/asterisk/strings.h | |
parent | e8d8da0a1afc44aedeb1fc46305bd4a77c4c9822 (diff) |
Fix cache of device state changes for multiple servers.
This patch addresses a regression where device states across multiple servers
were not being processing completely correctly. The code works to determine
the overall state by looking at the last known state of a device on each
server. However, there was a regression due to some invasive rewrites of how
the cache works that led to the cache only storing the last device state change
for a device, regardless of which server it was on.
The code is set up to cache device state change events by ensuring that each
event in the cache has a unique device name + entity ID (server ID). The code
that was responsible for comparing raw information elements (which EID is)
always returned a match due to a memcmp() with a length of 0.
There isn't much code to fix the actual bug. This patch also introduces a new
CLI command that was very useful for debugging this problem. The command
allows you to dump the contents of the event cache.
(closes issue #18284)
Reported by: klaus3000
Patches:
issue18284.rev1.txt uploaded by russell (license 2)
Tested by: russell, klaus3000
(closes issue #18280)
Reported by: klaus3000
Review: https://reviewboard.asterisk.org/r/1012/
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@295710 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'include/asterisk/strings.h')
0 files changed, 0 insertions, 0 deletions