summaryrefslogtreecommitdiff
path: root/posix
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2006-05-04 06:38:07 +0000
committerUlrich Drepper <drepper@redhat.com>2006-05-04 06:38:07 +0000
commit77dd4c3be8d3acd04190ad54a4585ef2d4108ba2 (patch)
treeb0be03383534addc39fee4f9eabcee4671643fb5 /posix
parent5631e740ff086e9c978e817509bee9d73bceeff3 (diff)
* sysdeps/posix/getaddrinfo.c: Implement configuration file
handling. /etc/gai.conf can contain replacements for the label and precedence table. Fix byte order of default label and precedence table. * posix/gai.conf: New file. * posix/tst-rfc3484.c: Adjust for changes to getaddrinfo.c. * posix/tst-rfc3484-2.c: Likewise.
Diffstat (limited to 'posix')
-rw-r--r--posix/gai.conf40
-rw-r--r--posix/tst-rfc3484-2.c12
-rw-r--r--posix/tst-rfc3484.c12
3 files changed, 64 insertions, 0 deletions
diff --git a/posix/gai.conf b/posix/gai.conf
new file mode 100644
index 0000000000..5f063f5c3c
--- /dev/null
+++ b/posix/gai.conf
@@ -0,0 +1,40 @@
+# Configuration for getaddrinfo(3).
+#
+# So far only configuration for the destination address sorting is needed.
+# RFC 3484 governs the sorting. But the RFC also says that system
+# administrators should be able to overwrite the defaults. This can be
+# achieved here.
+#
+# All lines have an initial identifier specifying the option followed by
+# up to two values. Information specified in this file replaces the
+# default information. Complete absence of data of one kind causes the
+# appropriate default information to be used. The supported commands include:
+#
+# reload <yes|no>
+# If set to yes, each getaddrinfo(3) call will check whether this file
+# changed and if necessary reload. This option should not really be
+# used. There are possible runtime problems. The default is no.
+#
+# label <mask> <value>
+# Add another rule to the RFC 3484 label table. See section 2.1 in
+# RFC 3484. The default is:
+#
+#label ::1/128 0
+#label ::/0 1
+#label 2002::/16 2
+#label ::/96 3
+#label ::ffff:0:0/96 4
+#
+# precedence <mask> <value>
+# Add another rule the to RFC 3484 precendence table. See section 2.1
+# and 10.3 in RFC 3484. The default is:
+#
+#precendence ::1/128 50
+#precendence ::/0 40
+#precendence 2002::/16 30
+#precendence ::/96 20
+#precendence ::ffff:0:0/96 10
+#
+# For sites which prefer IPv4 connections change the last line to
+#
+#precendence ::ffff:0:0/96 100
diff --git a/posix/tst-rfc3484-2.c b/posix/tst-rfc3484-2.c
index c25b0c2172..2536da8f87 100644
--- a/posix/tst-rfc3484-2.c
+++ b/posix/tst-rfc3484-2.c
@@ -45,9 +45,21 @@ service_user *__nss_hosts_database attribute_hidden;
#endif
+ssize_t
+__getline (char **lineptr, size_t *n, FILE *s)
+{
+ *lineptr = NULL;
+ *n = 0;
+ return 0;
+}
+
+
static int
do_test (void)
{
+ labels = default_labels;
+ precedence = default_precedence;
+
struct sockaddr_in so1;
so1.sin_family = AF_INET;
so1.sin_addr.s_addr = h (0xc0a85f19);
diff --git a/posix/tst-rfc3484.c b/posix/tst-rfc3484.c
index 8d273aec84..2e74e9737f 100644
--- a/posix/tst-rfc3484.c
+++ b/posix/tst-rfc3484.c
@@ -64,9 +64,21 @@ static int expected[naddrs] =
};
+ssize_t
+__getline (char **lineptr, size_t *n, FILE *s)
+{
+ *lineptr = NULL;
+ *n = 0;
+ return 0;
+}
+
+
static int
do_test (void)
{
+ labels = default_labels;
+ precedence = default_precedence;
+
struct sockaddr_in so;
so.sin_family = AF_INET;
so.sin_addr.s_addr = h (0xc0a85f19);