Changeset 3488
- Timestamp:
- 04/22/08 18:52:14 (9 months ago)
- Files:
-
- 1 modified
-
branches/alonbl/pnp/src/libopensc/reader-pcsc.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/alonbl/pnp/src/libopensc/reader-pcsc.c
r3487 r3488 761 761 gpriv->enable_pinpad = 0; 762 762 gpriv->provider_library = DEFAULT_PCSC_PROVIDER; 763 gpriv->pcsc_ctx = -1; 763 764 764 765 conf_block = sc_get_conf_block(ctx, "reader_driver", "pcsc", 1); … … 826 827 } 827 828 828 rv = gpriv->SCardEstablishContext(SCARD_SCOPE_USER,829 NULL, NULL, &gpriv->pcsc_ctx);830 if (rv != SCARD_S_SUCCESS) {831 ret = pcsc_ret_to_error(rv);832 goto out;833 }834 835 829 *reader_data = gpriv; 836 830 gpriv = NULL; … … 871 865 const char *mszGroups = NULL; 872 866 int ret = SC_ERROR_INTERNAL; 873 874 rv = gpriv->SCardListReaders(gpriv->pcsc_ctx, NULL, NULL, 875 (LPDWORD) &reader_buf_size); 876 if (rv != SCARD_S_SUCCESS) { 877 ret = pcsc_ret_to_error(rv); 867 int again; 868 869 if (!priv) { 870 ret = SC_ERROR_NO_READERS_FOUND; 878 871 goto out; 879 872 } 873 874 do { 875 rv = gpriv->SCardListReaders(gpriv->pcsc_ctx, NULL, NULL, 876 (LPDWORD) &reader_buf_size); 877 if (rv != SCARD_S_SUCCESS) { 878 if (rv != SCARD_E_INVALID_HANDLE) { 879 ret = pcsc_ret_to_error(rv); 880 goto out; 881 } 882 883 rv = gpriv->SCardEstablishContext(SCARD_SCOPE_USER, 884 NULL, NULL, &gpriv->pcsc_ctx); 885 if (rv != SCARD_S_SUCCESS) { 886 ret = pcsc_ret_to_error(rv); 887 goto out; 888 } 889 890 rv = SCARD_E_INVALID_HANDLE; 891 } 892 } while (rv != SCARD_S_SUCCESS); 880 893 881 894 reader_buf = (char *) malloc(sizeof(char) * reader_buf_size);
