summaryrefslogtreecommitdiffstats
path: root/src/NotificationProxy.c
diff options
context:
space:
mode:
authorGravatar Martin Szulecki2009-11-11 21:26:33 +0100
committerGravatar Martin Szulecki2009-11-11 21:26:33 +0100
commitfea0152549d5e77f914f75c0ac315f30f9e26426 (patch)
tree4d7064468d46a4d4dfbae7dfa9b0e7d812aeecda /src/NotificationProxy.c
parentd4bdab8bd7cc5030341d2bf13dbd006fc13a6a1c (diff)
parent28d1fcac0eda09e829ef8c8b46fad0e45590af16 (diff)
downloadlibimobiledevice-fea0152549d5e77f914f75c0ac315f30f9e26426.tar.gz
libimobiledevice-fea0152549d5e77f914f75c0ac315f30f9e26426.tar.bz2
Merge branch 'master' of git://github.com/MattColyer/libiphone into martin
Diffstat (limited to 'src/NotificationProxy.c')
-rw-r--r--src/NotificationProxy.c14
1 files changed, 3 insertions, 11 deletions
diff --git a/src/NotificationProxy.c b/src/NotificationProxy.c
index ee2ad95..884be5f 100644
--- a/src/NotificationProxy.c
+++ b/src/NotificationProxy.c
@@ -318,35 +318,27 @@ static int np_get_notification(np_client_t client, char **notification)
318 return -2; 318 return -2;
319 } 319 }
320 320
321 plist_t cmd_key_node = plist_find_node_by_key(dict, "Command");
322 plist_t cmd_value_node = plist_get_next_sibling(cmd_key_node);
323 char *cmd_value = NULL; 321 char *cmd_value = NULL;
322 plist_t cmd_value_node = plist_dict_get_item(dict, "Command");
324 323
325 if (plist_get_node_type(cmd_value_node) == PLIST_STRING) { 324 if (plist_get_node_type(cmd_value_node) == PLIST_STRING) {
326 plist_get_string_val(cmd_value_node, &cmd_value); 325 plist_get_string_val(cmd_value_node, &cmd_value);
327 } 326 }
328 327
329 if (cmd_value && !strcmp(cmd_value, "RelayNotification")) { 328 if (cmd_value && !strcmp(cmd_value, "RelayNotification")) {
330 plist_t name_key_node = plist_get_next_sibling(cmd_value_node);
331 plist_t name_value_node = plist_get_next_sibling(name_key_node);
332
333 char *name_key = NULL;
334 char *name_value = NULL; 329 char *name_value = NULL;
330 plist_t name_value_node = plist_dict_get_item(dict, "Name");
335 331
336 if (plist_get_node_type(name_key_node) == PLIST_KEY) {
337 plist_get_key_val(name_key_node, &name_key);
338 }
339 if (plist_get_node_type(name_value_node) == PLIST_STRING) { 332 if (plist_get_node_type(name_value_node) == PLIST_STRING) {
340 plist_get_string_val(name_value_node, &name_value); 333 plist_get_string_val(name_value_node, &name_value);
341 } 334 }
342 335
343 res = -2; 336 res = -2;
344 if (name_key && name_value && !strcmp(name_key, "Name")) { 337 if (name_value_node && name_value) {
345 *notification = name_value; 338 *notification = name_value;
346 log_debug_msg("%s: got notification %s\n", __func__, name_value); 339 log_debug_msg("%s: got notification %s\n", __func__, name_value);
347 res = 0; 340 res = 0;
348 } 341 }
349 free(name_key);
350 } else if (cmd_value && !strcmp(cmd_value, "ProxyDeath")) { 342 } else if (cmd_value && !strcmp(cmd_value, "ProxyDeath")) {
351 log_debug_msg("%s: ERROR: NotificationProxy died!\n", __func__); 343 log_debug_msg("%s: ERROR: NotificationProxy died!\n", __func__);
352 res = -1; 344 res = -1;