diff options
| -rw-r--r-- | tools/idevicesyslog.c | 35 |
1 files changed, 33 insertions, 2 deletions
diff --git a/tools/idevicesyslog.c b/tools/idevicesyslog.c index 47d2f8c..0a923b8 100644 --- a/tools/idevicesyslog.c +++ b/tools/idevicesyslog.c | |||
| @@ -63,9 +63,40 @@ static int start_logging(void) | |||
| 63 | return -1; | 63 | return -1; |
| 64 | } | 64 | } |
| 65 | 65 | ||
| 66 | /* start and connect to syslog_relay service */ | 66 | lockdownd_client_t lockdown = NULL; |
| 67 | lockdownd_error_t lerr = lockdownd_client_new_with_handshake(device, &lockdown, "idevicesyslog"); | ||
| 68 | if (lerr != LOCKDOWN_E_SUCCESS) { | ||
| 69 | fprintf(stderr, "ERROR: Could not connect to lockdownd: %d\n", lerr); | ||
| 70 | idevice_free(device); | ||
| 71 | device = NULL; | ||
| 72 | return -1; | ||
| 73 | } | ||
| 74 | |||
| 75 | /* start syslog_relay service */ | ||
| 76 | lockdownd_service_descriptor_t svc = NULL; | ||
| 77 | lerr = lockdownd_start_service(lockdown, SYSLOG_RELAY_SERVICE_NAME, &svc); | ||
| 78 | if (lerr == LOCKDOWN_E_PASSWORD_PROTECTED) { | ||
| 79 | fprintf(stderr, "*** Device is passcode protected, enter passcode on the device to continue ***\n"); | ||
| 80 | while (1) { | ||
| 81 | lerr = lockdownd_start_service(lockdown, SYSLOG_RELAY_SERVICE_NAME, &svc); | ||
| 82 | if (lerr != LOCKDOWN_E_PASSWORD_PROTECTED) { | ||
| 83 | break; | ||
| 84 | } | ||
| 85 | sleep(1); | ||
| 86 | } | ||
| 87 | } | ||
| 88 | if (lerr != LOCKDOWN_E_SUCCESS) { | ||
| 89 | fprintf(stderr, "ERROR: Could not connect to lockdownd: %d\n", lerr); | ||
| 90 | idevice_free(device); | ||
| 91 | device = NULL; | ||
| 92 | return -1; | ||
| 93 | } | ||
| 94 | lockdownd_client_free(lockdown); | ||
| 95 | |||
| 96 | /* connect to syslog_relay service */ | ||
| 67 | syslog_relay_error_t serr = SYSLOG_RELAY_E_UNKNOWN_ERROR; | 97 | syslog_relay_error_t serr = SYSLOG_RELAY_E_UNKNOWN_ERROR; |
| 68 | serr = syslog_relay_client_start_service(device, &syslog, "idevicesyslog"); | 98 | serr = syslog_relay_client_new(device, svc, &syslog); |
| 99 | lockdownd_service_descriptor_free(svc); | ||
| 69 | if (serr != SYSLOG_RELAY_E_SUCCESS) { | 100 | if (serr != SYSLOG_RELAY_E_SUCCESS) { |
| 70 | fprintf(stderr, "ERROR: Could not start service com.apple.syslog_relay.\n"); | 101 | fprintf(stderr, "ERROR: Could not start service com.apple.syslog_relay.\n"); |
| 71 | idevice_free(device); | 102 | idevice_free(device); |
