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

Reply via email to