diff --git a/dongle.c b/dongle.c
index cbd7f869d26f235986d2a481b818171c3d6afb02..ee571563479852309e0b3ae23d5ff24007c89b8b 100644
--- a/dongle.c
+++ b/dongle.c
@@ -498,12 +498,12 @@ int get_devices(void)
 		name = get_device_name(path);
 		if (!name)
 			continue;
+
 		dev = (struct device *)calloc(1, sizeof(*dev));
 		if (!dev) {
 			perror("calloc");
 			goto fail_dev;
 		}
-
 		dev->usb.product = get_usb_stat(path, "product");
 		dev->usb.product_id = get_usb_stat(path, "idProduct");
 		dev->usb.vendor_id = get_usb_stat(path, "idVendor");
@@ -543,34 +543,25 @@ char *get_device_ip(char *device_name)
 	while ((fgets(route, 1024, fp)) != NULL) {
 		remove_newline(route);
 
-		iface = lexer(&route, "\t");
-		destination = lexer(&route, "\t");
-		gateway = lexer(&route, "\t");
-		flags = lexer(&route, "\t");
+		iface = strtok(route, "\t");
+		destination = strtok(NULL, "\t");
+		gateway = strtok(NULL, "\t");
+		flags = strtok(NULL, "\t");
 
 		if (strncmp(iface, device_name, 10) != 0)
-			goto free_vars;
+			continue;
 
+		printf("iface %s");
 		host_flag = atoi(flags) & 4;
 		if (!host_flag)
-			goto free_vars;
+			continue;
 
 		ipv4_addr = (char *)calloc(1, IPV4_MAX);
-		if (!ipv4_addr) {
-			free(iface);
-			free(destination);
-			free(gateway);
-			free(flags);
+		if (!ipv4_addr)
 			break;
-		}
+
 		addr.s_addr = strtoul(destination, NULL, IPV4_MAX);
 		inet_ntop(AF_INET, &(addr.s_addr), ipv4_addr, IPV4_MAX);
-
-free_vars:
-		free(iface);
-		free(destination);
-		free(gateway);
-		free(flags);
 	}
 
 	free(route);