lde_addr
struct lde_addr lde_addr;
memset(&lde_addr, 0, sizeof(lde_addr));
lde_addr.af = AF_INET;
memcpy(&lde_addr.addr, buf, sizeof(struct in_addr));
memset(&lde_addr, 0, sizeof(lde_addr));
lde_addr.af = AF_INET6;
memcpy(&lde_addr.addr, buf, sizeof(struct in6_addr));
log_msg_address(0, msg_type, nbr, lde_addr.af, &lde_addr.addr);
ldpe_imsg_compose_lde(type, nbr->peerid, 0, &lde_addr,
sizeof(lde_addr));
lde_nbr_addr_update(struct lde_nbr *ln, struct lde_addr *lde_addr, int removed)
if (lde_addr->af != AF_INET)
if (lde_addr->af != AF_INET6)
&lde_addr->addr))
lde_address_add(struct lde_nbr *ln, struct lde_addr *lde_addr)
struct lde_addr *new;
if (lde_address_find(ln, lde_addr->af, &lde_addr->addr) != NULL)
new->af = lde_addr->af;
new->addr = lde_addr->addr;
lde_nbr_addr_update(ln, lde_addr, 0);
lde_address_del(struct lde_nbr *ln, struct lde_addr *lde_addr)
lde_addr = lde_address_find(ln, lde_addr->af, &lde_addr->addr);
if (lde_addr == NULL)
lde_nbr_addr_update(ln, lde_addr, 1);
TAILQ_REMOVE(&ln->addr_list, lde_addr, entry);
free(lde_addr);
struct lde_addr *
struct lde_addr *lde_addr;
TAILQ_FOREACH(lde_addr, &ln->addr_list, entry)
if (lde_addr->af == af &&
ldp_addrcmp(af, &lde_addr->addr, addr) == 0)
return (lde_addr);
struct lde_addr *lde_addr;
while ((lde_addr = TAILQ_FIRST(&ln->addr_list)) != NULL) {
TAILQ_REMOVE(&ln->addr_list, lde_addr, entry);
free(lde_addr);
struct lde_addr lde_addr;
if (imsg.hdr.len - IMSG_HEADER_SIZE != sizeof(lde_addr))
memcpy(&lde_addr, imsg.data, sizeof(lde_addr));
if (lde_address_add(ln, &lde_addr) < 0) {
log_addr(lde_addr.af, &lde_addr.addr));
if (imsg.hdr.len - IMSG_HEADER_SIZE != sizeof(lde_addr))
memcpy(&lde_addr, imsg.data, sizeof(lde_addr));
if (lde_address_del(ln, &lde_addr) < 0) {
log_addr(lde_addr.af, &lde_addr.addr));
struct lde_addr *, int);
static int lde_address_add(struct lde_nbr *, struct lde_addr *);
static int lde_address_del(struct lde_nbr *, struct lde_addr *);
struct lde_addr *lde_address_find(struct lde_nbr *, int,
TAILQ_ENTRY(lde_addr) entry;
TAILQ_HEAD(, lde_addr) addr_list;