From fe6c846fa5d80824ee708393c4ea1a1fe4049a77 Mon Sep 17 00:00:00 2001 From: Martin Szulecki Date: Sat, 12 Sep 2009 11:39:06 +0200 Subject: Update the afc_get_device_info helper to return an afc_error_t We should return any underlying error afc_get_device_info returns so one is able to act properly. Also renamed it to "key" instead of "field" to be more generic. --- src/AFC.c | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) (limited to 'src/AFC.c') diff --git a/src/AFC.c b/src/AFC.c index d2761cf..b27080a 100644 --- a/src/AFC.c +++ b/src/AFC.c @@ -468,26 +468,32 @@ afc_error_t afc_get_device_info(afc_client_t client, char ***infos) return ret; } -/** Get a specific field of the device info for a client connection to phone. - * Known values are: Model, FSTotalBytes, FSFreeBytes and FSBlockSize. This is - * a helper function for afc_get_device_info(). +/** Get a specific key of the device info list for a client connection. + * Known key values are: Model, FSTotalBytes, FSFreeBytes and FSBlockSize. + * This is a helper function for afc_get_device_info(). * * @param client The client to get device info for. - * @param field The field to get the information for + * @param key The key to get the value of. + * @param value The value for the key if successful or NULL otherwise. * - * @return A char * or NULL if there was an error. + * @return AFC_E_SUCCESS on success or an AFC_E_* error value. */ -char * afc_get_device_info_field(afc_client_t client, const char *field) +afc_error_t afc_get_device_info_key(afc_client_t client, const char *key, char **value) { - char *ret = NULL; + afc_error_t ret = AFC_E_INTERNAL_ERROR; char **kvps, **ptr; - if (field == NULL || afc_get_device_info(client, &kvps) != AFC_E_SUCCESS) - return NULL; + *value = NULL; + if (key == NULL) + return AFC_E_INVALID_ARGUMENT; + + ret = afc_get_device_info(client, &kvps); + if (ret != AFC_E_SUCCESS) + return ret; for (ptr = kvps; *ptr; ptr++) { - if (!strcmp(*ptr, field)) { - ret = strdup(*(ptr+1)); + if (!strcmp(*ptr, key)) { + *value = strdup(*(ptr+1)); break; } } -- cgit v1.1-32-gdbae