aboutsummaryrefslogtreecommitdiffstats
path: root/channels
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2005-09-28 23:10:14 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2005-09-28 23:10:14 +0000
commit83fdaa72f7001d2f2260b81ea15e0bdcb14b3124 (patch)
tree2794fc86c3f44dae1496cd39a926e5c5a3d3f674 /channels
parenta64d4868758aaadf3a8ec3981f819150e9cbd02d (diff)
Remove possibility of manager deadlocks from manager actions
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6687 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rwxr-xr-xchannels/chan_agent.c3
-rwxr-xr-xchannels/chan_iax2.c2
-rwxr-xr-xchannels/chan_sip.c11
-rwxr-xr-xchannels/chan_zap.c4
4 files changed, 2 insertions, 18 deletions
diff --git a/channels/chan_agent.c b/channels/chan_agent.c
index bf6de0805..e23a4f61f 100755
--- a/channels/chan_agent.c
+++ b/channels/chan_agent.c
@@ -1381,7 +1381,6 @@ static int action_agents(struct mansession *s, struct message *m)
astman_send_ack(s, m, "Agents will follow");
ast_mutex_lock(&agentlock);
p = agents;
- ast_mutex_lock(&s->lock);
while(p) {
ast_mutex_lock(&p->lock);
@@ -1440,8 +1439,6 @@ static int action_agents(struct mansession *s, struct message *m)
ast_cli(s->fd, "Event: AgentsComplete\r\n"
"%s"
"\r\n",idText);
- ast_mutex_unlock(&s->lock);
-
return 0;
}
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index fd02cb749..371a8a8e1 100755
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -4239,10 +4239,8 @@ static int manager_iax2_show_peers( struct mansession *s, struct message *m )
{
char *a[] = { "iax2", "show", "users" };
int ret;
- ast_mutex_lock(&s->lock);
ret = iax2_show_peers( s->fd, 3, a );
ast_cli( s->fd, "\r\n\r\n" );
- ast_mutex_unlock(&s->lock);
return ret;
} /* /JDG */
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index b1903fc56..484aed24e 100755
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -4502,8 +4502,8 @@ static void build_contact(struct sip_pvt *p)
static void build_rpid(struct sip_pvt *p)
{
int send_pres_tags = 1;
- const char *privacy;
- const char *screen;
+ const char *privacy=NULL;
+ const char *screen=NULL;
char buf[256];
const char *clid = default_callerid;
const char *clin = NULL;
@@ -7267,13 +7267,11 @@ static int manager_sip_show_peers( struct mansession *s, struct message *m )
/* List the peers in separate manager events */
_sip_show_peers(s->fd, &total, s, m, 3, a);
/* Send final confirmation */
- ast_mutex_lock(&s->lock);
ast_cli(s->fd,
"Event: PeerlistComplete\r\n"
"ListItems: %d\r\n"
"%s"
"\r\n", total, idtext);
- ast_mutex_unlock(&s->lock);
return 0;
}
@@ -7376,7 +7374,6 @@ static int _sip_show_peers(int fd, int *total, struct mansession *s, struct mess
ntohs(iterator->addr.sin_port), status);
} else { /* Manager format */
/* The names here need to be the same as other channels */
- ast_mutex_lock(&s->lock);
ast_cli(fd,
"Event: PeerEntry\r\n%s"
"Channeltype: SIP\r\n"
@@ -7396,8 +7393,6 @@ static int _sip_show_peers(int fd, int *total, struct mansession *s, struct mess
(ast_test_flag(iterator, SIP_NAT) & SIP_NAT_ROUTE) ? "yes" : "no", /* NAT=yes? */
iterator->ha ? "yes" : "no", /* permit/deny */
status);
-
- ast_mutex_unlock(&s->lock);
}
ASTOBJ_UNLOCK(iterator);
@@ -7691,7 +7686,6 @@ static int manager_sip_show_peer( struct mansession *s, struct message *m )
astman_send_error(s, m, "Peer: <name> missing.\n");
return 0;
}
- ast_mutex_lock(&s->lock);
a[0] = "sip";
a[1] = "show";
a[2] = "peer";
@@ -7701,7 +7695,6 @@ static int manager_sip_show_peer( struct mansession *s, struct message *m )
ast_cli(s->fd, "ActionID: %s\r\n",id);
ret = _sip_show_peer(1, s->fd, s, m, 4, a );
ast_cli( s->fd, "\r\n\r\n" );
- ast_mutex_unlock(&s->lock);
return ret;
}
diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index f1c3594cc..84c2e43a2 100755
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -9862,7 +9862,6 @@ static int action_zapshowchannels(struct mansession *s, struct message *m)
while (tmp) {
if (tmp->channel > 0) {
int alarm = get_alarms(tmp);
- ast_mutex_lock(&s->lock);
ast_cli(s->fd,
"Event: ZapShowChannels\r\n"
"Channel: %d\r\n"
@@ -9875,7 +9874,6 @@ static int action_zapshowchannels(struct mansession *s, struct message *m)
tmp->channel, sig2str(tmp->sig), tmp->context,
tmp->dnd ? "Enabled" : "Disabled",
alarm2str(alarm), idText);
- ast_mutex_unlock(&s->lock);
}
tmp = tmp->next;
@@ -9883,13 +9881,11 @@ static int action_zapshowchannels(struct mansession *s, struct message *m)
ast_mutex_unlock(&iflock);
- ast_mutex_lock(&s->lock);
ast_cli(s->fd,
"Event: ZapShowChannelsComplete\r\n"
"%s"
"\r\n",
idText);
- ast_mutex_unlock(&s->lock);
return 0;
}