From 85df38d5e9e51aa4856b0fdd14f2f5f1ff1eccfe Mon Sep 17 00:00:00 2001
From: Nikias Bassen
Date: Tue, 14 Feb 2012 13:20:25 +0100
Subject: libirecovery: allow passing ecid 0x1222 to only get 0x1222/WTF
 devices

---
 src/libirecovery.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/src/libirecovery.c b/src/libirecovery.c
index 3545fd0..c0a20bd 100644
--- a/src/libirecovery.c
+++ b/src/libirecovery.c
@@ -177,6 +177,15 @@ irecv_error_t mobiledevice_connect(irecv_client_t* client, unsigned long long ec
 				continue;
 			}
 
+			if (ecid == kWTFMode) {
+				if (_client->mode != kWTFMode) {
+					// special ecid case, ignore !kWTFMode
+					continue;
+				} else {
+					ecid = 0;
+				}
+			}
+
 			if ((ecid != 0) && (_client->mode == kWTFMode)) {
 				// we can't get ecid in WTF mode
 				mobiledevice_closepipes(_client);
@@ -496,6 +505,15 @@ irecv_error_t irecv_open(irecv_client_t* pclient, unsigned long long ecid) {
 				usb_descriptor.idProduct == kWTFMode ||
 				usb_descriptor.idProduct == kDfuMode) {
 
+				if (ecid == kWTFMode) {
+					if (usb_descriptor.idProduct != kWTFMode) {
+						// special ecid case, ignore !kWTFMode
+						continue;
+					} else {
+						ecid = 0;
+					}
+				}
+
 				if ((ecid != 0) && (usb_descriptor.idProduct == kWTFMode)) {
 					// we can't get ecid in WTF mode
 					continue;
-- 
cgit v1.1-32-gdbae