Changeset 1188 for trunk


Ignore:
Timestamp:
01/09/12 22:23:29 (4 months ago)
Author:
alonbl
Message:

Revert 1187

Location:
trunk/src/ifd
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/ifd/ifd-ccid.c

    r1187 r1188  
    228228{ 
    229229        unsigned char *p = (unsigned char *)status; 
    230         int ret; 
    231  
    232         if ((p[7] >> 6 & 3) == 0) { 
    233                 ret = 0; 
    234         } 
     230 
     231        if ((p[7] >> 6 & 3) == 0) 
     232                return 0; 
     233 
    235234        /* XXX */ 
    236         else if ((p[7] >> 6 & 3) == 2) { 
     235        if ((p[7] >> 6 & 3) == 2) { 
    237236                /*ct_error("card requests more time"); */ 
    238                 ret = -300; 
    239         } 
    240         else { 
    241                 switch (p[8]) { 
    242                 case CCID_ERR_ICC_MUTE: 
    243                         ret = IFD_ERROR_NO_CARD; 
    244                         break; 
    245                 case CCID_ERR_XFR_PARITY: 
    246                 case CCID_ERR_OVERRUN: 
    247                         ret = IFD_ERROR_COMM_ERROR; 
    248                         break; 
    249                 case CCID_ERR_BAD_ATR_TS: 
    250                 case CCID_ERR_BAD_ATR_TCK: 
    251                         ret = IFD_ERROR_NO_ATR; 
    252                         break; 
    253                 case CCID_ERR_PROT_NOSUP: 
    254                 case CCID_ERR_CLASS_NOSUP: 
    255                         ret = IFD_ERROR_INCOMPATIBLE_DEVICE; 
    256                         break; 
    257                 case CCID_ERR_BAD_PROC_BYTE: 
    258                         ret = IFD_ERROR_INVALID_ARG; 
    259                         break; 
    260                 case CCID_ERR_BUSY_AUTO_SEQ: 
    261                 case CCID_ERR_SLOT_BUSY: 
    262                         ret = IFD_ERROR_TIMEOUT; 
    263                         break; 
    264                 case CCID_ERR_PIN_TIMEOUT: 
    265                         ret = IFD_ERROR_USER_TIMEOUT; 
    266                         break; 
    267                 case CCID_ERR_PIN_CANCELED: 
    268                         ret = IFD_ERROR_USER_ABORT; 
    269                         break; 
    270                 case CCID_OFFSET_MSGTYPE: 
    271                         ret = IFD_ERROR_NOT_SUPPORTED; 
    272                         break; 
    273                 case CCID_OFFSET_SLOT: 
    274                         ret = IFD_ERROR_INVALID_SLOT; 
    275                         break; 
    276                 default: 
    277                         ret = IFD_ERROR_GENERIC; 
    278                         break; 
    279                 } 
    280         } 
    281  
    282         ifd_debug(1, "r: %d", ret); 
    283         return ret; 
     237                return -300; 
     238        } 
     239 
     240        switch (p[8]) { 
     241        case CCID_ERR_ICC_MUTE: 
     242                return IFD_ERROR_NO_CARD; 
     243        case CCID_ERR_XFR_PARITY: 
     244        case CCID_ERR_OVERRUN: 
     245                return IFD_ERROR_COMM_ERROR; 
     246        case CCID_ERR_BAD_ATR_TS: 
     247        case CCID_ERR_BAD_ATR_TCK: 
     248                return IFD_ERROR_NO_ATR; 
     249        case CCID_ERR_PROT_NOSUP: 
     250        case CCID_ERR_CLASS_NOSUP: 
     251                return IFD_ERROR_INCOMPATIBLE_DEVICE; 
     252        case CCID_ERR_BAD_PROC_BYTE: 
     253                return IFD_ERROR_INVALID_ARG; 
     254        case CCID_ERR_BUSY_AUTO_SEQ: 
     255        case CCID_ERR_SLOT_BUSY: 
     256                return IFD_ERROR_TIMEOUT; 
     257        case CCID_ERR_PIN_TIMEOUT: 
     258                return IFD_ERROR_USER_TIMEOUT; 
     259        case CCID_ERR_PIN_CANCELED: 
     260                return IFD_ERROR_USER_ABORT; 
     261        case CCID_OFFSET_MSGTYPE: 
     262                return IFD_ERROR_NOT_SUPPORTED; 
     263        case CCID_OFFSET_SLOT: 
     264                return IFD_ERROR_INVALID_SLOT; 
     265        } 
     266        return IFD_ERROR_GENERIC; 
    284267} 
    285268 
     
    293276        if (slot >= reader->nslots) 
    294277                return IFD_ERROR_INVALID_SLOT; 
    295         if (sendlen + 10 > outsz) {     /* this probably means the apdu is larger 
     278        if (sendlen + 10 > outsz)       /* this probably means the apdu is larger 
    296279                                           than the supported MaxMessageSize - 10  */ 
    297                 ifd_debug(1, "error: unsupported (apdu larger than max outsz: %d, sendlen: %d)", outsz, sendlen); 
    298280                return IFD_ERROR_NOT_SUPPORTED; 
    299         } 
    300281        *p++ = cmd; 
    301282        *p++ = sendlen & 0xFF; 
     
    13401321        ccid_status_t *st = (ccid_status_t *) reader->driver_data; 
    13411322 
    1342         ifd_debug(1, "called. reader_type: %d, icc_proto[slot]=%d", st->reader_type, st->icc_proto[slot]); 
     1323        ifd_debug(1, "called."); 
    13431324        if (st->reader_type == TYPE_APDU || 
    13441325            (st->reader_type == TYPE_TPDU && 
    13451326             st->icc_proto[slot] == IFD_PROTOCOL_T0)) 
    13461327                return ccid_exchange(reader, slot, sbuf, slen, rbuf, rlen); 
    1347  
    1348         ifd_debug(1, "error: unsupported (slot settings)"); 
    13491328        return IFD_ERROR_NOT_SUPPORTED; 
    13501329} 
  • trunk/src/ifd/process.c

    r1187 r1188  
    387387                       ct_tlv_builder_t * resp) 
    388388{ 
    389         unsigned char replybuf[258+256]; 
     389        unsigned char replybuf[258]; 
    390390        unsigned char *data; 
    391391        size_t data_len; 
Note: See TracChangeset for help on using the changeset viewer.