X-Git-Url: https://git.sur5r.net/?p=gsconf;a=blobdiff_plain;f=gs105e.c;fp=gs105e.c;h=5f3ed44e166844716d715d77489d9b48e7f2f377;hp=a5b9aa60300345753050f02d0d3bcd3000ae9fae;hb=99594a1f0718bf17c986cc730420f989f759fadb;hpb=11ae7c1958d87f75fb840c6556fa99abf85e6607 diff --git a/gs105e.c b/gs105e.c index a5b9aa6..5f3ed44 100644 --- a/gs105e.c +++ b/gs105e.c @@ -241,10 +241,10 @@ int gs105e__receive(void) { unsigned int slLen; -// if (len > 0) -// hexDump(data, len); + if (len > 0) + hexDump(data, len); if (len == -1) { -// printf("Received No or Invalid Packet\n"); + printf("Received No or Invalid Packet\n"); return -1; } if (memcmp(&data[8], myMac, 6) | data[0] != 0x01 | (!(data[1] == 0x02 | data[1] == 0x04))) { @@ -412,25 +412,42 @@ void addDiscoveredDevice(int id) { if (ddev == NULL) { ddev = (struct gs105e_discovered *)malloc(sizeof(struct gs105e_discovered)); gs105e_devs = ddev; + ddev->next = NULL; }else { while (ddev != NULL) { - if (memcmp(ddev->mac, settings.mac, 6)) + if (memcmp(ddev->mac, settings.mac, 6)) { + ddev = ddev->next; continue; - ddev = ddev->next; + } + + break; } + } if (ddev == NULL) { - struct gs105e_discovered * ddev = gs105e_devs; + + ddev = gs105e_devs; gs105e_devs = (struct gs105e_discovered *)malloc(sizeof(struct gs105e_discovered)); + printf("%p\n", gs105e_devs); + printf("%p\n", ddev); gs105e_devs->next = ddev; ddev = gs105e_devs; + printf("%p\n", ddev); + } - ddev->name = settings.name; + + printf("%p\n", ddev); + ddev->name = (char *)realloc(ddev->name, sizeof(char) * strlen(settings.name)); + printf("DEBUG 1\n"); + memcpy(ddev->name, settings.name, strlen(settings.name) + 1); memcpy(ddev->mac, settings.mac, 6); + memcpy(ddev->ip, settings.ip, 4); memcpy(ddev->gateway, settings.gateway, 4); - ddev->model = settings.model; + ddev->model = (char *)malloc(sizeof(char) * strlen(settings.model)); + memcpy(ddev->model, settings.model, strlen(settings.model) + 1); + ddev->id = id; } @@ -458,7 +475,9 @@ int gs105e_discover(void) { gs105e_query (); gs105e_query (); while (gs105e__receive() == 0) { + printf("DEGUB DEVICE DISCOVERED\n"); addDiscoveredDevice(n + 1); + n++; } return n;