ResponseHelper resp(response);
selectResponse = response;
- if (resp.getStatus() == 0)
+ if (resp.getStatus() >= 0)
{
fcp.releaseFCP();
}
else
{
- _ERR("status word [%d][ %02X %02X ]",
- resp.getStatus(), resp.getSW1(), resp.getSW2());
+ _ERR("status word [ %02X %02X ]",
+ resp.getSW1(), resp.getSW2());
}
}
else
{
ResponseHelper resp(result);
- if (resp.getStatus() == 0)
- {
- if (setSelectResponse(result) == true)
- {
- opened = true;
- ret = SUCCESS;
- }
- else
- {
- ret = ERROR_ILLEGAL_STATE;
- }
- }
- else if (resp.getStatus() == ResponseHelper::ERROR_FILE_NOT_FOUND)
+ ret = resp.getStatus();
+
+ if (setSelectResponse(result) == true)
{
- ret = ResponseHelper::ERROR_FILE_NOT_FOUND;
+ opened = true;
}
}
else
ResponseHelper resp(response);
ret = resp.getStatus();
- if (ret == 0)
+ if (ret >= 0)
{
_DBG("response [%d] : %s", response.getLength(), response.toString());
}
else
{
- _ERR("status word [%d][ %02X %02X ]", resp.getStatus(), resp.getSW1(), resp.getSW2());
+ _ERR("status word [ %02X %02X ]", resp.getSW1(), resp.getSW2());
}
}
else
{
ResponseHelper resp(response);
- if (resp.getStatus() == 0)
+ if (resp.getStatus() >= 0)
{
_DBG("response [%d] : %s", response.getLength(), response.toString());
}
else
{
- _ERR("status word [%d][ %02X %02X ]", resp.getStatus(), resp.getSW1(), resp.getSW2());
+ _ERR("status word [ %02X %02X ]", resp.getSW1(), resp.getSW2());
}
}
else
{
ResponseHelper resp(response);
- if (resp.getStatus() == 0)
+ if (resp.getStatus() >= 0)
{
_DBG("response [%d] : %s", response.getLength(), response.toString());
}
else
{
- _ERR("status word [%d][ %02X %02X ]", resp.getStatus(), resp.getSW1(), resp.getSW2());
+ _ERR("status word [ %02X %02X ]", resp.getSW1(), resp.getSW2());
}
}
else
{
ResponseHelper resp(response);
- if (resp.getStatus() == 0)
+ if (resp.getStatus() >= 0)
{
result = resp.getDataField()[0];
}
else
{
- _ERR("status word [%d][ %02X %02X ]", resp.getStatus(), resp.getSW1(), resp.getSW2());
- if (0)
- {
- /* TODO : if there is no more channel, return error code */
- _ERR("no more logical channel");
- result = -2;
- }
+ result = resp.getStatus();
}
}
else
int ServerResource::_closeLogicalChannel(Terminal *terminal, int channelNum)
{
- int result = -1;
+ int result = SCARD_ERROR_UNKNOWN;
int rv = 0;
ByteArray command;
ByteArray response;
{
ResponseHelper resp(response);
- if (resp.getStatus() == 0)
+ if (resp.getStatus() >= 0)
{
_DBG("channel closed [%d]", channelNum);
- result = 0;
+ result = SCARD_ERROR_OK;
}
else
{
- _ERR("status word [%d][ %02X %02X ]", resp.getStatus(), resp.getSW1(), resp.getSW2());
+ _ERR("status word [ %02X %02X ]", resp.getSW1(), resp.getSW2());
}
}
else
FileObject file(channel);
rv = file.select(aid);
- if (rv == FileObject::SUCCESS)
+ if (rv >= 0)
{
/* remove privilege mode */
channel->unsetPrivilegeMode();