mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-14 00:24:05 +00:00
Allow connection notifications on manager interface to be hidden (bug #3085)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4672 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -5,6 +5,7 @@
|
|||||||
enabled = no
|
enabled = no
|
||||||
port = 5038
|
port = 5038
|
||||||
bindaddr = 0.0.0.0
|
bindaddr = 0.0.0.0
|
||||||
|
;displayconnects = yes
|
||||||
|
|
||||||
;[mark]
|
;[mark]
|
||||||
;secret = mysecret
|
;secret = mysecret
|
||||||
|
32
manager.c
32
manager.c
@@ -59,6 +59,8 @@ struct fast_originate_helper
|
|||||||
static int enabled = 0;
|
static int enabled = 0;
|
||||||
static int portno = DEFAULT_MANAGER_PORT;
|
static int portno = DEFAULT_MANAGER_PORT;
|
||||||
static int asock = -1;
|
static int asock = -1;
|
||||||
|
static int displayconnects = 1;
|
||||||
|
|
||||||
static pthread_t t;
|
static pthread_t t;
|
||||||
AST_MUTEX_DEFINE_STATIC(sessionlock);
|
AST_MUTEX_DEFINE_STATIC(sessionlock);
|
||||||
static int block_sockets = 0;
|
static int block_sockets = 0;
|
||||||
@@ -413,8 +415,9 @@ static int authenticate(struct mansession *s, struct message *m)
|
|||||||
password = v->value;
|
password = v->value;
|
||||||
} else if (!strcasecmp(v->name, "permit") ||
|
} else if (!strcasecmp(v->name, "permit") ||
|
||||||
!strcasecmp(v->name, "deny")) {
|
!strcasecmp(v->name, "deny")) {
|
||||||
ha = ast_append_ha(v->name, v->value, ha);
|
ha = ast_append_ha(v->name, v->value, ha);
|
||||||
}
|
}
|
||||||
|
|
||||||
v = v->next;
|
v = v->next;
|
||||||
}
|
}
|
||||||
if (ha && !ast_apply_ha(ha, &(s->sin))) {
|
if (ha && !ast_apply_ha(ha, &(s->sin))) {
|
||||||
@@ -1131,8 +1134,11 @@ static int process_message(struct mansession *s, struct message *m)
|
|||||||
return -1;
|
return -1;
|
||||||
} else {
|
} else {
|
||||||
s->authenticated = 1;
|
s->authenticated = 1;
|
||||||
if (option_verbose > 1)
|
if (option_verbose > 1) {
|
||||||
ast_verbose(VERBOSE_PREFIX_2 "Manager '%s' logged on from %s\n", s->username, ast_inet_ntoa(iabuf, sizeof(iabuf), s->sin.sin_addr));
|
if ( displayconnects ) {
|
||||||
|
ast_verbose(VERBOSE_PREFIX_2 "Manager '%s' logged on from %s\n", s->username, ast_inet_ntoa(iabuf, sizeof(iabuf), s->sin.sin_addr));
|
||||||
|
}
|
||||||
|
}
|
||||||
ast_log(LOG_EVENT, "Manager '%s' logged on from %s\n", s->username, ast_inet_ntoa(iabuf, sizeof(iabuf), s->sin.sin_addr));
|
ast_log(LOG_EVENT, "Manager '%s' logged on from %s\n", s->username, ast_inet_ntoa(iabuf, sizeof(iabuf), s->sin.sin_addr));
|
||||||
astman_send_ack(s, m, "Authentication accepted");
|
astman_send_ack(s, m, "Authentication accepted");
|
||||||
}
|
}
|
||||||
@@ -1227,12 +1233,16 @@ static void *session_do(void *data)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (s->authenticated) {
|
if (s->authenticated) {
|
||||||
if (option_verbose > 1)
|
if (option_verbose > 1) {
|
||||||
ast_verbose(VERBOSE_PREFIX_2 "Manager '%s' logged off from %s\n", s->username, ast_inet_ntoa(iabuf, sizeof(iabuf), s->sin.sin_addr));
|
if (displayconnects)
|
||||||
|
ast_verbose(VERBOSE_PREFIX_2 "Manager '%s' logged off from %s\n", s->username, ast_inet_ntoa(iabuf, sizeof(iabuf), s->sin.sin_addr));
|
||||||
|
}
|
||||||
ast_log(LOG_EVENT, "Manager '%s' logged off from %s\n", s->username, ast_inet_ntoa(iabuf, sizeof(iabuf), s->sin.sin_addr));
|
ast_log(LOG_EVENT, "Manager '%s' logged off from %s\n", s->username, ast_inet_ntoa(iabuf, sizeof(iabuf), s->sin.sin_addr));
|
||||||
} else {
|
} else {
|
||||||
if (option_verbose > 1)
|
if (option_verbose > 1) {
|
||||||
ast_verbose(VERBOSE_PREFIX_2 "Connect attempt from '%s' unable to authenticate\n", ast_inet_ntoa(iabuf, sizeof(iabuf), s->sin.sin_addr));
|
if ( displayconnects )
|
||||||
|
ast_verbose(VERBOSE_PREFIX_2 "Connect attempt from '%s' unable to authenticate\n", ast_inet_ntoa(iabuf, sizeof(iabuf), s->sin.sin_addr));
|
||||||
|
}
|
||||||
ast_log(LOG_EVENT, "Failed attempt from %s\n", ast_inet_ntoa(iabuf, sizeof(iabuf), s->sin.sin_addr));
|
ast_log(LOG_EVENT, "Failed attempt from %s\n", ast_inet_ntoa(iabuf, sizeof(iabuf), s->sin.sin_addr));
|
||||||
}
|
}
|
||||||
destroy_session(s);
|
destroy_session(s);
|
||||||
@@ -1444,6 +1454,7 @@ int init_manager(void)
|
|||||||
registered = 1;
|
registered = 1;
|
||||||
}
|
}
|
||||||
portno = DEFAULT_MANAGER_PORT;
|
portno = DEFAULT_MANAGER_PORT;
|
||||||
|
displayconnects = 1;
|
||||||
cfg = ast_load("manager.conf");
|
cfg = ast_load("manager.conf");
|
||||||
if (!cfg) {
|
if (!cfg) {
|
||||||
ast_log(LOG_NOTICE, "Unable to open management configuration manager.conf. Call management disabled.\n");
|
ast_log(LOG_NOTICE, "Unable to open management configuration manager.conf. Call management disabled.\n");
|
||||||
@@ -1470,6 +1481,11 @@ int init_manager(void)
|
|||||||
}
|
}
|
||||||
ast_log(LOG_NOTICE, "Use of portno in manager.conf deprecated. Please use 'port=%s' instead.\n", val);
|
ast_log(LOG_NOTICE, "Use of portno in manager.conf deprecated. Please use 'port=%s' instead.\n", val);
|
||||||
}
|
}
|
||||||
|
/* Parsing the displayconnects */
|
||||||
|
if ((val = ast_variable_retrieve(cfg, "general", "displayconnects"))) {
|
||||||
|
displayconnects = ast_true(val);;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
ba.sin_family = AF_INET;
|
ba.sin_family = AF_INET;
|
||||||
ba.sin_port = htons(portno);
|
ba.sin_port = htons(portno);
|
||||||
|
Reference in New Issue
Block a user