libimobiledevice  1.2.0
Macros | Typedefs | Enumerations | Functions
heartbeat.h File Reference

Send "heartbeat" to device to allow service connections over network. More...

Macros

#define HEARTBEAT_SERVICE_NAME   "com.apple.mobile.heartbeat"
 

Typedefs

typedef struct
heartbeat_client_private 
heartbeat_client_private
 
typedef heartbeat_client_private * heartbeat_client_t
 The client handle. More...
 

Enumerations

enum  heartbeat_error_t {
  HEARTBEAT_E_SUCCESS = 0,
  HEARTBEAT_E_INVALID_ARG = -1,
  HEARTBEAT_E_PLIST_ERROR = -2,
  HEARTBEAT_E_MUX_ERROR = -3,
  HEARTBEAT_E_SSL_ERROR = -4,
  HEARTBEAT_E_UNKNOWN_ERROR = -256
}
 Error Codes.
 

Functions

heartbeat_error_t heartbeat_client_new (idevice_t device, lockdownd_service_descriptor_t service, heartbeat_client_t *client)
 Connects to the heartbeat service on the specified device. More...
 
heartbeat_error_t heartbeat_client_start_service (idevice_t device, heartbeat_client_t *client, const char *label)
 Starts a new heartbeat service on the specified device and connects to it. More...
 
heartbeat_error_t heartbeat_client_free (heartbeat_client_t client)
 Disconnects a heartbeat client from the device and frees up the heartbeat client data. More...
 
heartbeat_error_t heartbeat_send (heartbeat_client_t client, plist_t plist)
 Sends a plist to the service. More...
 
heartbeat_error_t heartbeat_receive (heartbeat_client_t client, plist_t *plist)
 Receives a plist from the service. More...
 
heartbeat_error_t heartbeat_receive_with_timeout (heartbeat_client_t client, plist_t *plist, uint32_t timeout_ms)
 Receives a plist using the given heartbeat client. More...
 

Detailed Description

Send "heartbeat" to device to allow service connections over network.

Typedef Documentation

typedef heartbeat_client_private* heartbeat_client_t

The client handle.

Function Documentation

heartbeat_error_t heartbeat_client_free ( heartbeat_client_t  client)

Disconnects a heartbeat client from the device and frees up the heartbeat client data.

Parameters
clientThe heartbeat client to disconnect and free.
Returns
HEARTBEAT_E_SUCCESS on success, HEARTBEAT_E_INVALID_ARG when client is NULL, or an HEARTBEAT_E_* error code otherwise.
heartbeat_error_t heartbeat_client_new ( idevice_t  device,
lockdownd_service_descriptor_t  service,
heartbeat_client_t client 
)

Connects to the heartbeat service on the specified device.

Parameters
deviceThe device to connect to.
serviceThe service descriptor returned by lockdownd_start_service.
clientPointer that will point to a newly allocated heartbeat_client_t upon successful return. Must be freed using heartbeat_client_free() after use.
Returns
HEARTBEAT_E_SUCCESS on success, HEARTBEAT_E_INVALID_ARG when client is NULL, or an HEARTBEAT_E_* error code otherwise.
heartbeat_error_t heartbeat_client_start_service ( idevice_t  device,
heartbeat_client_t client,
const char *  label 
)

Starts a new heartbeat service on the specified device and connects to it.

Parameters
deviceThe device to connect to.
clientPointer that will point to a newly allocated heartbeat_client_t upon successful return. Must be freed using heartbeat_client_free() after use.
labelThe label to use for communication. Usually the program name. Pass NULL to disable sending the label in requests to lockdownd.
Returns
HEARTBEAT_E_SUCCESS on success, or an HEARTBEAT_E_* error code otherwise.
heartbeat_error_t heartbeat_receive ( heartbeat_client_t  client,
plist_t *  plist 
)

Receives a plist from the service.

Parameters
clientThe heartbeat client
plistThe plist to store the received data
Returns
HEARTBEAT_E_SUCCESS on success, HEARTBEAT_E_INVALID_ARG when client or plist is NULL
heartbeat_error_t heartbeat_receive_with_timeout ( heartbeat_client_t  client,
plist_t *  plist,
uint32_t  timeout_ms 
)

Receives a plist using the given heartbeat client.

Parameters
clientThe heartbeat client to use for receiving
plistpointer to a plist_t that will point to the received plist upon successful return
timeoutMaximum time in milliseconds to wait for data.
Returns
HEARTBEAT_E_SUCCESS on success, HEARTBEAT_E_INVALID_ARG when client or *plist is NULL, HEARTBEAT_E_PLIST_ERROR when the received data cannot be converted to a plist, HEARTBEAT_E_MUX_ERROR when a communication error occurs, or HEARTBEAT_E_UNKNOWN_ERROR when an unspecified error occurs.
heartbeat_error_t heartbeat_send ( heartbeat_client_t  client,
plist_t  plist 
)

Sends a plist to the service.

Parameters
clientThe heartbeat client
plistThe plist to send
Returns
HEARTBEAT_E_SUCCESS on success, HEARTBEAT_E_INVALID_ARG when client or plist is NULL