Quit early and print a LOG_WARNING if we are trying to check devicestate on a Local...
authorBJ Weschke <bweschke@btwtech.com>
Fri, 16 Jun 2006 12:55:18 +0000 (12:55 +0000)
committerBJ Weschke <bweschke@btwtech.com>
Fri, 16 Jun 2006 12:55:18 +0000 (12:55 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@34463 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_local.c

index a865aa6..29f5d8a 100644 (file)
@@ -126,16 +126,23 @@ static int local_devicestate(void *data)
        int res;
                
        exten = ast_strdupa(data);
-       if ((context  = strchr(exten, '@'))) {
-               *context = '\0';
-               context = context + 1;
+       context = strchr(exten, '@');
+
+       if (!context) {
+               ast_log(LOG_WARNING, "Someone used Local/%s somewhere without a @context. This is bad.\n", exten);
+               return AST_DEVICE_INVALID;      
        }
+
+       *context = '\0';
+       context = context + 1;
+
        if (option_debug > 2)
                ast_log(LOG_DEBUG, "Checking if extension %s@%s exists (devicestate)\n", exten, context);
        res = ast_exists_extension(NULL, context, exten, 1, NULL);
-       if (!res)
+       if (!res) {
+               
                return AST_DEVICE_INVALID;
-       else
+       } else
                return AST_DEVICE_UNKNOWN;
 }