diff options
author | Mark Spencer <markster@digium.com> | 2005-06-18 23:30:40 +0000 |
---|---|---|
committer | Mark Spencer <markster@digium.com> | 2005-06-18 23:30:40 +0000 |
commit | b6ea1bcb2926f67ca350c31ec4fbec2cf9123842 (patch) | |
tree | 84b7a71af62c6d13a3b6897b5c01d3a52cad5228 /channels | |
parent | 0c61fc56bef4292cc2c5fedef606f9180b3748bb (diff) |
Attempt to repair SIP parameter gathering brokenness
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@5939 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels')
-rwxr-xr-x | channels/chan_sip.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index d698e852d..44bad0d5e 100755 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -7770,7 +7770,7 @@ static int reply_digest(struct sip_pvt *p, struct sip_request *req, c = tmp + strlen("Digest "); for (i = keys; i->key != NULL; i++) i->dst[0] = '\0'; /* init all to empty strings */ - for (; c && *(c = ast_skip_blanks(c)) ; c++) { /* lookup for keys */ + while (c && *(c = ast_skip_blanks(c))) { /* lookup for keys */ for (i = keys; i->key != NULL; i++) { char *src; if (strncasecmp(c, i->key, strlen(i->key)) != 0) @@ -7779,12 +7779,16 @@ static int reply_digest(struct sip_pvt *p, struct sip_request *req, c += strlen(i->key); if ((*c == '\"')) { src = ++c; - if ((c = strchr(c,'\"'))) + if ((c = strchr(c,'\"'))) { *c = '\0'; + c++; + } } else { src = c; - if ((c = strchr(c,','))) + if ((c = strchr(c,','))) { *c = '\0'; + c++; + } } ast_copy_string(i->dst, src, i->dstlen); break; |