Module: sems Branch: master Commit: 67b084496bb23118c981055c7f0635b666abfcbb URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sems/?a=commit;h=67b084496bb23118c981055c7f0635b666abfcbb
Author: Stefan Sayer <[email protected]> Committer: Stefan Sayer <[email protected]> Date: Tue Aug 16 20:41:10 2011 +0200 b/f: correct parsing of media as last line --- core/AmSdp.cpp | 31 +++++++++++++++---------------- 1 files changed, 15 insertions(+), 16 deletions(-) diff --git a/core/AmSdp.cpp b/core/AmSdp.cpp index e273873..9fffa04 100644 --- a/core/AmSdp.cpp +++ b/core/AmSdp.cpp @@ -565,7 +565,7 @@ static void parse_sdp_media(AmSdp* sdp_msg, char* s) } case FMT: { - if(contains(media_line, line_end, ' ')){ + if (contains(media_line, line_end, ' ')) { next = parse_until(media_line, ' '); //if(next < line_end){ string value(media_line, int(next-media_line)-1); @@ -575,22 +575,21 @@ static void parse_sdp_media(AmSdp* sdp_msg, char* s) payload.payload_type = payload_type; m.payloads.push_back(payload); state = FMT; - //check if this lines is also the last - }else if (*(line_end-1) == '\0'){ - string last_value(media_line, int(line_end-media_line)-1); - payload.type = m.type; - str2i(last_value, payload_type); - payload.payload_type = payload_type; - m.payloads.push_back(payload); + } else { + string last_value; + if (*line_end == '\0') { + // last line in message + last_value = string(media_line, int(line_end-media_line)); + } else { + last_value = string(media_line, int(line_end-media_line)-1); + } + if (!last_value.empty()) { + payload.type = m.type; + str2i(last_value, payload_type); + payload.payload_type = payload_type; + m.payloads.push_back(payload); + } parsing = 0; - //if not - }else{ - string last_value(media_line, int(line_end-media_line)-1); - payload.type = m.type; - str2i(last_value, payload_type); - payload.payload_type = payload_type; - m.payloads.push_back(payload); - parsing=0; } break; } _______________________________________________ Semsdev mailing list [email protected] http://lists.iptel.org/mailman/listinfo/semsdev
