Fix linker errors, and correct locking.
authorScott Cantor <cantor.2@osu.edu>
Thu, 21 May 2009 21:16:38 +0000 (21:16 +0000)
committerScott Cantor <cantor.2@osu.edu>
Thu, 21 May 2009 21:16:38 +0000 (21:16 +0000)
shibsp/impl/ChainingAccessControl.cpp
shibsp/impl/XMLAccessControl.cpp

index 8187471..fab0a53 100644 (file)
@@ -33,7 +33,7 @@ using namespace shibsp;
 using namespace xmltooling;\r
 using namespace std;\r
 \r
-namespace {\r
+namespace shibsp {\r
 \r
     class ChainingAccessControl : public AccessControl\r
     {\r
@@ -44,8 +44,13 @@ namespace {
             for_each(m_ac.begin(), m_ac.end(), xmltooling::cleanup<AccessControl>());\r
         }\r
 \r
-        Lockable* lock() {return this;}\r
-        void unlock() {}\r
+        Lockable* lock() {\r
+            for_each(m_ac.begin(), m_ac.end(), mem_fun<Lockable*,AccessControl>(&AccessControl::lock));\r
+            return this;\r
+        }\r
+        void unlock() {\r
+            for_each(m_ac.begin(), m_ac.end(), mem_fun<void,AccessControl>(&AccessControl::unlock));\r
+        }\r
 \r
         aclresult_t authorized(const SPRequest& request, const Session* session) const;\r
 \r
@@ -64,9 +69,9 @@ namespace {
     static const XMLCh _type[] =            UNICODE_LITERAL_4(t,y,p,e);\r
     static const XMLCh AND[] =              UNICODE_LITERAL_3(A,N,D);\r
     static const XMLCh OR[] =               UNICODE_LITERAL_2(O,R);\r
-}\r
 \r
-extern AccessControl* SHIBSP_DLLLOCAL XMLAccessControlFactory(const DOMElement* const & e);\r
+    extern AccessControl* SHIBSP_DLLLOCAL XMLAccessControlFactory(const DOMElement* const & e);\r
+}\r
 \r
 void SHIBSP_API shibsp::registerAccessControls()\r
 {\r
index c7d29e8..5d9d352 100644 (file)
@@ -40,7 +40,7 @@ using namespace shibsp;
 using namespace xmltooling;\r
 using namespace std;\r
 \r
-namespace {\r
+namespace shibsp {\r
 \r
     class Rule : public AccessControl\r
     {\r