diff --git a/core/AmSipMsg.cpp b/core/AmSipMsg.cpp index 508c6557..7643117d 100644 --- a/core/AmSipMsg.cpp +++ b/core/AmSipMsg.cpp @@ -99,6 +99,23 @@ bool findHeader(const string& hdrs,const string& hdr_name, return false; } +bool removeHeader(string& hdrs, const string& hdr_name) { + size_t pos1, pos2, hdr_start; + + if (findHeader(hdrs,hdr_name, pos1, pos2, + hdr_start)) { + while (pos2 < hdrs.length() && + (hdrs[pos2]=='\r' || hdrs[pos2]=='\n')) + pos2++; + + hdr_start -= hdr_name.length(); + hdrs.erase(hdr_start, pos2 - hdr_start); + return true; + } + + return false; +} + /* Print Member */ #define _PM(member, name) \ do { \ diff --git a/core/AmSipMsg.h b/core/AmSipMsg.h index 4f9ec7f1..07b15ed0 100644 --- a/core/AmSipMsg.h +++ b/core/AmSipMsg.h @@ -84,5 +84,5 @@ bool findHeader(const string& hdrs,const string& hdr_name, size_t& pos1, size_t& pos2, size_t& hdr_start); - +bool removeHeader(string& hdrs, const string& hdr_name); #endif /* __AMSIPMSG_H__ */