From 04879eb4cd8a3053e5ea518766056312df34ecdf Mon Sep 17 00:00:00 2001 From: Stefan Sayer Date: Tue, 2 Dec 2008 21:41:57 +0000 Subject: [PATCH] removeHeader utility function git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@1154 8eb893ce-cfd4-0310-b710-fb5ebe64c474 --- core/AmSipMsg.cpp | 17 +++++++++++++++++ core/AmSipMsg.h | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) 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__ */