* Set the new net_buffer::index field on retrieval of a buffer.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38394 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -104,9 +104,12 @@ device_consumer_thread(void* _interface)
|
||||
buffer = NULL;
|
||||
} else {
|
||||
sockaddr_dl& linkAddress = *(sockaddr_dl*)buffer->source;
|
||||
int32 genericType = buffer->type;
|
||||
int32 specificType = B_NET_FRAME_TYPE(linkAddress.sdl_type,
|
||||
linkAddress.sdl_e_type);
|
||||
|
||||
buffer->index = interface->device->index;
|
||||
|
||||
// Find handler for this packet
|
||||
|
||||
RecursiveLocker locker(interface->receive_lock);
|
||||
@@ -118,7 +121,7 @@ device_consumer_thread(void* _interface)
|
||||
|
||||
// If the handler returns B_OK, it consumed the buffer - first
|
||||
// handler wins.
|
||||
if ((handler->type == buffer->type
|
||||
if ((handler->type == genericType
|
||||
|| handler->type == specificType)
|
||||
&& handler->func(handler->cookie, device, buffer) == B_OK)
|
||||
buffer = NULL;
|
||||
|
||||
Reference in New Issue
Block a user