diff options
Diffstat (limited to 'src/MobileSync.c')
-rw-r--r-- | src/MobileSync.c | 148 |
1 files changed, 0 insertions, 148 deletions
diff --git a/src/MobileSync.c b/src/MobileSync.c deleted file mode 100644 index 827ed35..0000000 --- a/src/MobileSync.c +++ /dev/null @@ -1,148 +0,0 @@ -/* - * MobileSync.c - * Contains functions for the built-in MobileSync client. - * - * Copyright (c) 2009 Jonathan Beck 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 - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include <plist/plist.h> -#include <string.h> -#include <stdlib.h> -#include <arpa/inet.h> - -#include "MobileSync.h" -#include "device_link_service.h" -#include "debug.h" - -#define MSYNC_VERSION_INT1 100 -#define MSYNC_VERSION_INT2 100 - -/** - * Convert an device_link_service_error_t value to an mobilesync_error_t value. - * Used internally to get correct error codes when using device_link_service stuff. - * - * @param err An device_link_service_error_t error code - * - * @return A matching mobilesync_error_t error code, - * MOBILESYNC_E_UNKNOWN_ERROR otherwise. - */ -static mobilesync_error_t mobilesync_error(device_link_service_error_t err) -{ - switch (err) { - case DEVICE_LINK_SERVICE_E_SUCCESS: - return MOBILESYNC_E_SUCCESS; - case DEVICE_LINK_SERVICE_E_INVALID_ARG: - return MOBILESYNC_E_INVALID_ARG; - case DEVICE_LINK_SERVICE_E_PLIST_ERROR: - return MOBILESYNC_E_PLIST_ERROR; - case DEVICE_LINK_SERVICE_E_MUX_ERROR: - return MOBILESYNC_E_MUX_ERROR; - case DEVICE_LINK_SERVICE_E_BAD_VERSION: - return MOBILESYNC_E_BAD_VERSION; - default: - break; - } - return MOBILESYNC_E_UNKNOWN_ERROR; -} - -mobilesync_error_t mobilesync_client_new(iphone_device_t device, uint16_t port, - mobilesync_client_t * client) -{ - if (!device || port == 0 || !client || *client) - return MOBILESYNC_E_INVALID_ARG; - - device_link_service_client_t dlclient = NULL; - mobilesync_error_t ret = mobilesync_error(device_link_service_client_new(device, port, &dlclient)); - if (ret != MOBILESYNC_E_SUCCESS) { - return ret; - } - - mobilesync_client_t client_loc = (mobilesync_client_t) malloc(sizeof(struct mobilesync_client_int)); - client_loc->parent = dlclient; - - /* perform handshake */ - ret = mobilesync_error(device_link_service_version_exchange(dlclient, MSYNC_VERSION_INT1, MSYNC_VERSION_INT2)); - if (ret != MOBILESYNC_E_SUCCESS) { - debug_info("version exchange failed, error %d", ret); - mobilesync_client_free(client_loc); - return ret; - } - - *client = client_loc; - - return ret; -} - -mobilesync_error_t mobilesync_client_free(mobilesync_client_t client) -{ - if (!client) - return MOBILESYNC_E_INVALID_ARG; - device_link_service_disconnect(client->parent); - mobilesync_error_t err = mobilesync_error(device_link_service_client_free(client->parent)); - free(client); - return err; -} - -/** Polls the iPhone for MobileSync data. - * - * @param client The MobileSync client - * @param plist A pointer to the location where the plist should be stored - * - * @return an error code - */ -mobilesync_error_t mobilesync_recv(mobilesync_client_t client, plist_t * plist) -{ - if (!client) - return MOBILESYNC_E_INVALID_ARG; - mobilesync_error_t ret = mobilesync_error(device_link_service_receive(client->parent, plist)); -#ifndef STRIP_DEBUG_CODE - if (ret != MOBILESYNC_E_SUCCESS) { - return ret; - } - char *XMLContent = NULL; - uint32_t length = 0; - plist_to_xml(*plist, &XMLContent, &length); - debug_info("plist size: %i\nbuffer :\n%s", length, XMLContent); - free(XMLContent); -#endif - return ret; -} - -/** Sends MobileSync data to the iPhone - * - * @note This function is low-level and should only be used if you need to send - * a new type of message. - * - * @param client The MobileSync client - * @param plist The location of the plist to send - * - * @return an error code - */ -mobilesync_error_t mobilesync_send(mobilesync_client_t client, plist_t plist) -{ - if (!client || !plist) - return MOBILESYNC_E_INVALID_ARG; - -#ifndef STRIP_DEBUG_CODE - char *XMLContent = NULL; - uint32_t length = 0; - plist_to_xml(plist, &XMLContent, &length); - debug_info("plist size: %i\nbuffer :\n%s", length, XMLContent); - free(XMLContent); -#endif - return mobilesync_error(device_link_service_send(client->parent, plist)); -} |