diff options
author | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-05-03 05:14:52 +0000 |
---|---|---|
committer | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-05-03 05:14:52 +0000 |
commit | 8d233af74b8ad171e4868f1c9eb2476cc617174e (patch) | |
tree | ab6f1030b1631b77b1334866239338e3d4b8b6ab /channels | |
parent | 06702493e015049828f26e4c72a0d20e0e5ae495 (diff) |
Add "insecure=very" where we don't authenticate peers who are registered
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@2873 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rwxr-xr-x | channels/chan_sip.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index e39ceae95..30a40a0df 100755 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -4502,6 +4502,11 @@ static int check_user(struct sip_pvt *p, struct sip_request *req, char *cmd, cha strncpy(p->context, peer->context, sizeof(p->context) - 1); strncpy(p->peersecret, peer->secret, sizeof(p->peersecret) - 1); strncpy(p->peermd5secret, peer->md5secret, sizeof(p->peermd5secret) - 1); + if (peer->insecure > 1) { + /* Pretend there is no required authentication if insecure is "very" */ + strcpy(p->peersecret, ""); + strcpy(p->peermd5secret, ""); + } p->callgroup = peer->callgroup; p->pickupgroup = peer->pickupgroup; p->capability = peer->capability; @@ -6704,7 +6709,12 @@ static struct sip_peer *build_peer(char *name, struct ast_variable *v) else peer->capability &= ~format; } else if (!strcasecmp(v->name, "insecure")) { - peer->insecure = ast_true(v->value); + if (!strcasecmp(v->value, "very")) { + peer->insecure = 2; + } else if (ast_true(v->value)) + peer->insecure = 1; + else + peer->insecure = 0; } else if (!strcasecmp(v->name, "qualify")) { if (!strcasecmp(v->value, "no")) { peer->maxms = 0; |