* Removed the interface fallback from the datalink module's is_local_address().
* Instead, added a new function is_local_link_address() which returns the interface with the matching link level address, and can additionally test for unconfigured interfaces. * Merged the two versions of fill_sockaddr_in() together in ipv4.cpp. * ipv4 now uses the new is_local_link_address() function to figure out whether the received packet should be processed or not. This should fix a few DHCP issues with multiple and configured interfaces as recently explained on the mailing list. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34466 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -70,9 +70,11 @@ struct net_datalink_module_info {
|
||||
struct net_domain *domain, struct net_buffer *buffer);
|
||||
|
||||
bool (*is_local_address)(struct net_domain *domain,
|
||||
const struct sockaddr *address,
|
||||
net_interface **_interface,
|
||||
const struct sockaddr *address, net_interface **_interface,
|
||||
uint32 *_matchedType);
|
||||
bool (*is_local_link_address)(struct net_domain *domain, bool unconfigured,
|
||||
const struct sockaddr *address, net_interface **_interface);
|
||||
|
||||
net_interface *(*get_interface)(struct net_domain *domain, uint32 index);
|
||||
net_interface *(*get_interface_with_address)(struct net_domain *domain,
|
||||
const struct sockaddr *address);
|
||||
|
||||
Reference in New Issue
Block a user