Author: axeld Date: 2010-08-27 12:55:48 +0200 (Fri, 27 Aug 2010) New Revision: 38394 Changeset: http://dev.haiku-os.org/changeset/38394 Modified: haiku/trunk/src/add-ons/kernel/network/stack/device_interfaces.cpp Log: * Set the new net_buffer::index field on retrieval of a buffer. Modified: haiku/trunk/src/add-ons/kernel/network/stack/device_interfaces.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/network/stack/device_interfaces.cpp 2010-08-27 10:54:58 UTC (rev 38393) +++ haiku/trunk/src/add-ons/kernel/network/stack/device_interfaces.cpp 2010-08-27 10:55:48 UTC (rev 38394) @@ -104,9 +104,12 @@ 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 @@ // 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;