imsg_ifinfo
read_lease_file(struct imsg_ifinfo *imsg_ifinfo)
memset(imsg_ifinfo->pds, 0, sizeof(imsg_ifinfo->pds));
if (if_indextoname(imsg_ifinfo->if_index, if_name) == NULL) {
imsg_ifinfo->if_index);
parse_lease(lease_file_buf, imsg_ifinfo);
if (imsg_ifinfo->pds[i].prefix_len == 0)
inet_ntop(AF_INET6, &imsg_ifinfo->pds[i].prefix,
imsg_ifinfo->pds[i].prefix_len);
struct imsg_ifinfo imsg_ifinfo;
if (IMSG_DATA_SIZE(imsg) != sizeof(imsg_ifinfo))
memcpy(&imsg_ifinfo, imsg.data, sizeof(imsg_ifinfo));
read_lease_file(&imsg_ifinfo);
&imsg_ifinfo, sizeof(imsg_ifinfo));
void read_lease_file(struct imsg_ifinfo *);
void parse_lease(const char*, struct imsg_ifinfo *);
void engine_update_iface(struct imsg_ifinfo *);
struct imsg_ifinfo imsg_ifinfo;
if (IMSG_DATA_SIZE(imsg) != sizeof(imsg_ifinfo))
memcpy(&imsg_ifinfo, imsg.data, sizeof(imsg_ifinfo));
engine_update_iface(&imsg_ifinfo);
engine_update_iface(struct imsg_ifinfo *imsg_ifinfo)
iface = get_dhcp6leased_iface_by_id(imsg_ifinfo->if_index);
iface->if_index = imsg_ifinfo->if_index;
iface->rdomain = imsg_ifinfo->rdomain;
iface->running = imsg_ifinfo->running;
iface->link_state = imsg_ifinfo->link_state;
if (imsg_ifinfo->rdomain != iface->rdomain) {
iface->rdomain = imsg_ifinfo->rdomain;
if (imsg_ifinfo->running != iface->running) {
iface->running = imsg_ifinfo->running;
if (imsg_ifinfo->link_state != iface->link_state) {
iface->link_state = imsg_ifinfo->link_state;
memcpy(iface->pds, imsg_ifinfo->pds,
struct imsg_ifinfo ifinfo;
struct imsg_ifinfo ifinfo;
parse_lease(const char *filename, struct imsg_ifinfo *imsg)
struct imsg_ifinfo *ifinfo;
read_lease_file(struct imsg_ifinfo *imsg_ifinfo)
memset(imsg_ifinfo->lease, 0, sizeof(imsg_ifinfo->lease));
if (if_indextoname(imsg_ifinfo->if_index, if_name) == NULL) {
imsg_ifinfo->if_index);
read(fd, imsg_ifinfo->lease, sizeof(imsg_ifinfo->lease) - 1);
struct imsg_ifinfo imsg_ifinfo;
if (imsg_get_data(&imsg, &imsg_ifinfo,
sizeof(imsg_ifinfo)) == -1)
read_lease_file(&imsg_ifinfo);
&imsg_ifinfo, sizeof(imsg_ifinfo));
void read_lease_file(struct imsg_ifinfo *);
void engine_update_iface(struct imsg_ifinfo *);
struct imsg_ifinfo *);
parse_lease(struct dhcpleased_iface *iface, struct imsg_ifinfo *imsg_ifinfo)
if ((p = strstr(imsg_ifinfo->lease, LEASE_IP_PREFIX)) == NULL)
struct imsg_ifinfo imsg_ifinfo;
if (imsg_get_data(&imsg, &imsg_ifinfo,
sizeof(imsg_ifinfo)) == -1)
if (imsg_ifinfo.lease[LEASE_SIZE - 1] != '\0')
engine_update_iface(&imsg_ifinfo);
engine_update_iface(struct imsg_ifinfo *imsg_ifinfo)
iface = get_dhcpleased_iface_by_id(imsg_ifinfo->if_index);
iface->if_index = imsg_ifinfo->if_index;
iface->rdomain = imsg_ifinfo->rdomain;
iface->running = imsg_ifinfo->running;
iface->link_state = imsg_ifinfo->link_state;
memcpy(iface->if_name, imsg_ifinfo->if_name,
memcpy(&iface->hw_address, &imsg_ifinfo->hw_address,
if (memcmp(&iface->hw_address, &imsg_ifinfo->hw_address,
memcpy(&iface->hw_address, &imsg_ifinfo->hw_address,
if (imsg_ifinfo->rdomain != iface->rdomain) {
iface->rdomain = imsg_ifinfo->rdomain;
if (imsg_ifinfo->running != iface->running) {
iface->running = imsg_ifinfo->running;
if (imsg_ifinfo->link_state != iface->link_state) {
iface->link_state = imsg_ifinfo->link_state;
parse_lease(iface, imsg_ifinfo);
struct imsg_ifinfo ifinfo;
struct imsg_ifinfo ifinfo;
struct imsg_ifinfo ifinfo;
engine_update_iface(struct imsg_ifinfo *imsg_ifinfo)
iface = get_slaacd_iface_by_id(imsg_ifinfo->if_index);
iface->if_index = imsg_ifinfo->if_index;
iface->rdomain = imsg_ifinfo->rdomain;
iface->running = imsg_ifinfo->running;
iface->link_state = imsg_ifinfo->link_state;
iface->autoconf = imsg_ifinfo->autoconf;
iface->temporary = imsg_ifinfo->temporary;
iface->soii = imsg_ifinfo->soii;
memcpy(&iface->hw_address, &imsg_ifinfo->hw_address,
memcpy(&iface->ll_address, &imsg_ifinfo->ll_address,
memcpy(iface->soiikey, imsg_ifinfo->soiikey,
memcpy(&iface->ll_address, &imsg_ifinfo->ll_address,
if (iface->autoconf != imsg_ifinfo->autoconf) {
iface->autoconf = imsg_ifinfo->autoconf;
if (iface->temporary != imsg_ifinfo->temporary) {
iface->temporary = imsg_ifinfo->temporary;
if (iface->soii != imsg_ifinfo->soii) {
iface->soii = imsg_ifinfo->soii;
if (memcmp(&iface->hw_address, &imsg_ifinfo->hw_address,
memcpy(&iface->hw_address, &imsg_ifinfo->hw_address,
if (memcmp(iface->soiikey, imsg_ifinfo->soiikey,
memcpy(iface->soiikey, imsg_ifinfo->soiikey,
if (imsg_ifinfo->running != iface->running) {
iface->running = imsg_ifinfo->running;
if (imsg_ifinfo->link_state != iface->link_state) {
iface->link_state = imsg_ifinfo->link_state;
void engine_update_iface(struct imsg_ifinfo *);
struct imsg_ifinfo imsg_ifinfo;
if (imsg_get_data(&imsg, &imsg_ifinfo,
sizeof(imsg_ifinfo)) == -1)
engine_update_iface(&imsg_ifinfo);
struct imsg_ifinfo imsg_ifinfo;
memset(&imsg_ifinfo, 0, sizeof(imsg_ifinfo));
imsg_ifinfo.if_index = if_index;
imsg_ifinfo.rdomain = ifrdomain;
imsg_ifinfo.running = (flags & (IFF_UP | IFF_RUNNING)) == (IFF_UP |
imsg_ifinfo.autoconf = (xflags & IFXF_AUTOCONF6);
imsg_ifinfo.temporary = (xflags & IFXF_AUTOCONF6TEMP);
imsg_ifinfo.soii = !(xflags & IFXF_INET6_NOSOII);
imsg_ifinfo.link_state =
memcpy(imsg_ifinfo.hw_address.ether_addr_octet,
memcpy(&imsg_ifinfo.ll_address, sin6,
sizeof(imsg_ifinfo.ll_address));
frontend_imsg_compose_main(IMSG_UPDATE_IF, 0, &imsg_ifinfo,
sizeof(imsg_ifinfo));
struct imsg_ifinfo imsg_ifinfo;
if (imsg_get_data(&imsg, &imsg_ifinfo,
sizeof(imsg_ifinfo)) == -1)
memcpy(imsg_ifinfo.soiikey, soiikey,
&imsg_ifinfo, sizeof(imsg_ifinfo));