--- pecl/pcsc/trunk/config.m4 2014/05/04 14:56:27 333470 +++ pecl/pcsc/trunk/config.m4 2014/05/04 17:05:12 333471 @@ -29,7 +29,7 @@ AC_MSG_RESULT($PCSC_DIR) PHP_ADD_INCLUDE($PCSC_DIR/include/PCSC/) dnl PHP_EVAL_LIBLINE($PCSC_LIBS, PCSC_SHARED_LIBADD) - PHP_ADD_LIBRARY_WITH_PATH(pcsclite, "$PCSC_DIR/lib/", PCSC_SHARED_LIBADD) + PHP_ADD_LIBRARY_WITH_PATH(pcsclite, "$PCSC_DIR/$PHP_LIBDIR", PCSC_SHARED_LIBADD) dnl Finally, tell the build system about the extension and what files are needed PHP_NEW_EXTENSION(pcsc, pcsc.c, $ext_shared) --- pecl/pcsc/trunk/config.m4 2014/05/04 17:05:12 333471 +++ pecl/pcsc/trunk/config.m4 2014/05/04 17:20:35 333472 @@ -33,7 +33,7 @@ dnl Finally, tell the build system about the extension and what files are needed PHP_NEW_EXTENSION(pcsc, pcsc.c, $ext_shared) - PHP_INSTALL_HEADERS([php_pcsc.h]) + PHP_INSTALL_HEADERS([ext/pcsc], [php_pcsc.h]) PHP_SUBST(PCSC_SHARED_LIBADD) fi --- pecl/pcsc/trunk/pcsc.c 2014/05/04 17:20:35 333472 +++ pecl/pcsc/trunk/pcsc.c 2014/05/04 17:50:17 333473 @@ -135,71 +135,119 @@ 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 @@ /* 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 @@ #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 @@ #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"; } } --- pecl/pcsc/trunk/pcsc.c 2014/05/04 17:50:17 333473 +++ pecl/pcsc/trunk/pcsc.c 2014/05/04 17:53:25 333474 @@ -370,8 +370,8 @@ 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"; -#ifdef SCARD_E_SERVER_TOO_BUSY - case SCARD_E_SERVER_TOO_BUSY: return "SCARD_E_UNEXPECTED"; +#ifdef SCARD_E_UNEXPECTED + case SCARD_E_UNEXPECTED: 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";