summaryrefslogtreecommitdiff
path: root/orkbasecxx/serializers
diff options
context:
space:
mode:
authorHenri Herscher <henri@oreka.org>2008-01-23 15:27:59 +0000
committerHenri Herscher <henri@oreka.org>2008-01-23 15:27:59 +0000
commit27add11974dffb1d3a6b48d140e3f8dd689c995d (patch)
tree3bf94676aa61d4b78fe0276b1c3faa7d021cf2eb /orkbasecxx/serializers
parentf915e7cad47201430fdb9575ecd0a93efa0d1c2b (diff)
Added SipIgnoredMediaAddresses config parameter. If a SIP INVITE has an RTP address that matches this csv list of CIDR ranges, it will be ignored.
git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@521 09dcff7a-b715-0410-9601-b79a96267cd0
Diffstat (limited to 'orkbasecxx/serializers')
-rw-r--r--orkbasecxx/serializers/Serializer.cpp24
-rw-r--r--orkbasecxx/serializers/Serializer.h4
2 files changed, 28 insertions, 0 deletions
diff --git a/orkbasecxx/serializers/Serializer.cpp b/orkbasecxx/serializers/Serializer.cpp
index b337070..3318833 100644
--- a/orkbasecxx/serializers/Serializer.cpp
+++ b/orkbasecxx/serializers/Serializer.cpp
@@ -134,6 +134,19 @@ void Serializer::DateValue(const char* key, time_t& value, bool required)
}
}
+void Serializer::IpRangesValue(const char* key, IpRanges& value, bool required)
+{
+ if (m_deSerialize == true)
+ {
+ GetIpRanges(key, value, required);
+ }
+ else
+ {
+ AddIpRanges(key, value);
+ }
+}
+
+
//=====================================
void Serializer::AddInt(const char* key, int value)
@@ -231,6 +244,10 @@ void Serializer::AddDate(const char* key, time_t value)
AddString(key, dateString);
}
+void Serializer::AddIpRanges(const char* key, IpRanges& value)
+{
+ ; // Not yet implemented
+}
//====================================================================
void Serializer::GetInt(const char* key, int&value, bool required)
@@ -376,6 +393,13 @@ void Serializer::GetDate(const char* key, time_t& value, bool required)
}
}
+void Serializer::GetIpRanges(const char* key, IpRanges& value, bool required)
+{
+ GetCsv(key, value.m_asciiIpRanges, required);
+ value.Compute();
+}
+
+
//-------------------------------------------------------------------------
// Escape the comma and percent characters for adding string to csv list
void Serializer::EscapeCsv(CStdString& in, CStdString& out)
diff --git a/orkbasecxx/serializers/Serializer.h b/orkbasecxx/serializers/Serializer.h
index 832fbde..fc60b02 100644
--- a/orkbasecxx/serializers/Serializer.h
+++ b/orkbasecxx/serializers/Serializer.h
@@ -16,6 +16,7 @@
#pragma warning( disable: 4786 ) // disables truncated symbols in browse-info warning
+#include "Utils.h"
#include "dll.h"
#include "OrkBase.h"
#include <map>
@@ -49,6 +50,7 @@ public:
void CsvMapValue(const char* key, std::map<CStdString, CStdString>& value, bool required = false);
void DateValue(const char* key, time_t& value, bool required = false);
virtual void ListValue(const char* key, std::list<ObjectRef>& value, Object& model, bool required = false) = 0;
+ void IpRangesValue(const char* key, IpRanges& value, bool required = false);
void AddInt(const char* key, int value);
void AddDouble(const char* key, double value);
@@ -58,6 +60,7 @@ public:
void AddCsvMap(const char* key, std::map<CStdString, CStdString>& value);
void AddDate(const char* key, time_t value);
virtual void AddString(const char* key, CStdString& value) = 0;
+ void AddIpRanges(const char* key, IpRanges& value);
void GetInt(const char* key, int& value, bool required = false);
void GetDouble(const char* key, double& value, bool required = false);
@@ -67,6 +70,7 @@ public:
void GetCsvMap(const char* key, std::map<CStdString, CStdString>& value, bool required = false);
void GetDate(const char* key, time_t& value, bool required = false);
virtual void GetString(const char* key, CStdString& value, bool required = false) = 0;
+ void GetIpRanges(const char* key, IpRanges& value, bool required = false);
void EscapeCsv(CStdString& in, CStdString& out);
void UnEscapeCsv(CStdString& in, CStdString& out);