mirror of https://github.com/sipwise/sems.git
'*' - matches 0 or more characters
'?' - matches any one character
for more info, refer to <fnmatch.h>
Change-Id: Icbe450b7921d541fed089a1bb00c180e416c34ae
(cherry picked from commit e3f342754a)
mr7.2.1
parent
981b46659d
commit
ad0e349fa1
@ -0,0 +1,29 @@
|
||||
--- a/apps/sbc/HeaderFilter.cpp
|
||||
+++ b/apps/sbc/HeaderFilter.cpp
|
||||
@@ -28,6 +28,7 @@
|
||||
#include "log.h"
|
||||
#include "AmUtils.h"
|
||||
#include <algorithm>
|
||||
+#include <fnmatch.h>
|
||||
|
||||
const char* FilterType2String(FilterType ft) {
|
||||
switch(ft) {
|
||||
@@ -216,11 +217,13 @@
|
||||
}
|
||||
string hdr_name = hdrs.substr(start_pos, name_end-start_pos);
|
||||
std::transform(hdr_name.begin(), hdr_name.end(), hdr_name.begin(), ::tolower);
|
||||
- bool erase = false;
|
||||
- if (f_type == Whitelist) {
|
||||
- erase = headerfilter_list.find(hdr_name)==headerfilter_list.end();
|
||||
- } else if (f_type == Blacklist) {
|
||||
- erase = headerfilter_list.find(hdr_name)!=headerfilter_list.end();
|
||||
+ bool erase = (f_type == Whitelist);
|
||||
+ for (set<string>::iterator it = headerfilter_list.begin();
|
||||
+ it != headerfilter_list.end(); ++it) {
|
||||
+ if (fnmatch(it->c_str(), hdr_name.c_str(), 0) == 0) {
|
||||
+ erase = (f_type != Whitelist);
|
||||
+ break;
|
||||
+ }
|
||||
}
|
||||
if (erase) {
|
||||
DBG("erasing header '%s' by %s\n", hdr_name.c_str(), FilterType2String(f_type));
|
||||
Loading…
Reference in new issue