Ok, that makes sense.
Obviously I have to find another way to handle my problem.

Thanks for your quick reply Laine.



On 05.09.2012 20:42, Laine Stump wrote:
On 09/05/2012 10:45 AM, Hendrik Schwartke wrote:
Hi,

I'm wondering why the IFF_RUNNING flag is checked in if_is_active.
Shouldn't it be enough to check only for IFF_UP?
My problem is that whenever I set a device up which is intentionally
not running (because the cable is not plugged in or because it's a tap
device) I got an error although everything is perfectly right.
So I have to write a wrapper to distinguish  between "real" error
messages and the "cable is not inserted" error.

Is there any reason for checking both flags I didn't notice?
Basically because someone had a problem with the previous behavior
displaying inconsistent results depending on whether or not
NetworkManager was running and whether or not the interface was using DHCP.

I suppose the core of this problem is that netcf has only a single flag
(active or not active) and there are multiple different states that the
interface could be in.

Here's the commit that added the check for IFF_RUNNING. It has a bit of
explanation, as well as a pointer to the BZ that started it all:


commit 012e2169dfd904520ecac65553ccdd265537351f
Author: Laine Stump<la...@redhat.com>
Date:   Tue Jul 31 19:57:59 2012 -0400

Author: Laine Stump<la...@redhat.com>
Date:   Tue Jul 31 19:57:59 2012 -0400

     check IFF_RUNNING before considering an interface "active"

     This is in response to:

       https://bugzilla.redhat.com/show_bug.cgi?id=844578

     If an interface's cable is unplugged and it is configured to use dhcp
     (or if NetworkManager is running), attempts to ifup will fail, but
     netcf will later report that the interface is active. This is because
     netcf only checks the IFF_UP flag in the interface status.

     It makes more sense for the interface to be counted as active only if
     ifup has been successful, so this patch changes the if_is_active()
     utility function to require both IFF_UP and IFF_RUNNING be set before
     counting the interface as active.

     However, if an interface is configured for a static IP address *and
     NetworkManager isn't running*, ifup will succeed even when the cable
     is unplugged. So again the active status of the interface is not
     consistent with the result of ifup. To resolve this inconsistency,
     this patch makes na additional check for if_is_active() after the
     system's ifup utility successfully completes.

     The result is consistency between the result of ifup and the
     interface's flags in all cases.


_______________________________________________
netcf-devel mailing list
netcf-devel@lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/netcf-devel

_______________________________________________
netcf-devel mailing list
netcf-devel@lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/netcf-devel

Reply via email to