• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.9.5/postfix-252/postfix/src/util/

Lines Matching refs:list

5 /*	internet address list manager
9 /* void inet_addr_list_init(list)
10 /* INET_ADDR_LIST *list;
12 /* void inet_addr_list_append(list,addr)
13 /* INET_ADDR_LIST *list;
16 /* void inet_addr_list_uniq(list)
17 /* INET_ADDR_LIST *list;
19 /* void inet_addr_list_free(list)
20 /* INET_ADDR_LIST *list;
29 /* the specified list, extending the list on the fly.
31 /* inet_addr_list_uniq() sorts the specified address list and
35 /* specified address list.
64 /* inet_addr_list_init - initialize internet address list */
66 void inet_addr_list_init(INET_ADDR_LIST *list)
70 list->used = 0;
71 list->size = 0;
73 list->addrs = (struct sockaddr_storage *)
74 mymalloc(sizeof(*list->addrs) * init_size);
75 list->size = init_size;
78 /* inet_addr_list_append - append address to internet address list */
80 void inet_addr_list_append(INET_ADDR_LIST *list,
92 if (list->used >= list->size) {
93 new_size = list->size * 2;
94 list->addrs = (struct sockaddr_storage *)
95 myrealloc((char *) list->addrs, sizeof(*list->addrs) * new_size);
96 list->size = new_size;
98 memcpy(list->addrs + list->used++, addr, SOCK_ADDR_LEN(addr));
114 void inet_addr_list_uniq(INET_ADDR_LIST *list)
122 qsort((void *) list->addrs, list->used,
123 sizeof(list->addrs[0]), inet_addr_list_comp);
127 * index for which list->addrs[n] == list->addrs[m].
129 for (m = n = 0; m < list->used; m++, n++) {
131 list->addrs[n] = list->addrs[m];
132 while (m + 1 < list->used
133 && inet_addr_list_comp((void *) &(list->addrs[n]),
134 (void *) &(list->addrs[m + 1])) == 0)
137 list->used = n;
141 void inet_addr_list_clean(INET_ADDR_LIST *list)
146 while (n < list->used) {
147 if (list->addrs[n].ss_family == AF_INET6 &&
148 SOCK_ADDR_IN6_PTR(&list->addrs[n])->sin6_scope_id != 0) {
149 memmove(&list->addrs[n], &list->addrs[n + 1],
150 sizeof list->addrs[0] * (list->used - n - 1));
151 --list->used;
158 /* inet_addr_list_free - destroy internet address list */
160 void inet_addr_list_free(INET_ADDR_LIST *list)
162 myfree((char *) list->addrs);
173 static void inet_addr_list_print(INET_ADDR_LIST *list)
178 for (sa = list->addrs; sa < list->addrs + list->used; sa++) {
187 INET_ADDR_LIST list;
191 inet_addr_list_init(&list);
193 if (inet_addr_host(&list, *argv) == 0)
195 msg_info("list before sort/uniq");
196 inet_addr_list_print(&list);
197 inet_addr_list_uniq(&list);
198 msg_info("list after sort/uniq");
199 inet_addr_list_print(&list);
200 inet_addr_list_free(&list);