Postfix3.3.1
wildcard_inet_addr.c
[詳解]
1 /*++
2 /* NAME
3 /* wildcard_inet_addr 3
4 /* SUMMARY
5 /* expand wild-card address
6 /* SYNOPSIS
7 /* #include <wildcard_inet_addr.h>
8 /*
9 /* INET_ADDR_LIST *wildcard_inet_addr(void)
10 /* DESCRIPTION
11 /* wildcard_inet_addr() determines all wild-card addresses
12 /* for all supported address families.
13 /* DIAGNOSTICS
14 /* Fatal errors: out of memory.
15 /* SEE ALSO
16 /* inet_addr_list(3) address list management
17 /* LICENSE
18 /* .ad
19 /* .fi
20 /* The Secure Mailer license must be distributed with this software.
21 /* AUTHOR(S)
22 /* Wietse Venema
23 /* IBM T.J. Watson Research
24 /* P.O. Box 704
25 /* Yorktown Heights, NY 10598, USA
26 /*
27 /* Dean C. Strik
28 /* Department ICT
29 /* Eindhoven University of Technology
30 /* P.O. Box 513
31 /* 5600 MB Eindhoven, Netherlands
32 /* E-mail: <dean@ipnet6.org>
33 /*--*/
34 
35 /* System library. */
36 
37 #include <sys_defs.h>
38 
39 /* Utility library. */
40 
41 #include <msg.h>
42 #include <inet_addr_list.h>
43 #include <inet_addr_host.h>
44 
45 /* Global library. */
46 
47 #include <wildcard_inet_addr.h>
48 
49 /* Application-specific. */
50 
51 static INET_ADDR_LIST wild_addr_list;
52 
53 static void wildcard_inet_addr_init(INET_ADDR_LIST *addr_list)
54 {
55  inet_addr_list_init(addr_list);
56  if (inet_addr_host(addr_list, "") == 0)
57  msg_fatal("could not get list of wildcard addresses");
58 }
59 
60 /* wildcard_inet_addr_list - return list of addresses */
61 
63 {
64  if (wild_addr_list.used == 0)
65  wildcard_inet_addr_init(&wild_addr_list);
66 
67  return (&wild_addr_list);
68 }
INET_ADDR_LIST * wildcard_inet_addr_list(void)
void inet_addr_list_init(INET_ADDR_LIST *list)
NORETURN msg_fatal(const char *fmt,...)
Definition: msg.c:249
int inet_addr_host(INET_ADDR_LIST *addr_list, const char *hostname)