Author: rajith
Date: Wed Dec 10 06:53:07 2008
New Revision: 725303

URL: http://svn.apache.org/viewvc?rev=725303&view=rev
Log:
This is related to QPID-1523

Modified:
    incubator/qpid/trunk/qpid/cpp/src/qpid/acl/AclPlugin.cpp
    incubator/qpid/trunk/qpid/cpp/src/tests/run_acl_tests

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/acl/AclPlugin.cpp
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/acl/AclPlugin.cpp?rev=725303&r1=725302&r2=725303&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/acl/AclPlugin.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/acl/AclPlugin.cpp Wed Dec 10 
06:53:07 2008
@@ -61,9 +61,17 @@
         }
 
        if (acl) throw Exception("ACL plugin cannot be initialized twice in one 
process.");
-        std::ostringstream oss;
-        oss << b.getDataDir().getPath() << "/" << values.aclFile;
-        values.aclFile = oss.str();
+
+       if (values.aclFile.at(0) == '/')
+       {
+               values.aclFile = values.aclFile;
+       }
+       else
+       {
+               std::ostringstream oss;
+               oss << b.getDataDir().getPath() << "/" << values.aclFile;
+               values.aclFile = oss.str();
+       }
 
         acl = new Acl(values, b);
                b.setAcl(acl.get());
@@ -89,5 +97,5 @@
 
 // For test purposes.
 boost::intrusive_ptr<Acl> getGlobalAcl() { return instance.acl; }
-    
+
 }} // namespace qpid::acl

Modified: incubator/qpid/trunk/qpid/cpp/src/tests/run_acl_tests
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/tests/run_acl_tests?rev=725303&r1=725302&r2=725303&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/tests/run_acl_tests (original)
+++ incubator/qpid/trunk/qpid/cpp/src/tests/run_acl_tests Wed Dec 10 06:53:07 
2008
@@ -15,6 +15,18 @@
         ../qpidd -q --port $LOCAL_PORT
 }
 
+test_loading_acl_from_absolute_path(){
+   ../qpidd --daemon --port 0 --no-module-dir --no-data-dir --auth no 
--load-module ../.libs/acl.so --acl-file $PWD/policy.acl -t --log-to-file 
temp.log  2>/dev/null
+    PORT=`grep "Listening on TCP port" temp.log | awk '{print $8}'`
+    ACL_FILE=`grep "notice Read ACL file" temp.log | awk '{print $7}'`    
+    rm -rf temp.log
+   ../qpidd -q --port $PORT
+   if test $ACL_FILE != "\"$PWD/policy.acl\""; then
+     echo "unable to load policy file from an absolute path";
+     return 1;
+   fi
+}
+
 if test -d ${PYTHON_DIR} ;  then
     rm -rf $DATA_DIR
     mkdir -p $DATA_DIR
@@ -24,10 +36,12 @@
     PYTHONPATH=$PYTHON_DIR
     export PYTHONPATH
     $srcdir/acl.py -v -s $srcdir/../../../specs/amqp.0-10-qpid-errata.xml -b 
localhost:$LOCAL_PORT --port $LOCAL_PORT
-    RETCODE=$?
+    RETCODE=$?   
     stop_brokers
+    test_loading_acl_from_absolute_path
+    RETCODE2=$?
     rm -rf $DATA_DIR
-    if test x$RETCODE != x0; then 
+    if test x$RETCODE != x0 -o x$RETCODE2 != x0; then 
         echo "FAIL acl tests"; exit 1;
     fi
 fi


Reply via email to