Lines Matching defs:addrs

658 target_next_address(struct target_address *addrs)
660 if (addrs == NULL)
663 return (SLIST_NEXT(addrs, ta));
670 struct target_address *addrs, *temp, *prev;
672 SLIST_FOREACH(addrs, &target_addresslist, ta)
673 if (strcmp(aname, addrs->name) == 0)
676 if ((addrs = (struct target_address *)malloc(sizeof(*addrs))) == NULL)
679 memset(addrs, 0, sizeof(*addrs));
680 strlcpy(addrs->name, aname, sizeof(addrs->name));
681 addrs->timeout = 150;
682 addrs->retry = 3; /* XXX */
686 SLIST_INSERT_HEAD(&target_addresslist, addrs, ta);
687 return (addrs);
697 SLIST_INSERT_AFTER(prev, addrs, ta);
699 SLIST_INSERT_AFTER(temp, addrs, ta);
701 syslog(LOG_ERR, "Target address %s exists", addrs->name);
702 free(addrs);
706 return (addrs);
710 target_activate_address(struct target_address *addrs)
714 if ((addrs->socket = socket(PF_INET, SOCK_DGRAM, 0)) == -1) {
719 (void)shutdown(addrs->socket, SHUT_RD);
724 sa.sin_addr.s_addr = htonl((addrs->address[0] << 24) |
725 (addrs->address[1] << 16) | (addrs->address[2] << 8) |
726 (addrs->address[3] << 0));
727 sa.sin_port = htons(addrs->address[4] << 8 | addrs->address[5]);
729 if (connect(addrs->socket, (struct sockaddr *)&sa, sa.sin_len) == -1) {
732 (void)close(addrs->socket);
736 addrs->status = RowStatus_active;
742 target_delete_address(struct target_address *addrs)
744 SLIST_REMOVE(&target_addresslist, addrs, target_address, ta);
745 if (addrs->status == RowStatus_active)
746 close(addrs->socket);
747 free(addrs);
885 struct target_address *addrs;
889 while ((addrs = SLIST_FIRST(&target_addresslist)) != NULL) {
891 if (addrs->status == RowStatus_active)
892 close(addrs->socket);
893 free(addrs);