#include <stdio.h>
#include <stdlib.h>
-unsigned char * gs105e_queryData;
-unsigned int gsDataLen;
+char * gs105e_queryData;
+int gsDataLen;
struct vlan * getVlanSetting(unsigned int vlanId) {
struct vlan * _vlan = settings.vlans;
return (char)packetId;
}
+
+
void makeHeader(unsigned int queryType) {
int n;
- gs105e_queryData = (unsigned char * )realloc(gs105e_queryData, sizeof(char) * 32);
+ gs105e_queryData = realloc(gs105e_queryData, sizeof(char) * 32);
gsDataLen = 32;
memcpy(&gs105e_queryData[24], "\x4e\x53\x44\x50", 4); //Magic!! :-O
if (settings.password != NULL && queryType == QR_EXEC) {
-
- addActData(GS_PASSWORD, strlen(settings.password), settings.password);
+ char tmpPassword[strlen(settings.password)];
+ for (n = 0; n < strlen(settings.password); n++)
+ tmpPassword[n] = passwordSecret[n % 19] ^ settings.password[n];
+ addActData(GS_PASSWORD, strlen(settings.password), tmpPassword);
}
emptyBuffer();
gs105e_queryData[23] = newPacketId();
- if (gs105e_queryData[gsDataLen - 4] != 0xFF | gs105e_queryData[gsDataLen - 3] != 0xFF | gs105e_queryData[gsDataLen - 2] != 0x00 | gs105e_queryData[gsDataLen - 1] != 0x00)
+ if ((gs105e_queryData[gsDataLen - 4] != 0xFF) | (gs105e_queryData[gsDataLen - 3] != 0xFF) | (gs105e_queryData[gsDataLen - 2] != 0x00) | (gs105e_queryData[gsDataLen - 1] != 0x00))
addData("\xFF\xFF\x00\x00", 4);
sendBroadcast(gs105e_queryData, gsDataLen);
// printf("Received No or Invalid Packet\n");
return -1;
}
- if (memcmp(&data[8], myMac, 6) | data[0] != 0x01 | (!(data[1] == 0x02 | data[1] == 0x04))) {
+ if (memcmp(&data[8], myMac, 6) | (data[0] != 0x01) | (!((data[1] == 0x02) | (data[1] == 0x04)))) {
return -1;
}
// printf("Received No or Invalid Packet\n");
return -1;
}
- if (memcmp(&data[8], myMac, 6) | data[0] != 0x01 | (!(data[1] == 0x02 | data[1] == 0x04))) {
+ if (memcmp(&data[8], myMac, 6) | (data[0] != 0x01) | (!((data[1] == 0x02) | (data[1] == 0x04)))) {
gs105e_actRecv();
return -1;
}
return gs105e_act();
}
-int gs105e_restart(int vlanId) {
+int gs105e_restart(void) {
makeHeader(QR_EXEC);
char data[1] = {1};
}
int gs105e_setPassword(char * data) {
- makeHeader(QR_EXEC);
-
+ int n;
+ makeHeader(QR_EXEC);
- addActData(GS_NEWPASSWORD, strlen(data), data);
+ char tmpPasswd[strlen(data)];
+ for (n = 0; n < strlen(data); n++)
+ tmpPasswd[n] = data[n] ^ passwordSecret[n % 19];
+ addActData(GS_NEWPASSWORD, strlen(data), tmpPasswd);
return gs105e_act();
}
}
- printf("%p\n", ddev);
- ddev->name = (char *)realloc(ddev->name, sizeof(char) * strlen(settings.name));
+ printf("%p\n", ddev->name);
+ ddev->name = (char *)malloc(sizeof(char) * strlen(settings.name));
printf("DEBUG 1\n");
memcpy(ddev->name, settings.name, strlen(settings.name) + 1);
memcpy(ddev->mac, settings.mac, 6);