tools: Unify --network command line switch and add it where missing
diff --git a/tools/idevicebackup.c b/tools/idevicebackup.c
index 171ab7e..dfd7b8b 100644
--- a/tools/idevicebackup.c
+++ b/tools/idevicebackup.c
@@ -676,6 +676,7 @@
 	printf("\n");
 	printf("OPTIONS:\n");
 	printf("  -u, --udid UDID\ttarget specific device by UDID\n");
+	printf("  -n, --network\t\tconnect to network device\n");
 	printf("  -d, --debug\t\tenable communication debugging\n");
 	printf("  -h, --help\t\tprints usage information\n");
 	printf("  -v, --version\t\tprints version information\n");
@@ -690,6 +691,7 @@
 	lockdownd_error_t ldret = LOCKDOWN_E_UNKNOWN_ERROR;
 	int i;
 	char* udid = NULL;
+	int use_network = 0;
 	lockdownd_service_descriptor_t service = NULL;
 	int cmd = -1;
 	int is_full_backup = 0;
@@ -729,6 +731,10 @@
 			udid = strdup(argv[i]);
 			continue;
 		}
+		else if (!strcmp(argv[i], "-n") || !strcmp(argv[i], "--network")) {
+			use_network = 1;
+			continue;
+		}
 		else if (!strcmp(argv[i], "-h") || !strcmp(argv[i], "--help")) {
 			print_usage(argc, argv);
 			return 0;
@@ -783,20 +789,14 @@
 
 	printf("Backup directory is \"%s\"\n", backup_directory);
 
-	if (udid) {
-		ret = idevice_new(&device, udid);
-		if (ret != IDEVICE_E_SUCCESS) {
-			printf("No device found with udid %s, is it plugged in?\n", udid);
-			return -1;
+	ret = idevice_new_with_options(&device, udid, (use_network) ? IDEVICE_LOOKUP_NETWORK : IDEVICE_LOOKUP_USBMUX);
+	if (ret != IDEVICE_E_SUCCESS) {
+		if (udid) {
+			printf("No device found with udid %s.\n", udid);
+		} else {
+			printf("No device found.\n");
 		}
-	}
-	else
-	{
-		ret = idevice_new(&device, NULL);
-		if (ret != IDEVICE_E_SUCCESS) {
-			printf("No device found, is it plugged in?\n");
-			return -1;
-		}
+		return -1;
 	}
 
 	if (LOCKDOWN_E_SUCCESS != (ldret = lockdownd_client_new_with_handshake(device, &client, TOOL_NAME))) {
diff --git a/tools/idevicebackup2.c b/tools/idevicebackup2.c
index 61302cc..9bbb311 100644
--- a/tools/idevicebackup2.c
+++ b/tools/idevicebackup2.c
@@ -1431,6 +1431,7 @@
 	printf("OPTIONS:\n");
 	printf("  -u, --udid UDID\ttarget specific device by UDID\n");
 	printf("  -s, --source UDID\tuse backup data from device specified by UDID\n");
+	printf("  -n, --network\t\tconnect to network device\n");
 	printf("  -i, --interactive\trequest passwords interactively\n");
 	printf("  -d, --debug\t\tenable communication debugging\n");
 	printf("  -h, --help\t\tprints usage information\n");
@@ -1449,6 +1450,7 @@
 	int i;
 	char* udid = NULL;
 	char* source_udid = NULL;
+	int use_network = 0;
 	lockdownd_service_descriptor_t service = NULL;
 	int cmd = -1;
 	int cmd_flags = 0;
@@ -1496,6 +1498,10 @@
 			source_udid = strdup(argv[i]);
 			continue;
 		}
+		else if (!strcmp(argv[i], "-n") || !strcmp(argv[i], "--network")) {
+			use_network = 1;
+			continue;
+		}
 		else if (!strcmp(argv[i], "-i") || !strcmp(argv[i], "--interactive")) {
 			interactive_mode = 1;
 			continue;
@@ -1669,20 +1675,17 @@
 	}
 
 	idevice_t device = NULL;
-	if (udid) {
-		ret = idevice_new(&device, udid);
-		if (ret != IDEVICE_E_SUCCESS) {
-			printf("No device found with udid %s, is it plugged in?\n", udid);
-			return -1;
+	ret = idevice_new_with_options(&device, udid, (use_network) ? IDEVICE_LOOKUP_NETWORK : IDEVICE_LOOKUP_USBMUX);
+	if (ret != IDEVICE_E_SUCCESS) {
+		if (udid) {
+			printf("No device found with udid %s.\n", udid);
+		} else {
+			printf("No device found.\n");
 		}
+		return -1;
 	}
-	else
-	{
-		ret = idevice_new(&device, NULL);
-		if (ret != IDEVICE_E_SUCCESS) {
-			printf("No device found, is it plugged in?\n");
-			return -1;
-		}
+
+	if (!udid) {
 		idevice_get_udid(device, &udid);
 	}
 
diff --git a/tools/idevicecrashreport.c b/tools/idevicecrashreport.c
index 0fc40c6..2945111 100644
--- a/tools/idevicecrashreport.c
+++ b/tools/idevicecrashreport.c
@@ -309,6 +309,7 @@
 	printf("\n");
 	printf("OPTIONS:\n");
 	printf("  -u, --udid UDID\ttarget specific device by UDID\n");
+	printf("  -n, --network\t\tconnect to network device\n");
 	printf("  -e, --extract\t\textract raw crash report into separate '.crash' file\n");
 	printf("  -k, --keep\t\tcopy but do not remove crash reports from device\n");
 	printf("  -d, --debug\t\tenable communication debugging\n");
@@ -331,6 +332,7 @@
 
 	int i;
 	const char* udid = NULL;
+	int use_network = 0;
 
 #ifndef WIN32
 	signal(SIGPIPE, SIG_IGN);
@@ -350,6 +352,10 @@
 			udid = argv[i];
 			continue;
 		}
+		else if (!strcmp(argv[i], "-n") || !strcmp(argv[i], "--network")) {
+			use_network = 1;
+			continue;
+		}
 		else if (!strcmp(argv[i], "-h") || !strcmp(argv[i], "--help")) {
 			print_usage(argc, argv);
 			return 0;
@@ -389,12 +395,12 @@
 		return 0;
 	}
 
-	device_error = idevice_new(&device, udid);
+	device_error = idevice_new_with_options(&device, udid, (use_network) ? IDEVICE_LOOKUP_NETWORK : IDEVICE_LOOKUP_USBMUX);
 	if (device_error != IDEVICE_E_SUCCESS) {
 		if (udid) {
-			printf("No device found with udid %s, is it plugged in?\n", udid);
+			printf("No device found with udid %s.\n", udid);
 		} else {
-			printf("No device found, is it plugged in?\n");
+			printf("No device found.\n");
 		}
 		return -1;
 	}
diff --git a/tools/idevicedate.c b/tools/idevicedate.c
index e1fbc20..a9d78c1 100644
--- a/tools/idevicedate.c
+++ b/tools/idevicedate.c
@@ -59,6 +59,7 @@
 	printf("\n");
 	printf("OPTIONS:\n");
 	printf("  -u, --udid UDID\ttarget specific device by UDID\n");
+	printf("  -n, --network\t\tconnect to network device\n");
 	printf("  -s, --set TIMESTAMP\tset UTC time described by TIMESTAMP\n");
 	printf("  -c, --sync\t\tset time of device to current system time\n");
 	printf("  -d, --debug\t\tenable communication debugging\n");
@@ -77,6 +78,7 @@
 	idevice_error_t ret = IDEVICE_E_UNKNOWN_ERROR;
 	int i;
 	const char* udid = NULL;
+	int use_network = 0;
 	time_t setdate = 0;
 	plist_t node = NULL;
 	int node_type = -1;
@@ -104,6 +106,10 @@
 			udid = argv[i];
 			continue;
 		}
+		else if (!strcmp(argv[i], "-n") || !strcmp(argv[i], "--network")) {
+			use_network = 1;
+			continue;
+		}
 		else if (!strcmp(argv[i], "-s") || !strcmp(argv[i], "--set")) {
 			i++;
 			if (!argv[i] || (strlen(argv[i]) <= 1)) {
@@ -142,12 +148,12 @@
 		}
 	}
 
-	ret = idevice_new(&device, udid);
+	ret = idevice_new_with_options(&device, udid, (use_network) ? IDEVICE_LOOKUP_NETWORK : IDEVICE_LOOKUP_USBMUX);
 	if (ret != IDEVICE_E_SUCCESS) {
 		if (udid) {
-			printf("No device found with udid %s, is it plugged in?\n", udid);
+			printf("No device found with udid %s.\n", udid);
 		} else {
-			printf("No device found, is it plugged in?\n");
+			printf("No device found.\n");
 		}
 		return -1;
 	}
diff --git a/tools/idevicedebug.c b/tools/idevicedebug.c
index 66e997d..83a70a4 100644
--- a/tools/idevicedebug.c
+++ b/tools/idevicedebug.c
@@ -196,6 +196,7 @@
 	printf("\n");
 	printf("The following OPTIONS are accepted:\n");
 	printf("  -u, --udid UDID\ttarget specific device by UDID\n");
+	printf("  -n, --network\t\tconnect to network device\n");
 	printf("  -e, --env NAME=VALUE\tset environment variable NAME to VALUE\n");
 	printf("  -d, --debug\t\tenable communication debugging\n");
 	printf("  -h, --help\t\tprints usage information\n");
@@ -215,6 +216,7 @@
 	int i;
 	int cmd = CMD_NONE;
 	const char* udid = NULL;
+	int use_network = 0;
 	const char* bundle_identifier = NULL;
 	char* path = NULL;
 	char* working_directory = NULL;
@@ -249,6 +251,9 @@
 			}
 			udid = argv[i];
 			continue;
+		} else if (!strcmp(argv[i], "-n") || !strcmp(argv[i], "--network")) {
+			use_network = 1;
+			continue;
 		} else if (!strcmp(argv[i], "-e") || !strcmp(argv[i], "--env")) {
 			i++;
 			if (!argv[i] || (strlen(argv[i]) <= 1) || strchr(argv[i], '=') == NULL) {
@@ -306,12 +311,12 @@
 	}
 
 	/* connect to the device */
-	ret = idevice_new(&device, udid);
+	ret = idevice_new_with_options(&device, udid, (use_network) ? IDEVICE_LOOKUP_NETWORK : IDEVICE_LOOKUP_USBMUX);
 	if (ret != IDEVICE_E_SUCCESS) {
 		if (udid) {
-			printf("No device found with udid %s, is it plugged in?\n", udid);
+			printf("No device found with udid %s.\n", udid);
 		} else {
-			printf("No device found, is it plugged in?\n");
+			printf("No device found.\n");
 		}
 		goto cleanup;
 	}
diff --git a/tools/idevicedebugserverproxy.c b/tools/idevicedebugserverproxy.c
index c0a0eff..1d8a23d 100644
--- a/tools/idevicedebugserverproxy.c
+++ b/tools/idevicedebugserverproxy.c
@@ -76,6 +76,7 @@
 	printf("\n");
 	printf("OPTIONS:\n");
 	printf("  -u, --udid UDID\ttarget specific device by UDID\n");
+	printf("  -n, --network\t\tconnect to network device\n");
 	printf("  -d, --debug\t\tenable communication debugging\n");
 	printf("  -h, --help\t\tprints usage information\n");
 	printf("  -v, --version\t\tprints version information\n");
@@ -250,6 +251,7 @@
 	idevice_t device = NULL;
 	thread_info_t *thread_list = NULL;
 	const char* udid = NULL;
+	int use_network = 0;
 	uint16_t local_port = 0;
 	int server_fd;
 	int result = EXIT_SUCCESS;
@@ -294,6 +296,10 @@
 			udid = argv[i];
 			continue;
 		}
+		else if (!strcmp(argv[i], "-n") || !strcmp(argv[i], "--network")) {
+			use_network = 1;
+			continue;
+		}
 		else if (!strcmp(argv[i], "-h") || !strcmp(argv[i], "--help")) {
 			print_usage(argc, argv);
 			return EXIT_SUCCESS;
@@ -320,12 +326,12 @@
 	}
 
 	/* start services and connect to device */
-	ret = idevice_new(&device, udid);
+	ret = idevice_new_with_options(&device, udid, (use_network) ? IDEVICE_LOOKUP_NETWORK : IDEVICE_LOOKUP_USBMUX);
 	if (ret != IDEVICE_E_SUCCESS) {
 		if (udid) {
-			fprintf(stderr, "No device found with udid %s, is it plugged in?\n", udid);
+			fprintf(stderr, "No device found with udid %s.\n", udid);
 		} else {
-			fprintf(stderr, "No device found, is it plugged in?\n");
+			fprintf(stderr, "No device found.\n");
 		}
 		result = EXIT_FAILURE;
 		goto leave_cleanup;
diff --git a/tools/idevicediagnostics.c b/tools/idevicediagnostics.c
index 153f9ac..0e3e66e 100644
--- a/tools/idevicediagnostics.c
+++ b/tools/idevicediagnostics.c
@@ -71,6 +71,7 @@
 	int result = EXIT_FAILURE;
 	int i;
 	const char *udid = NULL;
+	int use_network = 0;
 	int cmd = CMD_NONE;
 	char* cmd_arg = NULL;
 	plist_t node = NULL;
@@ -95,6 +96,10 @@
 			udid = argv[i];
 			continue;
 		}
+		else if (!strcmp(argv[i], "-n") || !strcmp(argv[i], "--network")) {
+			use_network = 1;
+			continue;
+		}
 		else if (!strcmp(argv[i], "-h") || !strcmp(argv[i], "--help")) {
 			print_usage(argc, argv);
 			result = EXIT_SUCCESS;
@@ -191,11 +196,11 @@
 		goto cleanup;
 	}
 
-	if (IDEVICE_E_SUCCESS != idevice_new(&device, udid)) {
+	if (IDEVICE_E_SUCCESS != idevice_new_with_options(&device, udid, (use_network) ? IDEVICE_LOOKUP_NETWORK : IDEVICE_LOOKUP_USBMUX)) {
 		if (udid) {
-			printf("No device found with udid %s, is it plugged in?\n", udid);
+			printf("No device found with udid %s.\n", udid);
 		} else {
-			printf("No device found, is it plugged in?\n");
+			printf("No device found.\n");
 		}
 		goto cleanup;
 	}
@@ -335,6 +340,7 @@
 	printf("\n");
 	printf("The following OPTIONS are accepted:\n");
 	printf("  -u, --udid UDID\ttarget specific device by UDID\n");
+	printf("  -n, --network\t\tconnect to network device\n");
 	printf("  -d, --debug\t\tenable communication debugging\n");
 	printf("  -h, --help\t\tprints usage information\n");
 	printf("  -v, --version\t\tprints version information\n");
diff --git a/tools/ideviceenterrecovery.c b/tools/ideviceenterrecovery.c
index 8d82929..822c10a 100644
--- a/tools/ideviceenterrecovery.c
+++ b/tools/ideviceenterrecovery.c
@@ -91,7 +91,7 @@
 
 	ret = idevice_new(&device, udid);
 	if (ret != IDEVICE_E_SUCCESS) {
-		printf("No device found with udid %s, is it plugged in?\n", udid);
+		printf("No device found with udid %s.\n", udid);
 		return -1;
 	}
 
diff --git a/tools/ideviceimagemounter.c b/tools/ideviceimagemounter.c
index df43d5a..c89ddd3 100644
--- a/tools/ideviceimagemounter.c
+++ b/tools/ideviceimagemounter.c
@@ -49,6 +49,7 @@
 #include "common/utils.h"
 
 static int list_mode = 0;
+static int use_network = 0;
 static int xml_mode = 0;
 static char *udid = NULL;
 static char *imagetype = NULL;
@@ -72,6 +73,7 @@
 	printf("\n");
 	printf("OPTIONS:\n");
 	printf("  -u, --udid UDID\ttarget specific device by UDID\n");
+	printf("  -n, --network\t\tconnect to network device\n");
 	printf("  -l, --list\t\tList mount information\n");
 	printf("  -t, --imagetype\tImage type to use, default is 'Developer'\n");
 	printf("  -x, --xml\t\tUse XML output\n");
@@ -86,19 +88,20 @@
 static void parse_opts(int argc, char **argv)
 {
 	static struct option longopts[] = {
-		{ "help",      no_argument,       NULL, 'h'},
-		{ "udid",      required_argument, NULL, 'u'},
-		{ "list",      no_argument,       NULL, 'l'},
-		{ "imagetype", required_argument, NULL, 't'},
-		{ "xml",       no_argument,       NULL, 'x'},
-		{ "debug",     no_argument,       NULL, 'd'},
+		{ "help",      no_argument,       NULL, 'h' },
+		{ "udid",      required_argument, NULL, 'u' },
+		{ "network",   no_argument,       NULL, 'n' },
+		{ "list",      no_argument,       NULL, 'l' },
+		{ "imagetype", required_argument, NULL, 't' },
+		{ "xml",       no_argument,       NULL, 'x' },
+		{ "debug",     no_argument,       NULL, 'd' },
 		{ "version",   no_argument,       NULL, 'v' },
 		{ NULL, 0, NULL, 0 }
 	};
 	int c;
 
 	while (1) {
-		c = getopt_long(argc, argv, "hu:lt:xdv", longopts, NULL);
+		c = getopt_long(argc, argv, "hu:lt:xdnv", longopts, NULL);
 		if (c == -1) {
 			break;
 		}
@@ -116,6 +119,9 @@
 			free(udid);
 			udid = strdup(optarg);
 			break;
+		case 'n':
+			use_network = 1;
+			break;
 		case 'l':
 			list_mode = 1;
 			break;
@@ -191,8 +197,12 @@
 		}
 	}
 
-	if (IDEVICE_E_SUCCESS != idevice_new(&device, udid)) {
-		printf("No device found, is it plugged in?\n");
+	if (IDEVICE_E_SUCCESS != idevice_new_with_options(&device, udid, (use_network) ? IDEVICE_LOOKUP_NETWORK : IDEVICE_LOOKUP_USBMUX)) {
+		if (udid) {
+			printf("No device found with udid %s.\n", udid);
+		} else {
+			printf("No device found.\n");
+		}
 		return -1;
 	}
 
diff --git a/tools/ideviceinfo.c b/tools/ideviceinfo.c
index 9b13ab8..a222e69 100644
--- a/tools/ideviceinfo.c
+++ b/tools/ideviceinfo.c
@@ -100,7 +100,7 @@
 		"\n" \
 		"OPTIONS:\n" \
 		"  -u, --udid UDID    target specific device by UDID\n" \
-		"  -n, --network      connect to network device even if available via USB\n" \
+		"  -n, --network      connect to network device\n" \
 		"  -s, --simple       use a simple connection to avoid auto-pairing with the device\n" \
 		"  -q, --domain NAME  set domain of query to NAME. Default: None\n" \
 		"  -k, --key NAME     only query key specified by NAME. Default: All keys.\n" \
@@ -130,12 +130,12 @@
 	int simple = 0;
 	int format = FORMAT_KEY_VALUE;
 	char* udid = NULL;
+	int use_network = 0;
 	char *domain = NULL;
 	char *key = NULL;
 	char *xml_doc = NULL;
 	uint32_t xml_length;
 	plist_t node = NULL;
-	enum idevice_options lookup_opts = IDEVICE_LOOKUP_USBMUX | IDEVICE_LOOKUP_NETWORK;
 
 	int c = 0;
 	const struct option longopts[] = {
@@ -170,7 +170,7 @@
 			udid = strdup(optarg);
 			break;
 		case 'n':
-			lookup_opts |= IDEVICE_LOOKUP_PREFER_NETWORK;
+			use_network = 1;
 			break;
 		case 'q':
 			if (!*optarg) {
@@ -211,7 +211,7 @@
 	argc -= optind;
 	argv += optind;
 
-	ret = idevice_new_with_options(&device, udid, lookup_opts);
+	ret = idevice_new_with_options(&device, udid, (use_network) ? IDEVICE_LOOKUP_NETWORK : IDEVICE_LOOKUP_USBMUX);
 	if (ret != IDEVICE_E_SUCCESS) {
 		if (udid) {
 			printf("ERROR: Device %s not found!\n", udid);
diff --git a/tools/idevicename.c b/tools/idevicename.c
index 5a34ea0..a87872b 100644
--- a/tools/idevicename.c
+++ b/tools/idevicename.c
@@ -44,8 +44,9 @@
 	printf("Display the device name or set it to NAME if specified.\n");
 	printf("\n");
 	printf("OPTIONS:\n");
-	printf("  -d, --debug\t\tenable communication debugging\n");
 	printf("  -u, --udid UDID\ttarget specific device by UDID\n");
+	printf("  -n, --network\t\tconnect to network device\n");
+	printf("  -d, --debug\t\tenable communication debugging\n");
 	printf("  -h, --help\t\tprint usage information\n");
 	printf("  -v, --version\t\tprint version information\n");
 	printf("\n");
@@ -58,6 +59,7 @@
 	int c = 0;
 	const struct option longopts[] = {
 		{ "udid",    required_argument, NULL, 'u' },
+		{ "network", no_argument,       NULL, 'n' },
 		{ "debug",   no_argument,       NULL, 'd' },
 		{ "help",    no_argument,       NULL, 'h' },
 		{ "version", no_argument,       NULL, 'v' },
@@ -65,12 +67,13 @@
 	};
 	int res = -1;
 	char* udid = NULL;
+	int use_network = 0;
 
 #ifndef WIN32
 	signal(SIGPIPE, SIG_IGN);
 #endif
 
-	while ((c = getopt_long(argc, argv, "du:hv", longopts, NULL)) != -1) {
+	while ((c = getopt_long(argc, argv, "du:hnv", longopts, NULL)) != -1) {
 		switch (c) {
 		case 'u':
 			if (!*optarg) {
@@ -81,6 +84,9 @@
 			free(udid);
 			udid = strdup(optarg);
 			break;
+		case 'n':
+			use_network = 1;
+			break;
 		case 'h':
 			print_usage();
 			return 0;
@@ -105,8 +111,12 @@
 	}
 
 	idevice_t device = NULL;
-	if (idevice_new(&device, udid) != IDEVICE_E_SUCCESS) {
-		fprintf(stderr, "ERROR: Could not connect to device\n");
+	if (idevice_new_with_options(&device, udid, (use_network) ? IDEVICE_LOOKUP_NETWORK : IDEVICE_LOOKUP_USBMUX) != IDEVICE_E_SUCCESS) {
+		if (udid) {
+			fprintf(stderr, "ERROR: No device found with udid %s.\n", udid);
+		} else {
+			fprintf(stderr, "ERROR: No device found.\n");
+		}
 		return -1;
 	}
 
diff --git a/tools/idevicenotificationproxy.c b/tools/idevicenotificationproxy.c
index 15b63a3..cfc9260 100644
--- a/tools/idevicenotificationproxy.c
+++ b/tools/idevicenotificationproxy.c
@@ -74,6 +74,7 @@
 	printf("\n");
 	printf("The following OPTIONS are accepted:\n");
 	printf("  -u, --udid UDID\ttarget specific device by UDID\n");
+	printf("  -n, --network\t\tconnect to network device\n");
 	printf("  -d, --debug\t\tenable communication debugging\n");
 	printf("  -h, --help\t\tprints usage information\n");
 	printf("  -v, --version\t\tprints version information\n");
@@ -98,6 +99,7 @@
 	int result = -1;
 	int i;
 	const char* udid = NULL;
+	int use_network = 0;
 	int cmd = CMD_NONE;
 	char* cmd_arg = NULL;
 
@@ -133,6 +135,10 @@
 			result = 0;
 			goto cleanup;
 		}
+		else if (!strcmp(argv[i], "-n") || !strcmp(argv[i], "--network")) {
+			use_network = 1;
+			continue;
+		}
 		else if (!strcmp(argv[i], "-v") || !strcmp(argv[i], "--version")) {
 			printf("%s %s\n", TOOL_NAME, PACKAGE_VERSION);
 			result = 0;
@@ -185,11 +191,11 @@
 		goto cleanup;
 	}
 
-	if (IDEVICE_E_SUCCESS != idevice_new(&device, udid)) {
+	if (IDEVICE_E_SUCCESS != idevice_new_with_options(&device, udid, (use_network) ? IDEVICE_LOOKUP_NETWORK : IDEVICE_LOOKUP_USBMUX)) {
 		if (udid) {
-			printf("No device found with udid %s, is it plugged in?\n", udid);
+			printf("No device found with udid %s.\n", udid);
 		} else {
-			printf("No device found, is it plugged in?\n");
+			printf("No device found.\n");
 		}
 		goto cleanup;
 	}
diff --git a/tools/idevicepair.c b/tools/idevicepair.c
index de631a0..68507f4 100644
--- a/tools/idevicepair.c
+++ b/tools/idevicepair.c
@@ -202,28 +202,23 @@
 		return EXIT_SUCCESS;
 	}
 
-	if (udid) {
-		ret = idevice_new(&device, udid);
-		if (ret != IDEVICE_E_SUCCESS) {
-			printf("No device found with udid %s, is it plugged in?\n", udid);
-			free(udid);
-			return EXIT_FAILURE;
+	ret = idevice_new(&device, udid);
+	if (ret != IDEVICE_E_SUCCESS) {
+		if (udid) {
+			printf("No device found with udid %s.\n", udid);
+		} else {
+			printf("No device found.\n");
 		}
 		free(udid);
-		udid = NULL;
-	} else {
-		ret = idevice_new(&device, NULL);
-		if (ret != IDEVICE_E_SUCCESS) {
-			printf("No device found, is it plugged in?\n");
-			return EXIT_FAILURE;
-		}
+		return EXIT_FAILURE;
 	}
-
-	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 (!udid) {
+		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) {
@@ -244,7 +239,7 @@
 		return EXIT_SUCCESS;
 	}
 
-	lerr = lockdownd_client_new(device, &client, "idevicepair");
+	lerr = lockdownd_client_new(device, &client, TOOL_NAME);
 	if (lerr != LOCKDOWN_E_SUCCESS) {
 		idevice_free(device);
 		printf("ERROR: Could not connect to lockdownd, error code %d\n", lerr);
diff --git a/tools/ideviceprovision.c b/tools/ideviceprovision.c
index 8cf3de6..c93a682 100644
--- a/tools/ideviceprovision.c
+++ b/tools/ideviceprovision.c
@@ -72,6 +72,7 @@
 	printf("\n");
 	printf("The following OPTIONS are accepted:\n");
 	printf("  -u, --udid UDID  target specific device by UDID\n");
+	printf("  -n, --network    connect to network device\n");
 	printf("  -x, --xml        print XML output when using the 'dump' command\n");
 	printf("  -d, --debug      enable communication debugging\n");
 	printf("  -h, --help       prints usage information\n");
@@ -300,6 +301,7 @@
 	const char* udid = NULL;
 	const char* param = NULL;
 	const char* param2 = NULL;
+	int use_network = 0;
 
 #ifndef WIN32
 	signal(SIGPIPE, SIG_IGN);
@@ -319,6 +321,10 @@
 			udid = argv[i];
 			continue;
 		}
+		else if (!strcmp(argv[i], "-n") || !strcmp(argv[i], "--network")) {
+			use_network = 1;
+			continue;
+		}
 		else if (!strcmp(argv[i], "install")) {
 			i++;
 			if (!argv[i] || (strlen(argv[i]) < 1)) {
@@ -437,12 +443,12 @@
 		}
 	}
 
-	ret = idevice_new(&device, udid);
+	ret = idevice_new_with_options(&device, udid, (use_network) ? IDEVICE_LOOKUP_NETWORK : IDEVICE_LOOKUP_USBMUX);
 	if (ret != IDEVICE_E_SUCCESS) {
 		if (udid) {
-			printf("No device found with udid %s, is it plugged in?\n", udid);
+			printf("No device found with udid %s.\n", udid);
 		} else {
-			printf("No device found, is it plugged in?\n");
+			printf("No device found.\n");
 		}
 		return -1;
 	}
diff --git a/tools/idevicescreenshot.c b/tools/idevicescreenshot.c
index c9dc0ef..75a69ce 100644
--- a/tools/idevicescreenshot.c
+++ b/tools/idevicescreenshot.c
@@ -50,6 +50,7 @@
 	int result = -1;
 	int i;
 	const char *udid = NULL;
+	int use_network = 0;
 	char *filename = NULL;
 
 #ifndef WIN32
@@ -70,6 +71,10 @@
 			udid = argv[i];
 			continue;
 		}
+		else if (!strcmp(argv[i], "-n") || !strcmp(argv[i], "--network")) {
+			use_network = 1;
+			continue;
+		}
 		else if (!strcmp(argv[i], "-h") || !strcmp(argv[i], "--help")) {
 			print_usage(argc, argv);
 			return 0;
@@ -88,11 +93,11 @@
 		}
 	}
 
-	if (IDEVICE_E_SUCCESS != idevice_new(&device, udid)) {
+	if (IDEVICE_E_SUCCESS != idevice_new_with_options(&device, udid, (use_network) ? IDEVICE_LOOKUP_NETWORK : IDEVICE_LOOKUP_USBMUX)) {
 		if (udid) {
-			printf("No device found with udid %s, is it plugged in?\n", udid);
+			printf("No device found with udid %s.\n", udid);
 		} else {
-			printf("No device found, is it plugged in?\n");
+			printf("No device found.\n");
 		}
 		return -1;
 	}
@@ -174,6 +179,7 @@
 	printf("the screenshotr service is not available.\n");
 	printf("\n");
 	printf("  -u, --udid UDID\ttarget specific device by UDID\n");
+	printf("  -n, --network\t\tconnect to network device\n");
 	printf("  -d, --debug\t\tenable communication debugging\n");
 	printf("  -h, --help\t\tprints usage information\n");
 	printf("  -v, --version\t\tprints version information\n");
diff --git a/tools/idevicesetlocation.c b/tools/idevicesetlocation.c
index 47f15ca..6332e3c 100644
--- a/tools/idevicesetlocation.c
+++ b/tools/idevicesetlocation.c
@@ -54,7 +54,7 @@
 	fprintf(is_error ? stderr : stdout, "\n" \
 		"OPTIONS:\n" \
 		"  -u, --udid UDID    target specific device by UDID\n" \
-		"  -n, --network      connect to network device even if available via USB\n" \
+		"  -n, --network      connect to network device\n" \
 		"  -d, --debug        enable communication debugging\n" \
 		"  -h, --help         prints usage information\n" \
 		"  -v, --version      prints version information\n" \
@@ -77,7 +77,7 @@
 	};
 	uint32_t mode = 0;
 	char *udid = NULL;
-	enum idevice_options lookup_opts = IDEVICE_LOOKUP_USBMUX | IDEVICE_LOOKUP_NETWORK;
+	int use_network = 0;
 
 	while ((c = getopt_long(argc, argv, "dhu:nv", longopts, NULL)) != -1) {
 		switch (c) {
@@ -94,7 +94,7 @@
 			udid = strdup(optarg);
 			break;
 		case 'n':
-			lookup_opts |= IDEVICE_LOOKUP_PREFER_NETWORK;
+			use_network = 1;
 			break;
 		case 'h':
 			print_usage(argc, argv, 0);
@@ -129,7 +129,7 @@
 
 	idevice_t device = NULL;
 
-	if (idevice_new_with_options(&device, udid, lookup_opts) != IDEVICE_E_SUCCESS) {
+	if (idevice_new_with_options(&device, udid, (use_network) ? IDEVICE_LOOKUP_NETWORK : IDEVICE_LOOKUP_USBMUX) != IDEVICE_E_SUCCESS) {
 		if (udid) {
 			printf("ERROR: Device %s not found!\n", udid);
 		} else {
diff --git a/tools/idevicesyslog.c b/tools/idevicesyslog.c
index acbcd74..0eed138 100644
--- a/tools/idevicesyslog.c
+++ b/tools/idevicesyslog.c
@@ -69,7 +69,7 @@
 
 static const char QUIET_FILTER[] = "CircleJoinRequested|CommCenter|HeuristicInterpreter|MobileMail|PowerUIAgent|ProtectedCloudKeySyncing|SpringBoard|UserEventAgent|WirelessRadioManagerd|accessoryd|accountsd|aggregated|analyticsd|appstored|apsd|assetsd|assistant_service|backboardd|biometrickitd|bluetoothd|calaccessd|callservicesd|cloudd|com.apple.Safari.SafeBrowsing.Service|contextstored|corecaptured|coreduetd|corespeechd|cdpd|dasd|dataaccessd|distnoted|dprivacyd|duetexpertd|findmydeviced|fmfd|fmflocatord|gpsd|healthd|homed|identityservicesd|imagent|itunescloudd|itunesstored|kernel|locationd|maild|mDNSResponder|mediaremoted|mediaserverd|mobileassetd|nanoregistryd|nanotimekitcompaniond|navd|nsurlsessiond|passd|pasted|photoanalysisd|powerd|powerlogHelperd|ptpd|rapportd|remindd|routined|runningboardd|searchd|sharingd|suggestd|symptomsd|timed|thermalmonitord|useractivityd|vmd|wifid|wirelessproxd";
 
-enum idevice_options lookup_opts = IDEVICE_LOOKUP_USBMUX | IDEVICE_LOOKUP_NETWORK;
+static int use_network = 0;
 
 static char *line = NULL;
 static int line_buffer_size = 0;
@@ -403,7 +403,7 @@
 
 static int start_logging(void)
 {
-	idevice_error_t ret = idevice_new_with_options(&device, udid, lookup_opts);
+	idevice_error_t ret = idevice_new_with_options(&device, udid, (use_network) ? IDEVICE_LOOKUP_NETWORK : IDEVICE_LOOKUP_USBMUX);
 	if (ret != IDEVICE_E_SUCCESS) {
 		fprintf(stderr, "Device with udid %s not found!?\n", udid);
 		return -1;
@@ -526,7 +526,7 @@
 		"\n" \
 		"OPTIONS:\n" \
 		"  -u, --udid UDID  target specific device by UDID\n" \
-		"  -n, --network    connect to network device even if available via USB\n" \
+		"  -n, --network    connect to network device\n" \
 		"  -x, --exit       exit when device disconnects\n" \
 		"  -h, --help       prints usage information\n" \
 		"  -d, --debug      enable communication debugging\n" \
@@ -610,7 +610,7 @@
 			udid = strdup(optarg);
 			break;
 		case 'n':
-			lookup_opts |= IDEVICE_LOOKUP_PREFER_NETWORK;
+			use_network = 1;
 			break;
 		case 'q':
 			exclude_filter++;