log_debug("send_ls_ack: interface %s addr %s", iface->name, inet_ntoa(addr));
send_ls_ack(struct iface *iface, struct in_addr addr, void *data, int len){	struct sockaddr_in	 dst;	struct buf		*buf;	int			 ret;	log_debug("send_ls_ack: interface %s addr %s",	    iface->name, inet_ntoa(addr));	/* XXX READ_BUF_SIZE */	if ((buf = buf_dynamic(PKG_DEF_SIZE, READ_BUF_SIZE)) == NULL)		fatal("send_ls_ack");	dst.sin_family = AF_INET;	dst.sin_len = sizeof(struct sockaddr_in);	dst.sin_addr.s_addr = addr.s_addr;	/* OSPF header */	if (gen_ospf_hdr(buf, iface, PACKET_TYPE_LS_ACK))		goto fail;	/* LS ack(s) */	if (buf_add(buf, data, len))		goto fail;	/* update authentication and calculate checksum */	if (auth_gen(buf, iface))		goto fail;	ret = send_packet(iface, buf->buf, buf->wpos, &dst);	buf_free(buf);	return (ret);fail:	log_warn("send_ls_ack");	buf_free(buf);	return (-1);}