diff options
Diffstat (limited to 'include/libimobiledevice/syslog_relay.h')
-rw-r--r-- | include/libimobiledevice/syslog_relay.h | 42 |
1 files changed, 32 insertions, 10 deletions
diff --git a/include/libimobiledevice/syslog_relay.h b/include/libimobiledevice/syslog_relay.h index ea7b649..0f6487a 100644 --- a/include/libimobiledevice/syslog_relay.h +++ b/include/libimobiledevice/syslog_relay.h @@ -3,7 +3,8 @@ * @brief Capture the syslog output from a device. * \internal * - * Copyright (c) 2013-2014 Martin Szulecki All Rights Reserved. + * Copyright (c) 2019-2020 Nikias Bassen, All Rights Reserved. + * Copyright (c) 2013-2014 Martin Szulecki, All Rights Reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -30,6 +31,7 @@ extern "C" { #include <libimobiledevice/libimobiledevice.h> #include <libimobiledevice/lockdown.h> +/** Service identifier passed to lockdownd_start_service() to start the syslog relay service */ #define SYSLOG_RELAY_SERVICE_NAME "com.apple.syslog_relay" /** Error Codes */ @@ -43,7 +45,7 @@ typedef enum { SYSLOG_RELAY_E_UNKNOWN_ERROR = -256 } syslog_relay_error_t; -typedef struct syslog_relay_client_private syslog_relay_client_private; +typedef struct syslog_relay_client_private syslog_relay_client_private; /**< \private */ typedef syslog_relay_client_private *syslog_relay_client_t; /**< The client handle. */ /** Receives each character received from the device. */ @@ -63,7 +65,7 @@ typedef void (*syslog_relay_receive_cb_t)(char c, void *user_data); * @return SYSLOG_RELAY_E_SUCCESS on success, SYSLOG_RELAY_E_INVALID_ARG when * client is NULL, or an SYSLOG_RELAY_E_* error code otherwise. */ -syslog_relay_error_t syslog_relay_client_new(idevice_t device, lockdownd_service_descriptor_t service, syslog_relay_client_t * client); +LIBIMOBILEDEVICE_API syslog_relay_error_t syslog_relay_client_new(idevice_t device, lockdownd_service_descriptor_t service, syslog_relay_client_t * client); /** * Starts a new syslog_relay service on the specified device and connects to it. @@ -78,7 +80,7 @@ syslog_relay_error_t syslog_relay_client_new(idevice_t device, lockdownd_service * @return SYSLOG_RELAY_E_SUCCESS on success, or an SYSLOG_RELAY_E_* error * code otherwise. */ -syslog_relay_error_t syslog_relay_client_start_service(idevice_t device, syslog_relay_client_t * client, const char* label); +LIBIMOBILEDEVICE_API syslog_relay_error_t syslog_relay_client_start_service(idevice_t device, syslog_relay_client_t * client, const char* label); /** * Disconnects a syslog_relay client from the device and frees up the @@ -89,7 +91,7 @@ syslog_relay_error_t syslog_relay_client_start_service(idevice_t device, syslog_ * @return SYSLOG_RELAY_E_SUCCESS on success, SYSLOG_RELAY_E_INVALID_ARG when * client is NULL, or an SYSLOG_RELAY_E_* error code otherwise. */ -syslog_relay_error_t syslog_relay_client_free(syslog_relay_client_t client); +LIBIMOBILEDEVICE_API syslog_relay_error_t syslog_relay_client_free(syslog_relay_client_t client); /** @@ -106,7 +108,28 @@ syslog_relay_error_t syslog_relay_client_free(syslog_relay_client_t client); * invalid or SYSLOG_RELAY_E_UNKNOWN_ERROR when an unspecified * error occurs or a syslog capture has already been started. */ -syslog_relay_error_t syslog_relay_start_capture(syslog_relay_client_t client, syslog_relay_receive_cb_t callback, void* user_data); +LIBIMOBILEDEVICE_API syslog_relay_error_t syslog_relay_start_capture(syslog_relay_client_t client, syslog_relay_receive_cb_t callback, void* user_data); + +/** + * Starts capturing the *raw* syslog of the device using a callback. + * This function is like syslog_relay_start_capture with the difference that + * it will neither check nor process the received data before passing it to + * the callback function. + * + * Use syslog_relay_stop_capture() to stop receiving the syslog. + * + * @note Use syslog_relay_start_capture for a safer implementation. + * + * @param client The syslog_relay client to use + * @param callback Callback to receive each character from the syslog. + * @param user_data Custom pointer passed to the callback function. + * + * @return SYSLOG_RELAY_E_SUCCESS on success, + * SYSLOG_RELAY_E_INVALID_ARG when one or more parameters are + * invalid or SYSLOG_RELAY_E_UNKNOWN_ERROR when an unspecified + * error occurs or a syslog capture has already been started. + */ +LIBIMOBILEDEVICE_API syslog_relay_error_t syslog_relay_start_capture_raw(syslog_relay_client_t client, syslog_relay_receive_cb_t callback, void* user_data); /** * Stops capturing the syslog of the device. @@ -120,7 +143,7 @@ syslog_relay_error_t syslog_relay_start_capture(syslog_relay_client_t client, sy * invalid or SYSLOG_RELAY_E_UNKNOWN_ERROR when an unspecified * error occurs or a syslog capture has already been started. */ -syslog_relay_error_t syslog_relay_stop_capture(syslog_relay_client_t client); +LIBIMOBILEDEVICE_API syslog_relay_error_t syslog_relay_stop_capture(syslog_relay_client_t client); /* Receiving */ @@ -139,7 +162,7 @@ syslog_relay_error_t syslog_relay_stop_capture(syslog_relay_client_t client); * occurs, or SYSLOG_RELAY_E_UNKNOWN_ERROR when an unspecified * error occurs. */ -syslog_relay_error_t syslog_relay_receive_with_timeout(syslog_relay_client_t client, char *data, uint32_t size, uint32_t *received, unsigned int timeout); +LIBIMOBILEDEVICE_API syslog_relay_error_t syslog_relay_receive_with_timeout(syslog_relay_client_t client, char *data, uint32_t size, uint32_t *received, unsigned int timeout); /** * Receives data from the service. @@ -148,12 +171,11 @@ syslog_relay_error_t syslog_relay_receive_with_timeout(syslog_relay_client_t cli * @param data Buffer that will be filled with the data received * @param size Number of bytes to receive * @param received Number of bytes received (can be NULL to ignore) - * @param timeout Maximum time in milliseconds to wait for data. * * @return SYSLOG_RELAY_E_SUCCESS on success, * SYSLOG_RELAY_E_INVALID_ARG when client or plist is NULL */ -syslog_relay_error_t syslog_relay_receive(syslog_relay_client_t client, char *data, uint32_t size, uint32_t *received); +LIBIMOBILEDEVICE_API syslog_relay_error_t syslog_relay_receive(syslog_relay_client_t client, char *data, uint32_t size, uint32_t *received); #ifdef __cplusplus } |