// === GLOBALS ===
int giRegisteredTypes = 0;
+ int giRegisteredTypeSpace = 0;
struct {
Uint16 Type;
tPacketCallback Callback;
if(i == -1)
{
- tmp = realloc(gaRegisteredTypes, (giRegisteredTypes+1)*sizeof(*gaRegisteredTypes));
+ giRegisteredTypeSpace += 5;
+ tmp = realloc(gaRegisteredTypes, giRegisteredTypeSpace*sizeof(*gaRegisteredTypes));
if(!tmp) {
Log_Warning("NET",
"Out of heap space! (Attempted to allocate %i)",
- (giRegisteredTypes+1)*sizeof(*gaRegisteredTypes)
+ giRegisteredTypeSpace*sizeof(*gaRegisteredTypes)
);
return ;
}
+ gaRegisteredTypes = tmp;
i = giRegisteredTypes;
giRegisteredTypes ++;
- gaRegisteredTypes = tmp;
}
gaRegisteredTypes[i].Callback = Callback;
ret = VFS_Read(Adapter->DeviceFD, MAX_PACKET_SIZE, buf);
if(ret == -1) break;
- if(ret <= sizeof(tEthernetHeader)) {
+ if(ret <= (int)sizeof(tEthernetHeader)) {
Log_Log("NET", "Recieved an undersized packet");
continue;
}
}
Log_Log("NET", "Watcher terminated (file closed)");
+
+ Threads_Exit(0, 0);
}
// From http://www.cl.cam.ac.uk/research/srg/bluebook/21/crc/node6.html