In general, LOCAL_USER_ADD/REMOVE should be the first/last thing called in an
application. An exception is if there is some *fast* setup code that might
halt the execution of the application, such as checking to see if an argument
exists.
@@ -117,13+117,13 @@ static int group_set_exec(struct ast_channel *chan, void *data)
struct localuser *u;
static int deprecation_warning = 0;
+ LOCAL_USER_ADD(u);
+
if (!deprecation_warning) {
ast_log(LOG_WARNING, "The SetGroup application has been deprecated, please use the GROUP() function.\n");
deprecation_warning = 1;
}
- LOCAL_USER_ADD(u);
-
if (ast_app_group_set_channel(chan, data))
ast_log(LOG_WARNING, "SetGroup requires an argument (group name)\n");
@@ -140,8+140,6 @@ static int group_check_exec(struct ast_channel *chan, void *data)
char category[80]="";
static int deprecation_warning = 0;
- LOCAL_USER_ADD(u);
-
if (!deprecation_warning) {
ast_log(LOG_WARNING, "The CheckGroup application has been deprecated, please use a combination of the GotoIf application and the GROUP_COUNT() function.\n");
deprecation_warning = 1;
@@ -152,6+150,8 @@ static int group_check_exec(struct ast_channel *chan, void *data)