Index: main/manager.c =================================================================== --- main/manager.c (revision 68594) +++ main/manager.c (working copy) @@ -452,6 +452,23 @@ return user; } +/*! \brief Get displayconnects config option. + * \param s manager session to get parameter from. + * \return displayconnects config option value. + */ +static int manager_displayconnects (struct mansession *s) +{ + struct ast_manager_user *user = NULL; + int ret = 0; + + AST_LIST_LOCK(&users); + if ((user = get_manager_by_name_locked (s->username))) + ret = user->displayconnects; + AST_LIST_UNLOCK(&users); + + return ret; +} + /*! \note The actionlock is read-locked by the caller of this function */ static int handle_showmancmd(int fd, int argc, char *argv[]) { @@ -1446,7 +1463,7 @@ } s->authenticated = 1; if (option_verbose > 1) { - if (displayconnects) { + if (manager_displayconnects(s)) { ast_verbose(VERBOSE_PREFIX_2 "%sManager '%s' logged on from %s\n", (s->managerid ? "HTTP " : ""), s->username, ast_inet_ntoa(s->sin.sin_addr)); } } @@ -2487,7 +2504,7 @@ /* session is over, explain why and terminate */ if (s->authenticated) { if (option_verbose > 1) { - if (displayconnects) + if (manager_displayconnects(s)) ast_verbose(VERBOSE_PREFIX_2 "Manager '%s' logged off from %s\n", s->username, ast_inet_ntoa(s->sin.sin_addr)); } ast_log(LOG_EVENT, "Manager '%s' logged off from %s\n", s->username, ast_inet_ntoa(s->sin.sin_addr)); @@ -2516,7 +2533,7 @@ if (s->sessiontimeout && (now > s->sessiontimeout) && !s->inuse) { AST_LIST_REMOVE_CURRENT(&sessions, list); ast_atomic_fetchadd_int(&num_sessions, -1); - if (s->authenticated && (option_verbose > 1) && displayconnects) { + if (s->authenticated && (option_verbose > 1) && manager_displayconnects(s)) { ast_verbose(VERBOSE_PREFIX_2 "HTTP Manager '%s' timed out from %s\n", s->username, ast_inet_ntoa(s->sin.sin_addr)); } @@ -3054,7 +3071,7 @@ if (process_message(s, &m)) { if (s->authenticated) { if (option_verbose > 1) { - if (displayconnects) + if (manager_displayconnects(s)) ast_verbose(VERBOSE_PREFIX_2 "HTTP Manager '%s' logged off from %s\n", s->username, ast_inet_ntoa(s->sin.sin_addr)); } ast_log(LOG_EVENT, "HTTP Manager '%s' logged off from %s\n", s->username, ast_inet_ntoa(s->sin.sin_addr)); @@ -3357,6 +3374,8 @@ /* Make sure we keep this user and don't destroy it during cleanup */ user->keep = 1; + /* Default displayconnect to [general] */ + user->displayconnects = displayconnects; var = ast_variable_browse(cfg, cat); while (var) { Index: configs/manager.conf.sample =================================================================== --- configs/manager.conf.sample (revision 68594) +++ configs/manager.conf.sample (working copy) @@ -68,6 +68,8 @@ ; ; writetimeout = 100 ; +;displayconnects = yes ; Display on CLI user login/logoff +; ; Authorization for various classes ;read = system,call,log,verbose,command,agent,user,config,dtmf ;write = system,call,log,verbose,command,agent,user,config,dtmf