From f4d8e4f4a42efa6329b2adf6e8554d7235d5f95e Mon Sep 17 00:00:00 2001 From: Kirby Kuehl Date: Sat, 7 Jun 2025 00:53:16 +0200 Subject: Add idevice_strerror() to interface --- include/libimobiledevice/libimobiledevice.h | 9 +++++++++ src/idevice.c | 25 +++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/include/libimobiledevice/libimobiledevice.h b/include/libimobiledevice/libimobiledevice.h index 897aa37..8df3fed 100644 --- a/include/libimobiledevice/libimobiledevice.h +++ b/include/libimobiledevice/libimobiledevice.h @@ -403,6 +403,15 @@ LIBIMOBILEDEVICE_API idevice_error_t idevice_get_handle(idevice_t device, uint32 */ LIBIMOBILEDEVICE_API idevice_error_t idevice_get_udid(idevice_t device, char **udid); +/** + * Gets a readable error string for a given idevice error code. + * + * @param err An idevice error code + * + * @return A readable error string + */ +LIBIMOBILEDEVICE_API const char* idevice_strerror(idevice_error_t err); + /** * Returns a static string of the libimobiledevice version. * diff --git a/src/idevice.c b/src/idevice.c index d07b691..e9c909f 100644 --- a/src/idevice.c +++ b/src/idevice.c @@ -1534,3 +1534,28 @@ idevice_error_t idevice_connection_disable_bypass_ssl(idevice_connection_t conne return IDEVICE_E_SUCCESS; } + +const char* idevice_strerror(idevice_error_t err) +{ + switch (err) { + case IDEVICE_E_SUCCESS: + return "Success"; + case IDEVICE_E_INVALID_ARG: + return "Invalid argument"; + case IDEVICE_E_UNKNOWN_ERROR: + return "Unknown Error"; + case IDEVICE_E_NO_DEVICE: + return "No device"; + case IDEVICE_E_NOT_ENOUGH_DATA: + return "Not enough data"; + case IDEVICE_E_CONNREFUSED: + return "Connection refused"; + case IDEVICE_E_SSL_ERROR: + return "SSL error"; + case IDEVICE_E_TIMEOUT: + return "Timeout"; + default: + break; + } + return "Unknown Error"; +} -- cgit v1.1-32-gdbae