Fix to store the select response
authorWonkyu Kwon <wonkyu.kwon@samsung.com>
Wed, 22 May 2013 10:38:48 +0000 (19:38 +0900)
committerWonkyu Kwon <wonkyu.kwon@samsung.com>
Wed, 24 Jul 2013 08:56:37 +0000 (17:56 +0900)
Change-Id: Icf3fcb1a9084302022d14ddac87c3d7d30af620f

common/FileObject.cpp
common/include/Channel.h
common/include/FileObject.h
server/ServerResource.cpp

index e1d71f3..ce00b80 100644 (file)
@@ -50,7 +50,7 @@ namespace smartcard_service_api
                selectResponse.releaseBuffer();
        }
 
-       bool FileObject::setSelectResponse(ByteArray &response)
+       bool FileObject::setSelectResponse(ByteArray response)
        {
                bool result = false;
 
index 2e0579f..fda7386 100644 (file)
@@ -41,10 +41,10 @@ namespace smartcard_service_api
                SessionHelper *session;
                int channelNum;
 
-               Channel() : Synchronous() { channelNum = -1; }
-               Channel(SessionHelper *session) : Synchronous() { this->session = session; }
+               Channel() : session(NULL), channelNum(-1) {}
+               Channel(SessionHelper *session) : session(session), channelNum(-1) {}
 
-               inline void setSelectResponse(ByteArray &response) { selectResponse = response; }
+               inline void setSelectResponse(ByteArray response) { selectResponse = response; }
 
        public :
                virtual ~Channel() {};
index ec9e90b..55bd2f7 100644 (file)
@@ -43,7 +43,7 @@ namespace smartcard_service_api
 
        protected:
                ByteArray selectResponse;
-               bool setSelectResponse(ByteArray &response);
+               bool setSelectResponse(ByteArray response);
 
        public:
                static const int SUCCESS = 0;
@@ -68,6 +68,8 @@ namespace smartcard_service_api
                int select(unsigned int fid);
                int selectParent();
 
+               inline ByteArray getSelectResponse() { return selectResponse; }
+
                FCI *getFCI();
                FCP *getFCP();
 
index 232fcdf..f1048bc 100644 (file)
@@ -528,6 +528,7 @@ namespace smartcard_service_api
                                {
                                        /* remove privilege mode */
                                        channel->unsetPrivilegeMode();
+                                       channel->setSelectResponse(pkcs15.getSelectResponse());
                                }
                                else
                                {
@@ -546,6 +547,7 @@ namespace smartcard_service_api
                                {
                                        /* remove privilege mode */
                                        channel->unsetPrivilegeMode();
+                                       channel->setSelectResponse(file.getSelectResponse());
                                }
                                else
                                {