* 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:
Axel Dörfler
2010-08-27 10:55:48 +00:00
parent 870fd4b77b
commit cf064cc7b5
@@ -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;