about summary refs log tree commit diff
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)
downloadglibc-77dd4c3be8d3acd04190ad54a4585ef2d4108ba2.tar.gz
glibc-77dd4c3be8d3acd04190ad54a4585ef2d4108ba2.tar.xz
glibc-77dd4c3be8d3acd04190ad54a4585ef2d4108ba2.zip
* 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);