From ca2aa96377bfa3351a2ffc18981ab843ea1421f9 Mon Sep 17 00:00:00 2001 From: Hugo Santos Date: Wed, 4 Apr 2007 12:51:23 +0000 Subject: [PATCH] don't overwrite the flags we set when the interface goes up or down, instead just update the flags in the same place. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20553 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/network/stack/datalink.cpp | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/src/add-ons/kernel/network/stack/datalink.cpp b/src/add-ons/kernel/network/stack/datalink.cpp index ce92a1f043..cffd78b3ff 100644 --- a/src/add-ons/kernel/network/stack/datalink.cpp +++ b/src/add-ons/kernel/network/stack/datalink.cpp @@ -347,10 +347,8 @@ datalink_control(net_domain *_domain, int32 option, void *value, } } - request.ifr_flags = interface->flags; - } - - if (status == B_OK) { + interface->flags |= (request.ifr_flags & ~(IFF_UP | IFF_LINK)); + } else { // pass the request into the datalink protocol stack status = interface->first_info->control( interface->first_protocol, option, value, *_length); @@ -654,17 +652,6 @@ interface_protocol_control(net_datalink_protocol *_protocol, return user_memcpy(&((struct ifreq *)argument)->ifr_flags, &request.ifr_flags, sizeof(request.ifr_flags)); } - case SIOCSIFFLAGS: - { - // set flags - struct ifreq request; - if (user_memcpy(&request, argument, sizeof(struct ifreq)) < B_OK) - return B_BAD_ADDRESS; - - // TODO: check flags! - interface->flags = request.ifr_flags; - return B_OK; - } case SIOCGIFPARAM: {