[asterisk-commits] russell: branch 1.6.0 r133947 - in /branches/1.6.0: ./ main/devicestate.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Sat Jul 26 10:17:46 CDT 2008
Author: russell
Date: Sat Jul 26 10:17:46 2008
New Revision: 133947
URL: http://svn.digium.com/view/asterisk?view=rev&rev=133947
Log:
Merged revisions 133945-133946 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk
........
r133945 | russell | 2008-07-26 10:15:14 -0500 (Sat, 26 Jul 2008) | 6 lines
ast_device_state() gets called in two different ways. The first way is when
called from elsewhere in Asterisk to find the current state of a device. In
that case, we want to use the cached value if it exists. The other way is when
processing a device state change. In that case, we do not want to check the
cache because returning the last known state is counter productive.
........
r133946 | russell | 2008-07-26 10:16:20 -0500 (Sat, 26 Jul 2008) | 1 line
actually use the cache_cache argument
........
Modified:
branches/1.6.0/ (props changed)
branches/1.6.0/main/devicestate.c
Propchange: branches/1.6.0/
------------------------------------------------------------------------------
Binary property 'trunk-merged' - no diff available.
Modified: branches/1.6.0/main/devicestate.c
URL: http://svn.digium.com/view/asterisk/branches/1.6.0/main/devicestate.c?view=diff&rev=133947&r1=133946&r2=133947
==============================================================================
--- branches/1.6.0/main/devicestate.c (original)
+++ branches/1.6.0/main/devicestate.c Sat Jul 26 10:17:46 2008
@@ -286,7 +286,7 @@
}
/*! \brief Check device state through channel specific function or generic function */
-enum ast_device_state ast_device_state(const char *device)
+static enum ast_device_state _ast_device_state(const char *device, int check_cache)
{
char *buf;
char *number;
@@ -298,9 +298,12 @@
char *provider = NULL;
/* If the last known state is cached, just return that */
- res = devstate_cached(device);
- if (res != AST_DEVICE_UNKNOWN)
- return res;
+ if (check_cache) {
+ res = devstate_cached(device);
+ if (res != AST_DEVICE_UNKNOWN) {
+ return res;
+ }
+ }
buf = ast_strdupa(device);
tech = strsep(&buf, "/");
@@ -338,6 +341,14 @@
return res;
}
+enum ast_device_state ast_device_state(const char *device)
+{
+ /* This function is called from elsewhere in the code to find out the
+ * current state of a device. Check the cache, first. */
+
+ return _ast_device_state(device, 1);
+}
+
/*! \brief Add device state provider */
int ast_devstate_prov_add(const char *label, ast_devstate_prov_cb_type callback)
{
@@ -425,7 +436,7 @@
{
enum ast_device_state state;
- state = ast_device_state(device);
+ state = _ast_device_state(device, 0);
ast_debug(3, "Changing state for %s - state %d (%s)\n", device, state, devstate2str(state));
More information about the asterisk-commits
mailing list