diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/diagnostics_relay.c | 58 |
1 files changed, 50 insertions, 8 deletions
diff --git a/src/diagnostics_relay.c b/src/diagnostics_relay.c index 72a5fd7..7178952 100644 --- a/src/diagnostics_relay.c +++ b/src/diagnostics_relay.c | |||
| @@ -26,6 +26,7 @@ | |||
| 26 | 26 | ||
| 27 | #define RESULT_SUCCESS 0 | 27 | #define RESULT_SUCCESS 0 |
| 28 | #define RESULT_FAILURE 1 | 28 | #define RESULT_FAILURE 1 |
| 29 | #define RESULT_UNKNOWN_REQUEST 2 | ||
| 29 | 30 | ||
| 30 | /** | 31 | /** |
| 31 | * Internally used function for checking the result from a service response | 32 | * Internally used function for checking the result from a service response |
| @@ -56,6 +57,8 @@ static int diagnostics_relay_check_result(plist_t dict) | |||
| 56 | ret = RESULT_SUCCESS; | 57 | ret = RESULT_SUCCESS; |
| 57 | } else if (!strcmp(result_value, "Failure")) { | 58 | } else if (!strcmp(result_value, "Failure")) { |
| 58 | ret = RESULT_FAILURE; | 59 | ret = RESULT_FAILURE; |
| 60 | } else if (!strcmp(result_value, "UnknownRequest")) { | ||
| 61 | ret = RESULT_UNKNOWN_REQUEST; | ||
| 59 | } else { | 62 | } else { |
| 60 | debug_info("ERROR: unknown result value '%s'", result_value); | 63 | debug_info("ERROR: unknown result value '%s'", result_value); |
| 61 | } | 64 | } |
| @@ -205,10 +208,15 @@ diagnostics_relay_error_t diagnostics_relay_goodbye(diagnostics_relay_client_t c | |||
| 205 | return DIAGNOSTICS_RELAY_E_PLIST_ERROR; | 208 | return DIAGNOSTICS_RELAY_E_PLIST_ERROR; |
| 206 | } | 209 | } |
| 207 | 210 | ||
| 208 | if (diagnostics_relay_check_result(dict) == RESULT_SUCCESS) { | 211 | int check = diagnostics_relay_check_result(dict); |
| 209 | debug_info("success"); | 212 | if (check == RESULT_SUCCESS) { |
| 210 | ret = DIAGNOSTICS_RELAY_E_SUCCESS; | 213 | ret = DIAGNOSTICS_RELAY_E_SUCCESS; |
| 214 | } else if (check == RESULT_UNKNOWN_REQUEST) { | ||
| 215 | ret = DIAGNOSTICS_RELAY_E_UNKNOWN_REQUEST; | ||
| 216 | } else { | ||
| 217 | ret = DIAGNOSTICS_RELAY_E_UNKNOWN_ERROR; | ||
| 211 | } | 218 | } |
| 219 | |||
| 212 | plist_free(dict); | 220 | plist_free(dict); |
| 213 | dict = NULL; | 221 | dict = NULL; |
| 214 | return ret; | 222 | return ret; |
| @@ -243,8 +251,13 @@ diagnostics_relay_error_t diagnostics_relay_sleep(diagnostics_relay_client_t cli | |||
| 243 | return DIAGNOSTICS_RELAY_E_PLIST_ERROR; | 251 | return DIAGNOSTICS_RELAY_E_PLIST_ERROR; |
| 244 | } | 252 | } |
| 245 | 253 | ||
| 246 | if (diagnostics_relay_check_result(dict) == RESULT_SUCCESS) { | 254 | int check = diagnostics_relay_check_result(dict); |
| 255 | if (check == RESULT_SUCCESS) { | ||
| 247 | ret = DIAGNOSTICS_RELAY_E_SUCCESS; | 256 | ret = DIAGNOSTICS_RELAY_E_SUCCESS; |
| 257 | } else if (check == RESULT_UNKNOWN_REQUEST) { | ||
| 258 | ret = DIAGNOSTICS_RELAY_E_UNKNOWN_REQUEST; | ||
| 259 | } else { | ||
| 260 | ret = DIAGNOSTICS_RELAY_E_UNKNOWN_ERROR; | ||
| 248 | } | 261 | } |
| 249 | 262 | ||
| 250 | plist_free(dict); | 263 | plist_free(dict); |
| @@ -282,8 +295,13 @@ static diagnostics_relay_error_t internal_diagnostics_relay_action(diagnostics_r | |||
| 282 | return DIAGNOSTICS_RELAY_E_PLIST_ERROR; | 295 | return DIAGNOSTICS_RELAY_E_PLIST_ERROR; |
| 283 | } | 296 | } |
| 284 | 297 | ||
| 285 | if (diagnostics_relay_check_result(dict) == RESULT_SUCCESS) { | 298 | int check = diagnostics_relay_check_result(dict); |
| 299 | if (check == RESULT_SUCCESS) { | ||
| 286 | ret = DIAGNOSTICS_RELAY_E_SUCCESS; | 300 | ret = DIAGNOSTICS_RELAY_E_SUCCESS; |
| 301 | } else if (check == RESULT_UNKNOWN_REQUEST) { | ||
| 302 | ret = DIAGNOSTICS_RELAY_E_UNKNOWN_REQUEST; | ||
| 303 | } else { | ||
| 304 | ret = DIAGNOSTICS_RELAY_E_UNKNOWN_ERROR; | ||
| 287 | } | 305 | } |
| 288 | 306 | ||
| 289 | plist_free(dict); | 307 | plist_free(dict); |
| @@ -348,9 +366,15 @@ diagnostics_relay_error_t diagnostics_relay_request_diagnostics(diagnostics_rela | |||
| 348 | return DIAGNOSTICS_RELAY_E_PLIST_ERROR; | 366 | return DIAGNOSTICS_RELAY_E_PLIST_ERROR; |
| 349 | } | 367 | } |
| 350 | 368 | ||
| 351 | if (diagnostics_relay_check_result(dict) == RESULT_SUCCESS) { | 369 | int check = diagnostics_relay_check_result(dict); |
| 370 | if (check == RESULT_SUCCESS) { | ||
| 352 | ret = DIAGNOSTICS_RELAY_E_SUCCESS; | 371 | ret = DIAGNOSTICS_RELAY_E_SUCCESS; |
| 372 | } else if (check == RESULT_UNKNOWN_REQUEST) { | ||
| 373 | ret = DIAGNOSTICS_RELAY_E_UNKNOWN_REQUEST; | ||
| 374 | } else { | ||
| 375 | ret = DIAGNOSTICS_RELAY_E_UNKNOWN_ERROR; | ||
| 353 | } | 376 | } |
| 377 | |||
| 354 | if (ret != DIAGNOSTICS_RELAY_E_SUCCESS) { | 378 | if (ret != DIAGNOSTICS_RELAY_E_SUCCESS) { |
| 355 | plist_free(dict); | 379 | plist_free(dict); |
| 356 | return ret; | 380 | return ret; |
| @@ -384,9 +408,15 @@ diagnostics_relay_error_t diagnostics_relay_query_mobilegestalt(diagnostics_rela | |||
| 384 | return DIAGNOSTICS_RELAY_E_PLIST_ERROR; | 408 | return DIAGNOSTICS_RELAY_E_PLIST_ERROR; |
| 385 | } | 409 | } |
| 386 | 410 | ||
| 387 | if (diagnostics_relay_check_result(dict) == RESULT_SUCCESS) { | 411 | int check = diagnostics_relay_check_result(dict); |
| 412 | if (check == RESULT_SUCCESS) { | ||
| 388 | ret = DIAGNOSTICS_RELAY_E_SUCCESS; | 413 | ret = DIAGNOSTICS_RELAY_E_SUCCESS; |
| 414 | } else if (check == RESULT_UNKNOWN_REQUEST) { | ||
| 415 | ret = DIAGNOSTICS_RELAY_E_UNKNOWN_REQUEST; | ||
| 416 | } else { | ||
| 417 | ret = DIAGNOSTICS_RELAY_E_UNKNOWN_ERROR; | ||
| 389 | } | 418 | } |
| 419 | |||
| 390 | if (ret != DIAGNOSTICS_RELAY_E_SUCCESS) { | 420 | if (ret != DIAGNOSTICS_RELAY_E_SUCCESS) { |
| 391 | plist_free(dict); | 421 | plist_free(dict); |
| 392 | return ret; | 422 | return ret; |
| @@ -423,9 +453,15 @@ diagnostics_relay_error_t diagnostics_relay_query_ioregistry_entry(diagnostics_r | |||
| 423 | return DIAGNOSTICS_RELAY_E_PLIST_ERROR; | 453 | return DIAGNOSTICS_RELAY_E_PLIST_ERROR; |
| 424 | } | 454 | } |
| 425 | 455 | ||
| 426 | if (diagnostics_relay_check_result(dict) == RESULT_SUCCESS) { | 456 | int check = diagnostics_relay_check_result(dict); |
| 457 | if (check == RESULT_SUCCESS) { | ||
| 427 | ret = DIAGNOSTICS_RELAY_E_SUCCESS; | 458 | ret = DIAGNOSTICS_RELAY_E_SUCCESS; |
| 459 | } else if (check == RESULT_UNKNOWN_REQUEST) { | ||
| 460 | ret = DIAGNOSTICS_RELAY_E_UNKNOWN_REQUEST; | ||
| 461 | } else { | ||
| 462 | ret = DIAGNOSTICS_RELAY_E_UNKNOWN_ERROR; | ||
| 428 | } | 463 | } |
| 464 | |||
| 429 | if (ret != DIAGNOSTICS_RELAY_E_SUCCESS) { | 465 | if (ret != DIAGNOSTICS_RELAY_E_SUCCESS) { |
| 430 | plist_free(dict); | 466 | plist_free(dict); |
| 431 | return ret; | 467 | return ret; |
| @@ -459,9 +495,15 @@ diagnostics_relay_error_t diagnostics_relay_query_ioregistry_plane(diagnostics_r | |||
| 459 | return DIAGNOSTICS_RELAY_E_PLIST_ERROR; | 495 | return DIAGNOSTICS_RELAY_E_PLIST_ERROR; |
| 460 | } | 496 | } |
| 461 | 497 | ||
| 462 | if (diagnostics_relay_check_result(dict) == RESULT_SUCCESS) { | 498 | int check = diagnostics_relay_check_result(dict); |
| 499 | if (check == RESULT_SUCCESS) { | ||
| 463 | ret = DIAGNOSTICS_RELAY_E_SUCCESS; | 500 | ret = DIAGNOSTICS_RELAY_E_SUCCESS; |
| 501 | } else if (check == RESULT_UNKNOWN_REQUEST) { | ||
| 502 | ret = DIAGNOSTICS_RELAY_E_UNKNOWN_REQUEST; | ||
| 503 | } else { | ||
| 504 | ret = DIAGNOSTICS_RELAY_E_UNKNOWN_ERROR; | ||
| 464 | } | 505 | } |
| 506 | |||
| 465 | if (ret != DIAGNOSTICS_RELAY_E_SUCCESS) { | 507 | if (ret != DIAGNOSTICS_RELAY_E_SUCCESS) { |
| 466 | plist_free(dict); | 508 | plist_free(dict); |
| 467 | return ret; | 509 | return ret; |
