git.ucc.asn.au
/
tpg
/
acess2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fiddling with IPStack
[tpg/acess2.git]
/
Modules
/
IPStack
/
link.c
diff --git
a/Modules/IPStack/link.c
b/Modules/IPStack/link.c
index
ef17c93
..
07234df
100644
(file)
--- a/
Modules/IPStack/link.c
+++ b/
Modules/IPStack/link.c
@@
-17,6
+17,7
@@
void Link_WatchDevice(tAdapter *Adapter);
// === GLOBALS ===
int giRegisteredTypes = 0;
// === GLOBALS ===
int giRegisteredTypes = 0;
+ int giRegisteredTypeSpace = 0;
struct {
Uint16 Type;
tPacketCallback Callback;
struct {
Uint16 Type;
tPacketCallback Callback;
@@
-50,17
+51,18
@@
void Link_RegisterType(Uint16 Type, tPacketCallback Callback)
if(i == -1)
{
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)",
if(!tmp) {
Log_Warning("NET",
"Out of heap space! (Attempted to allocate %i)",
-
(giRegisteredTypes+1)
*sizeof(*gaRegisteredTypes)
+
giRegisteredTypeSpace
*sizeof(*gaRegisteredTypes)
);
return ;
}
);
return ;
}
+ gaRegisteredTypes = tmp;
i = giRegisteredTypes;
giRegisteredTypes ++;
i = giRegisteredTypes;
giRegisteredTypes ++;
- gaRegisteredTypes = tmp;
}
gaRegisteredTypes[i].Callback = Callback;
}
gaRegisteredTypes[i].Callback = Callback;
@@
-122,10
+124,11
@@
void Link_WatchDevice(tAdapter *Adapter)
Uint32 checksum;
// Wait for a packet (Read on a network device is blocking)
Uint32 checksum;
// Wait for a packet (Read on a network device is blocking)
+ Log_Debug("NET", "Waiting on adapter FD#0x%x", Adapter->DeviceFD);
ret = VFS_Read(Adapter->DeviceFD, MAX_PACKET_SIZE, buf);
if(ret == -1) break;
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", "Recieved an undersized packet");
continue;
}
UCC
git Repository :: git.ucc.asn.au