mirror of
https://github.com/pcsc-for-php/pcsc.git
synced 2026-08-08 21:09:26 +02:00
fix build with old pcsc-lite (tested with 1.5.2 on rhel-6)
git-svn-id: https://svn.php.net/repository/pecl/pcsc/trunk@333473 c90b9560-bf6c-de11-be94-00142212c4b1
This commit is contained in:
parent
0090e833ab
commit
12a1e3f374
1 changed files with 97 additions and 1 deletions
98
pcsc.c
98
pcsc.c
|
|
@ -135,71 +135,119 @@ static void php_pcsc_globals_ctor(zend_pcsc_globals* pcsc_globals) {
|
|||
PHP_MINIT_FUNCTION(pcsc)
|
||||
{
|
||||
/* Return Codes */
|
||||
#ifdef SCARD_E_BAD_SEEK
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_BAD_SEEK);
|
||||
#endif
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_CANCELLED);
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_CANT_DISPOSE);
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_CARD_UNSUPPORTED);
|
||||
#ifdef SCARD_E_CERTIFICATE_UNAVAILABLE
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_CERTIFICATE_UNAVAILABLE);
|
||||
#endif
|
||||
#ifdef SCARD_E_COMM_DATA_LOST
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_COMM_DATA_LOST);
|
||||
#endif
|
||||
#ifdef SCARD_E_DIR_NOT_FOUND
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_DIR_NOT_FOUND);
|
||||
#endif
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_DUPLICATE_READER);
|
||||
#ifdef SCARD_E_FILE_NOT_FOUND
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_FILE_NOT_FOUND);
|
||||
#endif
|
||||
#ifdef SCARD_E_ICC_CREATEORDER
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_ICC_CREATEORDER);
|
||||
#endif
|
||||
#ifdef SCARD_E_ICC_INSTALLATION
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_ICC_INSTALLATION);
|
||||
#endif
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_INSUFFICIENT_BUFFER);
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_INVALID_ATR);
|
||||
#ifdef SCARD_E_INVALID_CHV
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_INVALID_CHV);
|
||||
#endif
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_INVALID_HANDLE);
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_INVALID_PARAMETER);
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_INVALID_TARGET);
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_INVALID_VALUE);
|
||||
#ifdef SCARD_E_NO_ACCESS
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_NO_ACCESS);
|
||||
#endif
|
||||
#ifdef SCARD_E_NO_DIR
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_NO_DIR);
|
||||
#endif
|
||||
#ifdef SCARD_E_NO_FILE
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_NO_FILE);
|
||||
#endif
|
||||
#ifdef SCARD_E_NO_KEY_CONTAINER
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_NO_KEY_CONTAINER);
|
||||
#endif
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_NO_MEMORY);
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_NO_READERS_AVAILABLE);
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_NO_SERVICE);
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_NO_SMARTCARD);
|
||||
#ifdef SCARD_E_NO_SUCH_CERTIFICATE
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_NO_SUCH_CERTIFICATE);
|
||||
#endif
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_NOT_READY);
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_NOT_TRANSACTED);
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_PCI_TOO_SMALL);
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_PROTO_MISMATCH);
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_READER_UNAVAILABLE);
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_READER_UNSUPPORTED);
|
||||
#ifdef SCARD_E_SERVER_TOO_BUSY
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_SERVER_TOO_BUSY);
|
||||
#endif
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_SERVICE_STOPPED);
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_SHARING_VIOLATION);
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_SYSTEM_CANCELLED);
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_TIMEOUT);
|
||||
#ifdef SCARD_E_UNEXPECTED
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_UNEXPECTED);
|
||||
#endif
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_UNKNOWN_CARD);
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_UNKNOWN_READER);
|
||||
#ifdef SCARD_E_UNKNOWN_RES_MNG
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_UNKNOWN_RES_MNG);
|
||||
#endif
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_UNSUPPORTED_FEATURE);
|
||||
#ifdef SCARD_E_WRITE_TOO_MANY
|
||||
REGISTER_PCSC_CONSTANT(SCARD_E_WRITE_TOO_MANY);
|
||||
#endif
|
||||
|
||||
REGISTER_PCSC_CONSTANT(SCARD_F_COMM_ERROR);
|
||||
REGISTER_PCSC_CONSTANT(SCARD_F_INTERNAL_ERROR);
|
||||
REGISTER_PCSC_CONSTANT(SCARD_F_UNKNOWN_ERROR);
|
||||
REGISTER_PCSC_CONSTANT(SCARD_F_WAITED_TOO_LONG);
|
||||
|
||||
#ifdef SCARD_P_SHUTDOWN
|
||||
REGISTER_PCSC_CONSTANT(SCARD_P_SHUTDOWN);
|
||||
#endif
|
||||
|
||||
REGISTER_PCSC_CONSTANT(SCARD_S_SUCCESS);
|
||||
|
||||
#ifdef SCARD_W_CANCELLED_BY_USER
|
||||
REGISTER_PCSC_CONSTANT(SCARD_W_CANCELLED_BY_USER);
|
||||
#endif
|
||||
#ifdef SCARD_W_CARD_NOT_AUTHENTICATED
|
||||
REGISTER_PCSC_CONSTANT(SCARD_W_CARD_NOT_AUTHENTICATED);
|
||||
#endif
|
||||
#ifdef SCARD_W_CHV_BLOCKED
|
||||
REGISTER_PCSC_CONSTANT(SCARD_W_CHV_BLOCKED);
|
||||
#endif
|
||||
#ifdef SCARD_W_EOF
|
||||
REGISTER_PCSC_CONSTANT(SCARD_W_EOF);
|
||||
#endif
|
||||
REGISTER_PCSC_CONSTANT(SCARD_W_REMOVED_CARD);
|
||||
REGISTER_PCSC_CONSTANT(SCARD_W_RESET_CARD);
|
||||
#ifdef SCARD_W_SECURITY_VIOLATION
|
||||
REGISTER_PCSC_CONSTANT(SCARD_W_SECURITY_VIOLATION);
|
||||
#endif
|
||||
REGISTER_PCSC_CONSTANT(SCARD_W_UNPOWERED_CARD);
|
||||
REGISTER_PCSC_CONSTANT(SCARD_W_UNRESPONSIVE_CARD);
|
||||
REGISTER_PCSC_CONSTANT(SCARD_W_UNSUPPORTED_CARD);
|
||||
#ifdef SCARD_W_WRONG_CHV
|
||||
REGISTER_PCSC_CONSTANT(SCARD_W_WRONG_CHV);
|
||||
#endif
|
||||
|
||||
/* Protocols */
|
||||
REGISTER_PCSC_CONSTANT(SCARD_PROTOCOL_RAW);
|
||||
|
|
@ -256,48 +304,80 @@ PHP_MINFO_FUNCTION(pcsc)
|
|||
/* map error codes to string */
|
||||
static char* php_pcsc_error_to_string(DWORD dwRC) {
|
||||
switch(dwRC) {
|
||||
#ifdef SCARD_E_BAD_SEEK
|
||||
case SCARD_E_BAD_SEEK: return "SCARD_E_BAD_SEEK";
|
||||
#endif
|
||||
case SCARD_E_CANCELLED: return "SCARD_E_CANCELLED";
|
||||
case SCARD_E_CANT_DISPOSE: return "SCARD_E_CANT_DISPOSE";
|
||||
case SCARD_E_CARD_UNSUPPORTED: return "SCARD_E_CARD_UNSUPPORTED";
|
||||
#ifdef SCARD_E_CERTIFICATE_UNAVAILABLE
|
||||
case SCARD_E_CERTIFICATE_UNAVAILABLE: return "SCARD_E_CERTIFICATE_UNAVAILABLE";
|
||||
#endif
|
||||
#ifdef SCARD_E_COMM_DATA_LOST
|
||||
case SCARD_E_COMM_DATA_LOST: return "SCARD_E_COMM_DATA_LOST";
|
||||
#endif
|
||||
#ifdef SCARD_E_DIR_NOT_FOUND
|
||||
case SCARD_E_DIR_NOT_FOUND: return "SCARD_E_DIR_NOT_FOUND";
|
||||
#endif
|
||||
case SCARD_E_DUPLICATE_READER: return "SCARD_E_DUPLICATE_READER";
|
||||
#ifdef SCARD_E_FILE_NOT_FOUND
|
||||
case SCARD_E_FILE_NOT_FOUND: return "SCARD_E_FILE_NOT_FOUND";
|
||||
#endif
|
||||
#ifdef SCARD_E_ICC_CREATEORDER
|
||||
case SCARD_E_ICC_CREATEORDER: return "SCARD_E_ICC_CREATEORDER";
|
||||
#endif
|
||||
#ifdef SCARD_E_ICC_INSTALLATION
|
||||
case SCARD_E_ICC_INSTALLATION: return "SCARD_E_ICC_INSTALLATION";
|
||||
#endif
|
||||
case SCARD_E_INSUFFICIENT_BUFFER: return "SCARD_E_INSUFFICIENT_BUFFER";
|
||||
case SCARD_E_INVALID_ATR: return "SCARD_E_INVALID_ATR";
|
||||
#ifdef SCARD_E_INVALID_CHV
|
||||
case SCARD_E_INVALID_CHV: return "SCARD_E_INVALID_CHV";
|
||||
#endif
|
||||
case SCARD_E_INVALID_HANDLE: return "SCARD_E_INVALID_HANDLE";
|
||||
case SCARD_E_INVALID_PARAMETER: return "SCARD_E_INVALID_PARAMETER";
|
||||
case SCARD_E_INVALID_TARGET: return "SCARD_E_INVALID_TARGET";
|
||||
case SCARD_E_INVALID_VALUE: return "SCARD_E_INVALID_VALUE";
|
||||
#ifdef SCARD_E_NO_ACCESS
|
||||
case SCARD_E_NO_ACCESS: return "SCARD_E_NO_ACCESS";
|
||||
#endif
|
||||
#ifdef SCARD_E_NO_DIR
|
||||
case SCARD_E_NO_DIR: return "SCARD_E_NO_DIR";
|
||||
#endif
|
||||
#ifdef SCARD_E_NO_FILE
|
||||
case SCARD_E_NO_FILE: return "SCARD_E_NO_FILE";
|
||||
#endif
|
||||
#ifdef SCARD_E_NO_KEY_CONTAINER
|
||||
case SCARD_E_NO_KEY_CONTAINER: return "SCARD_E_NO_KEY_CONTAINER";
|
||||
#endif
|
||||
case SCARD_E_NO_MEMORY: return "SCARD_E_NO_MEMORY";
|
||||
case SCARD_E_NO_READERS_AVAILABLE: return "SCARD_E_NO_READERS_AVAILABLE";
|
||||
case SCARD_E_NO_SERVICE: return "SCARD_E_NO_SERVICE";
|
||||
case SCARD_E_NO_SMARTCARD: return "SCARD_E_NO_SMARTCARD";
|
||||
#ifdef SCARD_E_NO_ACCESS
|
||||
case SCARD_E_NO_SUCH_CERTIFICATE: return "SCARD_E_NO_SUCH_CERTIFICATE";
|
||||
#endif
|
||||
case SCARD_E_NOT_READY: return "SCARD_E_NOT_READY";
|
||||
case SCARD_E_NOT_TRANSACTED: return "SCARD_E_NOT_TRANSACTED";
|
||||
case SCARD_E_PCI_TOO_SMALL: return "SCARD_E_PCI_TOO_SMALL";
|
||||
case SCARD_E_PROTO_MISMATCH: return "SCARD_E_PROTO_MISMATCH";
|
||||
case SCARD_E_READER_UNAVAILABLE: return "SCARD_E_READER_UNAVAILABLE";
|
||||
case SCARD_E_READER_UNSUPPORTED: return "SCARD_E_READER_UNSUPPORTED";
|
||||
#ifdef SCARD_E_SERVER_TOO_BUSY
|
||||
case SCARD_E_SERVER_TOO_BUSY: return "SCARD_E_SERVER_TOO_BUSY";
|
||||
#endif
|
||||
case SCARD_E_SERVICE_STOPPED: return "SCARD_E_SERVICE_STOPPED";
|
||||
case SCARD_E_SHARING_VIOLATION: return "SCARD_E_SHARING_VIOLATION";
|
||||
case SCARD_E_SYSTEM_CANCELLED: return "SCARD_E_SYSTEM_CANCELLED";
|
||||
case SCARD_E_TIMEOUT: return "SCARD_E_TIMEOUT";
|
||||
case SCARD_E_UNEXPECTED: return "SCARD_E_UNEXPECTED";
|
||||
#ifdef SCARD_E_SERVER_TOO_BUSY
|
||||
case SCARD_E_SERVER_TOO_BUSY: return "SCARD_E_UNEXPECTED";
|
||||
#endif
|
||||
case SCARD_E_UNKNOWN_CARD: return "SCARD_E_UNKNOWN_CARD";
|
||||
case SCARD_E_UNKNOWN_READER: return "SCARD_E_UNKNOWN_READER";
|
||||
#ifdef SCARD_E_UNKNOWN_RES_MNG
|
||||
case SCARD_E_UNKNOWN_RES_MNG: return "SCARD_E_UNKNOWN_RES_MNG";
|
||||
#endif
|
||||
/* apparently E_UNEXPECTED and E_UNSUPPORTED are defined
|
||||
by a buggy header file on Linux, causing a "double used constant"
|
||||
error. Just leave this out on Linux, then.
|
||||
|
|
@ -305,14 +385,20 @@ static char* php_pcsc_error_to_string(DWORD dwRC) {
|
|||
#ifdef PHP_WIN32
|
||||
case SCARD_E_UNSUPPORTED_FEATURE: return "SCARD_E_UNSUPPORTED_FEATURE";
|
||||
#endif
|
||||
#ifdef SCARD_E_WRITE_TOO_MANY
|
||||
case SCARD_E_WRITE_TOO_MANY: return "SCARD_E_WRITE_TOO_MANY";
|
||||
#endif
|
||||
case SCARD_F_COMM_ERROR: return "SCARD_E_WRITE_TOO_MANY";
|
||||
case SCARD_F_INTERNAL_ERROR: return "SCARD_F_INTERNAL_ERROR";
|
||||
case SCARD_F_UNKNOWN_ERROR: return "SCARD_F_UNKNOWN_ERROR";
|
||||
case SCARD_F_WAITED_TOO_LONG: return "SCARD_F_WAITED_TOO_LONG";
|
||||
#ifdef SCARD_P_SHUTDOWN
|
||||
case SCARD_P_SHUTDOWN: return "SCARD_P_SHUTDOWN";
|
||||
#endif
|
||||
case SCARD_S_SUCCESS: return "SCARD_S_SUCCESS";
|
||||
#ifdef SCARD_W_CANCELLED_BY_USER
|
||||
case SCARD_W_CANCELLED_BY_USER: return "SCARD_W_CANCELLED_BY_USER";
|
||||
#endif
|
||||
#ifdef SCARD_W_CACHE_ITEM_NOT_FOUND
|
||||
case SCARD_W_CACHE_ITEM_NOT_FOUND: return "SCARD_W_CACHE_ITEM_NOT_FOUND";
|
||||
#endif
|
||||
|
|
@ -322,16 +408,26 @@ static char* php_pcsc_error_to_string(DWORD dwRC) {
|
|||
#ifdef SCARD_W_CACHE_ITEM_TOO_BIG
|
||||
case SCARD_W_CACHE_ITEM_TOO_BIG: return "SCARD_W_CACHE_ITEM_TOO_BIG";
|
||||
#endif
|
||||
#ifdef SCARD_W_CARD_NOT_AUTHENTICATED
|
||||
case SCARD_W_CARD_NOT_AUTHENTICATED: return "SCARD_W_CARD_NOT_AUTHENTICATED";
|
||||
#endif
|
||||
#ifdef SCARD_W_CHV_BLOCKED
|
||||
case SCARD_W_CHV_BLOCKED: return "SCARD_W_CHV_BLOCKED";
|
||||
#endif
|
||||
#ifdef SCARD_W_EOF
|
||||
case SCARD_W_EOF: return "SCARD_W_EOF";
|
||||
#endif
|
||||
case SCARD_W_REMOVED_CARD: return "SCARD_W_REMOVED_CARD";
|
||||
case SCARD_W_RESET_CARD: return "SCARD_W_RESET_CARD";
|
||||
#ifdef SCARD_W_SECURITY_VIOLATION
|
||||
case SCARD_W_SECURITY_VIOLATION: return "SCARD_W_SECURITY_VIOLATION";
|
||||
#endif
|
||||
case SCARD_W_UNPOWERED_CARD: return "SCARD_W_UNPOWERED_CARD";
|
||||
case SCARD_W_UNRESPONSIVE_CARD: return "SCARD_W_UNRESPONSIVE_CARD";
|
||||
case SCARD_W_UNSUPPORTED_CARD: return "SCARD_W_UNSUPPORTED_CARD";
|
||||
#ifdef SCARD_W_WRONG_CHV
|
||||
case SCARD_W_WRONG_CHV: return "SCARD_W_WRONG_CHV";
|
||||
#endif
|
||||
default: return "Unknown";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue