libifupdown: introduce lif_state_ref_if() and lif_state_unref_if().
This commit is contained in:
parent
865bf7cac6
commit
288976f015
2 changed files with 20 additions and 0 deletions
|
@ -63,6 +63,24 @@ lif_state_read_path(struct lif_dict *state, const char *path)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
lif_state_ref_if(struct lif_dict *state, const char *ifname, struct lif_interface *iface)
|
||||||
|
{
|
||||||
|
iface->refcount++;
|
||||||
|
lif_state_upsert(state, ifname, iface);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
lif_state_unref_if(struct lif_dict *state, const char *ifname, struct lif_interface *iface)
|
||||||
|
{
|
||||||
|
iface->refcount--;
|
||||||
|
|
||||||
|
if (iface->refcount)
|
||||||
|
lif_state_upsert(state, ifname, iface);
|
||||||
|
else
|
||||||
|
lif_state_delete(state, ifname);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
lif_state_upsert(struct lif_dict *state, const char *ifname, struct lif_interface *iface)
|
lif_state_upsert(struct lif_dict *state, const char *ifname, struct lif_interface *iface)
|
||||||
{
|
{
|
||||||
|
|
|
@ -27,6 +27,8 @@ struct lif_state_record {
|
||||||
extern bool lif_state_read(struct lif_dict *state, FILE *f);
|
extern bool lif_state_read(struct lif_dict *state, FILE *f);
|
||||||
extern bool lif_state_read_path(struct lif_dict *state, const char *path);
|
extern bool lif_state_read_path(struct lif_dict *state, const char *path);
|
||||||
extern void lif_state_upsert(struct lif_dict *state, const char *ifname, struct lif_interface *iface);
|
extern void lif_state_upsert(struct lif_dict *state, const char *ifname, struct lif_interface *iface);
|
||||||
|
extern void lif_state_ref_if(struct lif_dict *state, const char *ifname, struct lif_interface *iface);
|
||||||
|
extern void lif_state_unref_if(struct lif_dict *state, const char *ifname, struct lif_interface *iface);
|
||||||
extern void lif_state_delete(struct lif_dict *state, const char *ifname);
|
extern void lif_state_delete(struct lif_dict *state, const char *ifname);
|
||||||
extern void lif_state_write(const struct lif_dict *state, FILE *f);
|
extern void lif_state_write(const struct lif_dict *state, FILE *f);
|
||||||
extern bool lif_state_write_path(const struct lif_dict *state, const char *path);
|
extern bool lif_state_write_path(const struct lif_dict *state, const char *path);
|
||||||
|
|
Loading…
Reference in a new issue