From 82c858ed25fe0629dec3a6b8ec1b217efd7f65ff Mon Sep 17 00:00:00 2001 From: Nikias Bassen Date: Mon, 2 Dec 2024 06:36:29 +0100 Subject: Move IDEVICE_ACTIVATION_API to public header --- configure.ac | 10 +++--- include/libideviceactivation.h | 70 +++++++++++++++++++++----------------- src/activation.c | 76 ++++++++++++++++++++++-------------------- 3 files changed, 84 insertions(+), 72 deletions(-) diff --git a/configure.ac b/configure.ac index c84c6de..d4e1d79 100644 --- a/configure.ac +++ b/configure.ac @@ -73,12 +73,12 @@ esac AM_CONDITIONAL(WIN32, test x$win32 = xtrue) AS_COMPILER_FLAGS(GLOBAL_CFLAGS, "-Wall -Wextra -Wmissing-declarations -Wredundant-decls -Wshadow -Wpointer-arith -Wwrite-strings -Wswitch-default -Wno-unused-parameter -fsigned-char -fvisibility=hidden") -AC_SUBST(GLOBAL_CFLAGS) -case "$GLOBAL_CFLAGS" in - *-fvisibility=hidden*) - AC_DEFINE([HAVE_FVISIBILITY], [1], [Define if compiled with -fvisibility=hidden]) -esac +if test "x$enable_static" = "xyes" -a "x$enable_shared" = "xno"; then + GLOBAL_CFLAGS+=" -DIDEVICE_ACTIVATION_STATIC" +fi + +AC_SUBST(GLOBAL_CFLAGS) m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) diff --git a/include/libideviceactivation.h b/include/libideviceactivation.h index 9b78c20..dbee85b 100644 --- a/include/libideviceactivation.h +++ b/include/libideviceactivation.h @@ -31,6 +31,16 @@ extern "C" { #include #include +#ifndef IDEVICE_ACTIVATION_API + #ifdef IDEVICE_ACTIVATION_STATIC + #define IDEVICE_ACTIVATION_API + #elif defined(_WIN32) + #define IDEVICE_ACTIVATION_API __declspec(dllimport) + #else + #define IDEVICE_ACTIVATION_API + #endif +#endif + typedef enum { IDEVICE_ACTIVATION_E_SUCCESS = 0, IDEVICE_ACTIVATION_E_INCOMPLETE_INFO = -1, @@ -55,44 +65,44 @@ typedef idevice_activation_response* idevice_activation_response_t; /* Interface */ -void idevice_activation_set_debug_level(int level); +IDEVICE_ACTIVATION_API void idevice_activation_set_debug_level(int level); -idevice_activation_error_t idevice_activation_request_new(idevice_activation_client_type_t activation_type, idevice_activation_request_t* request); -idevice_activation_error_t idevice_activation_request_new_from_lockdownd(idevice_activation_client_type_t activation_type, lockdownd_client_t lockdown, idevice_activation_request_t* request); -idevice_activation_error_t idevice_activation_drm_handshake_request_new(idevice_activation_client_type_t client_type, idevice_activation_request_t* request); -void idevice_activation_request_free(idevice_activation_request_t request); +IDEVICE_ACTIVATION_API idevice_activation_error_t idevice_activation_request_new(idevice_activation_client_type_t activation_type, idevice_activation_request_t* request); +IDEVICE_ACTIVATION_API idevice_activation_error_t idevice_activation_request_new_from_lockdownd(idevice_activation_client_type_t activation_type, lockdownd_client_t lockdown, idevice_activation_request_t* request); +IDEVICE_ACTIVATION_API idevice_activation_error_t idevice_activation_drm_handshake_request_new(idevice_activation_client_type_t client_type, idevice_activation_request_t* request); +IDEVICE_ACTIVATION_API void idevice_activation_request_free(idevice_activation_request_t request); -void idevice_activation_request_get_fields(idevice_activation_request_t request, plist_t* fields); -void idevice_activation_request_set_fields(idevice_activation_request_t request, plist_t fields); -void idevice_activation_request_set_fields_from_response(idevice_activation_request_t request, const idevice_activation_response_t response); -void idevice_activation_request_set_field(idevice_activation_request_t request, const char* key, const char* value); -void idevice_activation_request_get_field(idevice_activation_request_t request, const char* key, char** value); +IDEVICE_ACTIVATION_API void idevice_activation_request_get_fields(idevice_activation_request_t request, plist_t* fields); +IDEVICE_ACTIVATION_API void idevice_activation_request_set_fields(idevice_activation_request_t request, plist_t fields); +IDEVICE_ACTIVATION_API void idevice_activation_request_set_fields_from_response(idevice_activation_request_t request, const idevice_activation_response_t response); +IDEVICE_ACTIVATION_API void idevice_activation_request_set_field(idevice_activation_request_t request, const char* key, const char* value); +IDEVICE_ACTIVATION_API void idevice_activation_request_get_field(idevice_activation_request_t request, const char* key, char** value); -void idevice_activation_request_get_url(idevice_activation_request_t request, const char** url); -void idevice_activation_request_set_url(idevice_activation_request_t request, const char* url); +IDEVICE_ACTIVATION_API void idevice_activation_request_get_url(idevice_activation_request_t request, const char** url); +IDEVICE_ACTIVATION_API void idevice_activation_request_set_url(idevice_activation_request_t request, const char* url); -idevice_activation_error_t idevice_activation_response_new(idevice_activation_response_t* response); -idevice_activation_error_t idevice_activation_response_new_from_html(const char* content, idevice_activation_response_t* response); -idevice_activation_error_t idevice_activation_response_to_buffer(idevice_activation_response_t response, char** buffer, size_t* size); -void idevice_activation_response_free(idevice_activation_response_t response); +IDEVICE_ACTIVATION_API idevice_activation_error_t idevice_activation_response_new(idevice_activation_response_t* response); +IDEVICE_ACTIVATION_API idevice_activation_error_t idevice_activation_response_new_from_html(const char* content, idevice_activation_response_t* response); +IDEVICE_ACTIVATION_API idevice_activation_error_t idevice_activation_response_to_buffer(idevice_activation_response_t response, char** buffer, size_t* size); +IDEVICE_ACTIVATION_API void idevice_activation_response_free(idevice_activation_response_t response); -void idevice_activation_response_get_field(idevice_activation_response_t response, const char* key, char** value); -void idevice_activation_response_get_fields(idevice_activation_response_t response, plist_t* fields); -void idevice_activation_response_get_label(idevice_activation_response_t response, const char* key, char** value); -void idevice_activation_response_get_placeholder(idevice_activation_response_t response, const char* key, char **value); +IDEVICE_ACTIVATION_API void idevice_activation_response_get_field(idevice_activation_response_t response, const char* key, char** value); +IDEVICE_ACTIVATION_API void idevice_activation_response_get_fields(idevice_activation_response_t response, plist_t* fields); +IDEVICE_ACTIVATION_API void idevice_activation_response_get_label(idevice_activation_response_t response, const char* key, char** value); +IDEVICE_ACTIVATION_API void idevice_activation_response_get_placeholder(idevice_activation_response_t response, const char* key, char **value); -void idevice_activation_response_get_title(idevice_activation_response_t response, const char** title); -void idevice_activation_response_get_description(idevice_activation_response_t response, const char** description); -void idevice_activation_response_get_activation_record(idevice_activation_response_t response, plist_t* activation_record); -void idevice_activation_response_get_headers(idevice_activation_response_t response, plist_t* headers); +IDEVICE_ACTIVATION_API void idevice_activation_response_get_title(idevice_activation_response_t response, const char** title); +IDEVICE_ACTIVATION_API void idevice_activation_response_get_description(idevice_activation_response_t response, const char** description); +IDEVICE_ACTIVATION_API void idevice_activation_response_get_activation_record(idevice_activation_response_t response, plist_t* activation_record); +IDEVICE_ACTIVATION_API void idevice_activation_response_get_headers(idevice_activation_response_t response, plist_t* headers); -int idevice_activation_response_is_activation_acknowledged(idevice_activation_response_t response); -int idevice_activation_response_is_authentication_required(idevice_activation_response_t response); -int idevice_activation_response_field_requires_input(idevice_activation_response_t response, const char* key); -int idevice_activation_response_field_secure_input(idevice_activation_response_t response, const char* key); -int idevice_activation_response_has_errors(idevice_activation_response_t response); +IDEVICE_ACTIVATION_API int idevice_activation_response_is_activation_acknowledged(idevice_activation_response_t response); +IDEVICE_ACTIVATION_API int idevice_activation_response_is_authentication_required(idevice_activation_response_t response); +IDEVICE_ACTIVATION_API int idevice_activation_response_field_requires_input(idevice_activation_response_t response, const char* key); +IDEVICE_ACTIVATION_API int idevice_activation_response_field_secure_input(idevice_activation_response_t response, const char* key); +IDEVICE_ACTIVATION_API int idevice_activation_response_has_errors(idevice_activation_response_t response); -idevice_activation_error_t idevice_activation_send_request(idevice_activation_request_t request, idevice_activation_response_t* response); +IDEVICE_ACTIVATION_API idevice_activation_error_t idevice_activation_send_request(idevice_activation_request_t request, idevice_activation_response_t* response); #ifdef __cplusplus } diff --git a/src/activation.c b/src/activation.c index 8cf6c0a..2b329ce 100644 --- a/src/activation.c +++ b/src/activation.c @@ -32,14 +32,16 @@ #include #include -#ifdef _WIN32 -#define IDEVICE_ACTIVATION_API __declspec( dllexport ) -#else -#ifdef HAVE_FVISIBILITY -#define IDEVICE_ACTIVATION_API __attribute__((visibility("default"))) +#ifdef IDEVICE_ACTIVATION_STATIC + #define IDEVICE_ACTIVATION_API +#elif defined(_WIN32) + #define IDEVICE_ACTIVATION_API __declspec( dllexport ) #else -#define IDEVICE_ACTIVATION_API -#endif + #if __GNUC__ >= 4 + #define IDEVICE_ACTIVATION_API __attribute__((visibility("default"))) + #else + #define IDEVICE_ACTIVATION_API + #endif #endif #ifdef _WIN32 @@ -128,7 +130,7 @@ INITIALIZER(internal_libideviceactivation_init) static int debug_level = 0; -IDEVICE_ACTIVATION_API void idevice_activation_set_debug_level(int level) { +void idevice_activation_set_debug_level(int level) { debug_level = level; } @@ -685,7 +687,7 @@ static int idevice_activation_curl_debug_callback(CURL *handle, curl_infotype ty return 0; } -IDEVICE_ACTIVATION_API idevice_activation_error_t idevice_activation_request_new(idevice_activation_client_type_t client_type, idevice_activation_request_t* request) +idevice_activation_error_t idevice_activation_request_new(idevice_activation_client_type_t client_type, idevice_activation_request_t* request) { if (!request) return IDEVICE_ACTIVATION_E_INTERNAL_ERROR; @@ -705,7 +707,7 @@ IDEVICE_ACTIVATION_API idevice_activation_error_t idevice_activation_request_new return IDEVICE_ACTIVATION_E_SUCCESS; } -IDEVICE_ACTIVATION_API idevice_activation_error_t idevice_activation_request_new_from_lockdownd(idevice_activation_client_type_t client_type, lockdownd_client_t lockdown, idevice_activation_request** request) +idevice_activation_error_t idevice_activation_request_new_from_lockdownd(idevice_activation_client_type_t client_type, lockdownd_client_t lockdown, idevice_activation_request** request) { if (!lockdown || !request) { return IDEVICE_ACTIVATION_E_INTERNAL_ERROR; @@ -828,7 +830,7 @@ IDEVICE_ACTIVATION_API idevice_activation_error_t idevice_activation_request_new return IDEVICE_ACTIVATION_E_SUCCESS; } -IDEVICE_ACTIVATION_API idevice_activation_error_t idevice_activation_drm_handshake_request_new(idevice_activation_client_type_t client_type, idevice_activation_request_t* request) +idevice_activation_error_t idevice_activation_drm_handshake_request_new(idevice_activation_client_type_t client_type, idevice_activation_request_t* request) { if (!request) return IDEVICE_ACTIVATION_E_INTERNAL_ERROR; @@ -848,7 +850,7 @@ IDEVICE_ACTIVATION_API idevice_activation_error_t idevice_activation_drm_handsha return IDEVICE_ACTIVATION_E_SUCCESS; } -IDEVICE_ACTIVATION_API void idevice_activation_request_free(idevice_activation_request_t request) +void idevice_activation_request_free(idevice_activation_request_t request) { if (!request) return; @@ -857,7 +859,7 @@ IDEVICE_ACTIVATION_API void idevice_activation_request_free(idevice_activation_r free(request); } -IDEVICE_ACTIVATION_API void idevice_activation_request_get_fields(idevice_activation_request_t request, plist_t* fields) +void idevice_activation_request_get_fields(idevice_activation_request_t request, plist_t* fields) { if (!request || !fields) return; @@ -865,7 +867,7 @@ IDEVICE_ACTIVATION_API void idevice_activation_request_get_fields(idevice_activa *fields = plist_copy(request->fields); } -IDEVICE_ACTIVATION_API void idevice_activation_request_set_fields(idevice_activation_request_t request, plist_t fields) +void idevice_activation_request_set_fields(idevice_activation_request_t request, plist_t fields) { if (!request || !fields) return; @@ -887,7 +889,7 @@ IDEVICE_ACTIVATION_API void idevice_activation_request_set_fields(idevice_activa plist_dict_merge(&request->fields, fields); } -IDEVICE_ACTIVATION_API void idevice_activation_request_set_fields_from_response(idevice_activation_request_t request, const idevice_activation_response_t response) +void idevice_activation_request_set_fields_from_response(idevice_activation_request_t request, const idevice_activation_response_t response) { if (!request || !response) return; @@ -900,7 +902,7 @@ IDEVICE_ACTIVATION_API void idevice_activation_request_set_fields_from_response( } } -IDEVICE_ACTIVATION_API void idevice_activation_request_set_field(idevice_activation_request_t request, const char* key, const char* value) +void idevice_activation_request_set_field(idevice_activation_request_t request, const char* key, const char* value) { if (!request || !key || !value) return; @@ -908,7 +910,7 @@ IDEVICE_ACTIVATION_API void idevice_activation_request_set_field(idevice_activat plist_dict_set_item(request->fields, key, plist_new_string(value)); } -IDEVICE_ACTIVATION_API void idevice_activation_request_get_field(idevice_activation_request_t request, const char* key, char** value) +void idevice_activation_request_get_field(idevice_activation_request_t request, const char* key, char** value) { if (!request || !key || !value) return; @@ -928,7 +930,7 @@ IDEVICE_ACTIVATION_API void idevice_activation_request_get_field(idevice_activat *value = tmp_value; } -IDEVICE_ACTIVATION_API void idevice_activation_request_get_url(idevice_activation_request_t request, const char** url) +void idevice_activation_request_get_url(idevice_activation_request_t request, const char** url) { if (!request || !url) return; @@ -936,7 +938,7 @@ IDEVICE_ACTIVATION_API void idevice_activation_request_get_url(idevice_activatio *url = request->url; } -IDEVICE_ACTIVATION_API void idevice_activation_request_set_url(idevice_activation_request_t request, const char* url) +void idevice_activation_request_set_url(idevice_activation_request_t request, const char* url) { if (!request || !url) return; @@ -945,7 +947,7 @@ IDEVICE_ACTIVATION_API void idevice_activation_request_set_url(idevice_activatio request->url = strdup(url); } -IDEVICE_ACTIVATION_API idevice_activation_error_t idevice_activation_response_new(idevice_activation_response_t* response) +idevice_activation_error_t idevice_activation_response_new(idevice_activation_response_t* response) { if (!response) return IDEVICE_ACTIVATION_E_INTERNAL_ERROR; @@ -976,7 +978,7 @@ IDEVICE_ACTIVATION_API idevice_activation_error_t idevice_activation_response_ne return IDEVICE_ACTIVATION_E_SUCCESS; } -IDEVICE_ACTIVATION_API idevice_activation_error_t idevice_activation_response_new_from_html(const char* content, idevice_activation_response_t* response) +idevice_activation_error_t idevice_activation_response_new_from_html(const char* content, idevice_activation_response_t* response) { if (!content || !response) return IDEVICE_ACTIVATION_E_INTERNAL_ERROR; @@ -1014,7 +1016,7 @@ IDEVICE_ACTIVATION_API idevice_activation_error_t idevice_activation_response_ne return result; } -IDEVICE_ACTIVATION_API idevice_activation_error_t idevice_activation_response_to_buffer(idevice_activation_response_t response, char** buffer, size_t* size) +idevice_activation_error_t idevice_activation_response_to_buffer(idevice_activation_response_t response, char** buffer, size_t* size) { if (!response || !buffer || !size) return IDEVICE_ACTIVATION_E_INTERNAL_ERROR; @@ -1032,7 +1034,7 @@ IDEVICE_ACTIVATION_API idevice_activation_error_t idevice_activation_response_to return IDEVICE_ACTIVATION_E_SUCCESS; } -IDEVICE_ACTIVATION_API void idevice_activation_response_free(idevice_activation_response_t response) +void idevice_activation_response_free(idevice_activation_response_t response) { if (!response) return; @@ -1050,7 +1052,7 @@ IDEVICE_ACTIVATION_API void idevice_activation_response_free(idevice_activation_ free(response); } -IDEVICE_ACTIVATION_API void idevice_activation_response_get_field(idevice_activation_response_t response, const char* key, char** value) +void idevice_activation_response_get_field(idevice_activation_response_t response, const char* key, char** value) { if (!response || !key || !value) return; @@ -1063,14 +1065,14 @@ IDEVICE_ACTIVATION_API void idevice_activation_response_get_field(idevice_activa } } -IDEVICE_ACTIVATION_API void idevice_activation_response_get_fields(idevice_activation_response_t response, plist_t* fields) +void idevice_activation_response_get_fields(idevice_activation_response_t response, plist_t* fields) { if (response && response->fields && fields) { *fields = plist_copy(response->fields); } } -IDEVICE_ACTIVATION_API void idevice_activation_response_get_label(idevice_activation_response_t response, const char* key, char** value) +void idevice_activation_response_get_label(idevice_activation_response_t response, const char* key, char** value) { if (!response || !key || !value) return; @@ -1082,7 +1084,7 @@ IDEVICE_ACTIVATION_API void idevice_activation_response_get_label(idevice_activa } } -IDEVICE_ACTIVATION_API void idevice_activation_response_get_placeholder(idevice_activation_response_t response, const char* key, char** value) +void idevice_activation_response_get_placeholder(idevice_activation_response_t response, const char* key, char** value) { if (!response || !key || !value) return; @@ -1094,7 +1096,7 @@ IDEVICE_ACTIVATION_API void idevice_activation_response_get_placeholder(idevice_ } } -IDEVICE_ACTIVATION_API void idevice_activation_response_get_title(idevice_activation_response_t response, const char** title) +void idevice_activation_response_get_title(idevice_activation_response_t response, const char** title) { if (!response || !title) return; @@ -1102,7 +1104,7 @@ IDEVICE_ACTIVATION_API void idevice_activation_response_get_title(idevice_activa *title = response->title; } -IDEVICE_ACTIVATION_API void idevice_activation_response_get_description(idevice_activation_response_t response, const char** description) +void idevice_activation_response_get_description(idevice_activation_response_t response, const char** description) { if (!response || !description) return; @@ -1110,7 +1112,7 @@ IDEVICE_ACTIVATION_API void idevice_activation_response_get_description(idevice_ *description = response->description; } -IDEVICE_ACTIVATION_API void idevice_activation_response_get_activation_record(idevice_activation_response_t response, plist_t* activation_record) +void idevice_activation_response_get_activation_record(idevice_activation_response_t response, plist_t* activation_record) { if (!response || !activation_record) return; @@ -1122,7 +1124,7 @@ IDEVICE_ACTIVATION_API void idevice_activation_response_get_activation_record(id } } -IDEVICE_ACTIVATION_API void idevice_activation_response_get_headers(idevice_activation_response_t response, plist_t* headers) +void idevice_activation_response_get_headers(idevice_activation_response_t response, plist_t* headers) { if (!response || !headers) return; @@ -1130,7 +1132,7 @@ IDEVICE_ACTIVATION_API void idevice_activation_response_get_headers(idevice_acti *headers = plist_copy(response->headers); } -IDEVICE_ACTIVATION_API int idevice_activation_response_is_activation_acknowledged(idevice_activation_response_t response) +int idevice_activation_response_is_activation_acknowledged(idevice_activation_response_t response) { if (!response) return 0; @@ -1138,7 +1140,7 @@ IDEVICE_ACTIVATION_API int idevice_activation_response_is_activation_acknowledge return response->is_activation_ack; } -IDEVICE_ACTIVATION_API int idevice_activation_response_is_authentication_required(idevice_activation_response_t response) +int idevice_activation_response_is_authentication_required(idevice_activation_response_t response) { if (!response) return 0; @@ -1146,7 +1148,7 @@ IDEVICE_ACTIVATION_API int idevice_activation_response_is_authentication_require return response->is_auth_required; } -IDEVICE_ACTIVATION_API int idevice_activation_response_field_requires_input(idevice_activation_response_t response, const char* key) +int idevice_activation_response_field_requires_input(idevice_activation_response_t response, const char* key) { if (!response || !key) return 0; @@ -1154,7 +1156,7 @@ IDEVICE_ACTIVATION_API int idevice_activation_response_field_requires_input(idev return (plist_dict_get_item(response->fields_require_input, key) ? 1 : 0); } -IDEVICE_ACTIVATION_API int idevice_activation_response_field_secure_input(idevice_activation_response_t response, const char* key) +int idevice_activation_response_field_secure_input(idevice_activation_response_t response, const char* key) { if (!response || !key) return 0; @@ -1162,7 +1164,7 @@ IDEVICE_ACTIVATION_API int idevice_activation_response_field_secure_input(idevic return (plist_dict_get_item(response->fields_secure_input, key) ? 1 : 0); } -IDEVICE_ACTIVATION_API int idevice_activation_response_has_errors(idevice_activation_response_t response) +int idevice_activation_response_has_errors(idevice_activation_response_t response) { if (!response) return 0; @@ -1170,7 +1172,7 @@ IDEVICE_ACTIVATION_API int idevice_activation_response_has_errors(idevice_activa return response->has_errors; } -IDEVICE_ACTIVATION_API idevice_activation_error_t idevice_activation_send_request(idevice_activation_request_t request, idevice_activation_response_t* response) +idevice_activation_error_t idevice_activation_send_request(idevice_activation_request_t request, idevice_activation_response_t* response) { idevice_activation_error_t result = IDEVICE_ACTIVATION_E_SUCCESS; -- cgit v1.1-32-gdbae