diff options
| -rw-r--r-- | tools/idevicepair.c | 49 | 
1 files changed, 32 insertions, 17 deletions
diff --git a/tools/idevicepair.c b/tools/idevicepair.c index d634d5f..91ed49b 100644 --- a/tools/idevicepair.c +++ b/tools/idevicepair.c @@ -38,7 +38,8 @@ static void print_usage(int argc, char **argv)  	printf("\n%s - Manage pairings with devices and this host.\n\n", (name ? name + 1: argv[0]));  	printf("Usage: %s [OPTIONS] COMMAND\n\n", (name ? name + 1: argv[0]));  	printf(" Where COMMAND is one of:\n"); -	printf("  hostid       print the host id of this computer\n"); +	printf("  systembuid   print the system buid of this computer\n"); +	printf("  hostid       print the host id for target device\n");  	printf("  pair         pair device with this computer\n");  	printf("  validate     validate if device is paired with this computer\n");  	printf("  unpair       unpair device with this computer\n"); @@ -99,7 +100,7 @@ int main(int argc, char **argv)  	char *type = NULL;  	char *cmd;  	typedef enum { -		OP_NONE = 0, OP_PAIR, OP_VALIDATE, OP_UNPAIR, OP_LIST, OP_HOSTID +		OP_NONE = 0, OP_PAIR, OP_VALIDATE, OP_UNPAIR, OP_LIST, OP_HOSTID, OP_SYSTEMBUID  	} op_t;  	op_t op = OP_NONE; @@ -123,20 +124,22 @@ int main(int argc, char **argv)  		op = OP_LIST;  	} else if (!strcmp(cmd, "hostid")) {  		op = OP_HOSTID; +	} else if (!strcmp(cmd, "systembuid")) { +		op = OP_SYSTEMBUID;  	} else {  		printf("ERROR: Invalid command '%s' specified\n", cmd);  		print_usage(argc, argv);  		exit(EXIT_FAILURE);  	} -	if (op == OP_HOSTID) { -		char *hostid = NULL; -		userpref_get_host_id(&hostid); +	if (op == OP_SYSTEMBUID) { +		char *systembuid = NULL; +		userpref_get_system_buid(&systembuid); -		printf("%s\n", hostid); +		printf("%s\n", systembuid); -		if (hostid) -			free(hostid); +		if (systembuid) +			free(systembuid);  		return EXIT_SUCCESS;  	} @@ -173,6 +176,25 @@ int main(int argc, char **argv)  		}  	} +	ret = idevice_get_udid(device, &udid); +	if (ret != IDEVICE_E_SUCCESS) { +		printf("ERROR: Could not get device udid, error code %d\n", ret); +		result = EXIT_FAILURE; +		goto leave; +	} + +	if (op == OP_HOSTID) { +		char *hostid = NULL; +		userpref_device_record_get_host_id(udid, &hostid); + +		printf("%s\n", hostid); + +		if (hostid) +			free(hostid); + +		return EXIT_SUCCESS; +	} +  	lerr = lockdownd_client_new(device, &client, "idevicepair");  	if (lerr != LOCKDOWN_E_SUCCESS) {  		idevice_free(device); @@ -196,13 +218,6 @@ int main(int argc, char **argv)  		}  	} -	ret = idevice_get_udid(device, &udid); -	if (ret != IDEVICE_E_SUCCESS) { -		printf("ERROR: Could not get device udid, error code %d\n", ret); -		result = EXIT_FAILURE; -		goto leave; -	} -  	switch(op) {  		default:  		case OP_PAIR: @@ -238,8 +253,8 @@ int main(int argc, char **argv)  		case OP_UNPAIR:  		lerr = lockdownd_unpair(client, NULL);  		if (lerr == LOCKDOWN_E_SUCCESS) { -			/* also remove local device public key */ -			userpref_remove_device_public_key(udid); +			/* also remove local device record */ +			userpref_remove_device_record(udid);  			printf("SUCCESS: Unpaired with device %s\n", udid);  		} else {  			result = EXIT_FAILURE;  | 
