/* SPDX-License-Identifier: LGPL-2.1-or-later */ #ifndef __NMP_RULES_MANAGER_H__ #define __NMP_RULES_MANAGER_H__ #include "nm-platform.h" /*****************************************************************************/ #define NMP_RULES_MANAGER_EXTERN_WEAKLY_TRACKED_USER_TAG ((const void *) nmp_rules_manager_new) typedef struct _NMPRulesManager NMPRulesManager; NMPRulesManager *nmp_rules_manager_new(NMPlatform *platform); void nmp_rules_manager_ref(NMPRulesManager *self); void nmp_rules_manager_unref(NMPRulesManager *self); #define nm_auto_unref_rules_manager nm_auto(_nmp_rules_manager_unref) NM_AUTO_DEFINE_FCN0(NMPRulesManager *, _nmp_rules_manager_unref, nmp_rules_manager_unref); void nmp_rules_manager_track(NMPRulesManager * self, const NMPlatformRoutingRule *routing_rule, gint32 track_priority, gconstpointer user_tag, gconstpointer user_tag_untrack); void nmp_rules_manager_track_default(NMPRulesManager *self, int addr_family, gint32 track_priority, gconstpointer user_tag); void nmp_rules_manager_track_from_platform(NMPRulesManager *self, NMPlatform * platform, int addr_family, gint32 tracking_priority, gconstpointer user_tag); void nmp_rules_manager_untrack(NMPRulesManager * self, const NMPlatformRoutingRule *routing_rule, gconstpointer user_tag); void nmp_rules_manager_set_dirty(NMPRulesManager *self, gconstpointer user_tag); void nmp_rules_manager_untrack_all(NMPRulesManager *self, gconstpointer user_tag, gboolean all /* or only dirty */); void nmp_rules_manager_sync(NMPRulesManager *self, gboolean keep_deleted_rules); /*****************************************************************************/ #endif /* __NMP_RULES_MANAGER_H__ */