diff options
| -rw-r--r-- | src/lockdown.c | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/src/lockdown.c b/src/lockdown.c index ae408be..a950ceb 100644 --- a/src/lockdown.c +++ b/src/lockdown.c | |||
| @@ -211,23 +211,27 @@ iphone_error_t iphone_lckd_recv(iphone_lckd_client_t client, plist_t * plist) | |||
| 211 | } | 211 | } |
| 212 | } | 212 | } |
| 213 | datalen = ntohl(datalen); | 213 | datalen = ntohl(datalen); |
| 214 | log_dbg_msg(DBGMASK_LOCKDOWND, "%s: datalen = %d\n", __func__, datalen); | ||
| 214 | 215 | ||
| 215 | receive = (char *) malloc(sizeof(char) * datalen); | 216 | receive = (char *) malloc(sizeof(char) * datalen); |
| 216 | 217 | ||
| 218 | /* fill buffer and request more packets if needed */ | ||
| 217 | if (!client->in_SSL) { | 219 | if (!client->in_SSL) { |
| 218 | /* fill buffer and request more packets if needed */ | ||
| 219 | while ((received_bytes < datalen) && (ret == IPHONE_E_SUCCESS)) { | 220 | while ((received_bytes < datalen) && (ret == IPHONE_E_SUCCESS)) { |
| 220 | ret = usbmuxd_recv(client->sfd, receive + received_bytes, datalen - received_bytes, &bytes); | 221 | ret = usbmuxd_recv(client->sfd, receive + received_bytes, datalen - received_bytes, &bytes); |
| 221 | received_bytes += bytes; | 222 | received_bytes += bytes; |
| 222 | } | 223 | } |
| 223 | } else { | 224 | } else { |
| 224 | ssize_t res = gnutls_record_recv(*client->ssl_session, receive, datalen); | 225 | ssize_t res = 0; |
| 225 | if (res < 0) { | 226 | while ((received_bytes < datalen) && (ret == IPHONE_E_SUCCESS)) { |
| 226 | log_dbg_msg(DBGMASK_LOCKDOWND, "gnutls_record_recv: Error occured: %s\n", gnutls_strerror(res)); | 227 | res = gnutls_record_recv(*client->ssl_session, receive + received_bytes, datalen - received_bytes); |
| 227 | ret = IPHONE_E_SSL_ERROR; | 228 | if (res < 0) { |
| 228 | } else { | 229 | log_dbg_msg(DBGMASK_LOCKDOWND, "gnutls_record_recv: Error occured: %s\n", gnutls_strerror(res)); |
| 229 | received_bytes = res; | 230 | ret = IPHONE_E_SSL_ERROR; |
| 230 | ret = IPHONE_E_SUCCESS; | 231 | } else { |
| 232 | received_bytes += res; | ||
| 233 | ret = IPHONE_E_SUCCESS; | ||
| 234 | } | ||
| 231 | } | 235 | } |
| 232 | } | 236 | } |
| 233 | 237 | ||
