return false;
}
+bool link_is_ready_to_configure(Link *link, bool allow_unmanaged) {
+ assert(link);
+
+ if (!link->network || link->network->unmanaged) {
+ if (!allow_unmanaged)
+ return false;
+
+ return link_has_carrier(link);
+ }
+
+ if (!IN_SET(link->state, LINK_STATE_CONFIGURING, LINK_STATE_CONFIGURED))
+ return false;
+
+ if (!link_has_carrier(link) && !link->network->configure_without_carrier)
+ return false;
+
+ return true;
+}
+
static bool link_is_enslaved(Link *link) {
if (link->flags & IFF_SLAVE)
/* Even if the link is not managed by networkd, honor IFF_SLAVE flag. */
typedef int (*link_netlink_message_handler_t)(sd_netlink*, sd_netlink_message*, Link*);
+bool link_is_ready_to_configure(Link *link, bool allow_unmanaged);
+
void link_ntp_settings_clear(Link *link);
void link_dns_settings_clear(Link *link);
Link *link_unref(Link *link);