aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorroot <root@f38db490-d61c-443f-a65b-d21fe96a405b>2006-05-18 20:07:21 +0000
committerroot <root@f38db490-d61c-443f-a65b-d21fe96a405b>2006-05-18 20:07:21 +0000
commit04de3150ccf07705a2d9c3e45d9d3ad7655a8e19 (patch)
tree6cbf89150192b2448b5b6b7ded13c51d8f9ddfb1
parent6e38f2b0934f38d27b71042e5563c4089e3ad0ba (diff)
automerge commit
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2-netsec@28379 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r--channels/chan_sip.c6
-rw-r--r--enum.c14
2 files changed, 11 insertions, 9 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 874553fe7..d695a8f21 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -3592,12 +3592,12 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req)
sdpLineNum_iterator_init(&iterator);
while ((a = get_sdp_iterate(&iterator, req, "a"))[0] != '\0') {
char* mimeSubtype = ast_strdupa(a); /* ensures we have enough space */
- if (!strcasecmp(a, "sendonly")) {
- sendonly=1;
+ if (!strcasecmp(a, "sendonly") || !strcasecmp(a, "inactive")) {
+ sendonly = 1;
continue;
}
if (!strcasecmp(a, "sendrecv")) {
- sendonly=0;
+ sendonly = 0;
}
if (sscanf(a, "rtpmap: %u %[^/]/", &codec, mimeSubtype) != 2) continue;
if (debug)
diff --git a/enum.c b/enum.c
index 194f708ed..0c3e92513 100644
--- a/enum.c
+++ b/enum.c
@@ -80,27 +80,29 @@ struct naptr {
} __attribute__ ((__packed__));
/*--- parse_ie: Parse NAPTR record information elements */
-static int parse_ie(char *data, int maxdatalen, char *src, int srclen)
+static unsigned int parse_ie(char *data, unsigned int maxdatalen, char *src, unsigned int srclen)
{
- int len, olen;
+ unsigned int len, olen;
- len = olen = (int)src[0];
+ len = olen = (unsigned int) src[0];
src++;
srclen--;
- if (len > srclen || len < 0 ) {
+
+ if (len > srclen) {
ast_log(LOG_WARNING, "ENUM parsing failed: Wanted %d characters, got %d\n", len, srclen);
return -1;
}
+
if (len > maxdatalen)
len = maxdatalen;
memcpy(data, src, len);
+
return olen + 1;
}
/*--- parse_naptr: Parse DNS NAPTR record used in ENUM ---*/
static int parse_naptr(char *dst, int dstsize, char *tech, int techsize, char *answer, int len, char *naptrinput)
{
-
char tech_return[80];
char *oanswer = answer;
char flags[512] = "";
@@ -344,7 +346,7 @@ static int txt_callback(void *context, char *answer, int len, char *fullanswer)
/*--- enum_callback: Callback from ENUM lookup function */
static int enum_callback(void *context, char *answer, int len, char *fullanswer)
{
- struct enum_context *c = (struct enum_context *)context;
+ struct enum_context *c = (struct enum_context *)context;
void *p = NULL;
int res;