From cf064cc7b508b4ca535bd916bfc8b4ba22f9c525 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Fri, 27 Aug 2010 10:55:48 +0000 Subject: [PATCH] * 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 --- src/add-ons/kernel/network/stack/device_interfaces.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/add-ons/kernel/network/stack/device_interfaces.cpp b/src/add-ons/kernel/network/stack/device_interfaces.cpp index d7a861d0ca..8df3fe7246 100644 --- a/src/add-ons/kernel/network/stack/device_interfaces.cpp +++ b/src/add-ons/kernel/network/stack/device_interfaces.cpp @@ -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;