Perform stricter status checks during pairing to fix a crash when paired=3

This commit is contained in:
Cameron Gutman 2015-07-10 11:43:47 -07:00
parent 54dd79d2dd
commit e5f962dc3f

View File

@ -79,7 +79,7 @@
if (![self verifyResponseStatus:challengeResp]) { if (![self verifyResponseStatus:challengeResp]) {
return; return;
} }
if (![challengeResp getIntTag:@"paired" value:&pairedStatus] || !pairedStatus) { if (![challengeResp getIntTag:@"paired" value:&pairedStatus] || pairedStatus != 1) {
[_httpManager executeRequestSynchronously:[HttpRequest requestWithUrlRequest:[_httpManager newUnpairRequest]]]; [_httpManager executeRequestSynchronously:[HttpRequest requestWithUrlRequest:[_httpManager newUnpairRequest]]];
[_callback pairFailed:@"Pairing stage #2 failed"]; [_callback pairFailed:@"Pairing stage #2 failed"];
return; return;
@ -100,7 +100,7 @@
if (![self verifyResponseStatus:secretResp]) { if (![self verifyResponseStatus:secretResp]) {
return; return;
} }
if (![secretResp getIntTag:@"paired" value:&pairedStatus] || !pairedStatus) { if (![secretResp getIntTag:@"paired" value:&pairedStatus] || pairedStatus != 1) {
[_httpManager executeRequestSynchronously:[HttpRequest requestWithUrlRequest:[_httpManager newUnpairRequest]]]; [_httpManager executeRequestSynchronously:[HttpRequest requestWithUrlRequest:[_httpManager newUnpairRequest]]];
[_callback pairFailed:@"Pairing stage #3 failed"]; [_callback pairFailed:@"Pairing stage #3 failed"];
return; return;
@ -129,7 +129,7 @@
if (![self verifyResponseStatus:clientSecretResp]) { if (![self verifyResponseStatus:clientSecretResp]) {
return; return;
} }
if (![clientSecretResp getIntTag:@"paired" value:&pairedStatus] || !pairedStatus) { if (![clientSecretResp getIntTag:@"paired" value:&pairedStatus] || pairedStatus != 1) {
[_httpManager executeRequestSynchronously:[HttpRequest requestWithUrlRequest:[_httpManager newUnpairRequest]]]; [_httpManager executeRequestSynchronously:[HttpRequest requestWithUrlRequest:[_httpManager newUnpairRequest]]];
[_callback pairFailed:@"Pairing stage #4 failed"]; [_callback pairFailed:@"Pairing stage #4 failed"];
return; return;
@ -140,7 +140,7 @@
if (![self verifyResponseStatus:clientPairChallengeResp]) { if (![self verifyResponseStatus:clientPairChallengeResp]) {
return; return;
} }
if (![clientPairChallengeResp getIntTag:@"paired" value:&pairedStatus] || !pairedStatus) { if (![clientPairChallengeResp getIntTag:@"paired" value:&pairedStatus] || pairedStatus != 1) {
[_httpManager executeRequestSynchronously:[HttpRequest requestWithUrlRequest:[_httpManager newUnpairRequest]]]; [_httpManager executeRequestSynchronously:[HttpRequest requestWithUrlRequest:[_httpManager newUnpairRequest]]];
[_callback pairFailed:@"Pairing stage #5 failed"]; [_callback pairFailed:@"Pairing stage #5 failed"];
return; return;