[cpp-xmltooling COMMIT] in /branches/REL_1/xmltooling: impl/MemoryStorageService.cpp util/StorageService.h

noreply at shibboleth.net noreply at shibboleth.net
Thu Sep 29 18:32:36 BST 2011


Author: scantor
Date: Thu Sep 29 18:32:35 2011
New Revision: 910

URL: http://svn.shibboleth.net/view/cpp-xmltooling?rev=910&view=rev
Log:
Add logging when size limits exceeded.

Modified:
    branches/REL_1/xmltooling/impl/MemoryStorageService.cpp
    branches/REL_1/xmltooling/util/StorageService.h

Modified: branches/REL_1/xmltooling/impl/MemoryStorageService.cpp
URL: http://svn.shibboleth.net/view/cpp-xmltooling/branches/REL_1/xmltooling/impl/MemoryStorageService.cpp?rev=910&r1=909&r2=910&view=diff
==============================================================================
--- branches/REL_1/xmltooling/impl/MemoryStorageService.cpp (original)
+++ branches/REL_1/xmltooling/impl/MemoryStorageService.cpp Thu Sep 29 18:32:35 2011
@@ -47,23 +47,29 @@
         MemoryStorageService(const DOMElement* e);
         virtual ~MemoryStorageService();
 
-        bool createString(const char* context, const char* key, const char* value, time_t expiration);
-        int readString(const char* context, const char* key, string* pvalue=nullptr, time_t* pexpiration=nullptr, int version=0);
-        int updateString(const char* context, const char* key, const char* value=nullptr, time_t expiration=0, int version=0);
-        bool deleteString(const char* context, const char* key);
-
-        bool createText(const char* context, const char* key, const char* value, time_t expiration) {
-            return createString(context, key, value, expiration);
-        }
-        int readText(const char* context, const char* key, string* pvalue=nullptr, time_t* pexpiration=nullptr, int version=0) {
-            return readString(context, key, pvalue, pexpiration, version);
-        }
-        int updateText(const char* context, const char* key, const char* value=nullptr, time_t expiration=0, int version=0) {
-            return updateString(context, key, value, expiration, version);
-        }
-        bool deleteText(const char* context, const char* key) {
-            return deleteString(context, key);
-        }
+        bool createString(const char* context, const char* key, const char* value, time_t expiration) {
+            if (m_log.isDebugEnabled() && value && strlen(value) > 255) {
+                m_log.debug("string value for key (%s) exceeded allowed length", key);
+            }
+            return createText(context, key, value, expiration);
+        }
+        int readString(const char* context, const char* key, string* pvalue=nullptr, time_t* pexpiration=nullptr, int version=0) {
+            return readText(context, key, pvalue, pexpiration, version);
+        }
+        int updateString(const char* context, const char* key, const char* value=nullptr, time_t expiration=0, int version=0) {
+            if (m_log.isDebugEnabled() && value && strlen(value) > 255) {
+                m_log.debug("string value for key (%s) exceeded allowed length", key);
+            }
+            return updateText(context, key, value, expiration, version);
+        }
+        bool deleteString(const char* context, const char* key) {
+            return deleteText(context, key);
+        }
+
+        bool createText(const char* context, const char* key, const char* value, time_t expiration);
+        int readText(const char* context, const char* key, string* pvalue=nullptr, time_t* pexpiration=nullptr, int version=0);
+        int updateText(const char* context, const char* key, const char* value=nullptr, time_t expiration=0, int version=0);
+        bool deleteText(const char* context, const char* key);
 
         void reap(const char* context);
         void updateContext(const char* context, time_t expiration);
@@ -212,8 +218,16 @@
     return count;
 }
 
-bool MemoryStorageService::createString(const char* context, const char* key, const char* value, time_t expiration)
-{
+bool MemoryStorageService::createText(const char* context, const char* key, const char* value, time_t expiration)
+{
+    // This doesn't matter for this implementation, but helps identify bugs that might break others.
+    if (m_log.isDebugEnabled()) {
+        if (strlen(context) > 255)
+            m_log.debug("context value (%s) exceeded allowed length", context);
+        if (strlen(key) > 255)
+            m_log.debug("key value (%s) in context (%s) exceeded allowed length", key, context);
+    }
+
     Context& ctx = writeContext(context);
     SharedLock locker(m_lock, false);
 
@@ -233,7 +247,7 @@
     return true;
 }
 
-int MemoryStorageService::readString(const char* context, const char* key, string* pvalue, time_t* pexpiration, int version)
+int MemoryStorageService::readText(const char* context, const char* key, string* pvalue, time_t* pexpiration, int version)
 {
     Context& ctx = readContext(context);
     SharedLock locker(m_lock, false);
@@ -252,7 +266,7 @@
     return i->second.version;
 }
 
-int MemoryStorageService::updateString(const char* context, const char* key, const char* value, time_t expiration, int version)
+int MemoryStorageService::updateText(const char* context, const char* key, const char* value, time_t expiration, int version)
 {

[... 90 lines stripped ...]


More information about the commits mailing list