about summary refs log tree commit diff
path: root/src/network
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2018-09-10 23:26:40 -0400
committerRich Felker <dalias@aerifal.cx>2018-09-12 14:34:33 -0400
commit13d1afa46f8098df290008c681816c9eb89ffbdb (patch)
tree01ec1581298b49f20848f9c5ce61bfa9bccd7e1a /src/network
parent8c1ac426e15b27d2879afa26a500fd80010b33b9 (diff)
downloadmusl-13d1afa46f8098df290008c681816c9eb89ffbdb.tar.gz
musl-13d1afa46f8098df290008c681816c9eb89ffbdb.tar.xz
musl-13d1afa46f8098df290008c681816c9eb89ffbdb.zip
overhaul internally-public declarations using wrapper headers
commits leading up to this one have moved the vast majority of
libc-internal interface declarations to appropriate internal headers,
allowing them to be type-checked and setting the stage to limit their
visibility. the ones that have not yet been moved are mostly
namespace-protected aliases for standard/public interfaces, which
exist to facilitate implementing plain C functions in terms of POSIX
functionality, or C or POSIX functionality in terms of extensions that
are not standardized. some don't quite fit this description, but are
"internally public" interfacs between subsystems of libc.

rather than create a number of newly-named headers to declare these
functions, and having to add explicit include directives for them to
every source file where they're needed, I have introduced a method of
wrapping the corresponding public headers.

parallel to the public headers in $(srcdir)/include, we now have
wrappers in $(srcdir)/src/include that come earlier in the include
path order. they include the public header they're wrapping, then add
declarations for namespace-protected versions of the same interfaces
and any "internally public" interfaces for the subsystem they
correspond to.

along these lines, the wrapper for features.h is now responsible for
the definition of the hidden, weak, and weak_alias macros. this means
source files will no longer need to include any special headers to
access these features.

over time, it is my expectation that the scope of what is "internally
public" will expand, reducing the number of source files which need to
include *_impl.h and related headers down to those which are actually
implementing the corresponding subsystems, not just using them.
Diffstat (limited to 'src/network')
-rw-r--r--src/network/getnameinfo.c5
-rw-r--r--src/network/inet_addr.c2
-rw-r--r--src/network/lookup_ipliteral.c2
-rw-r--r--src/network/lookup_name.c4
-rw-r--r--src/network/res_query.c3
-rw-r--r--src/network/res_send.c2
6 files changed, 2 insertions, 16 deletions
diff --git a/src/network/getnameinfo.c b/src/network/getnameinfo.c
index 79b9e6ea..84f5ed6c 100644
--- a/src/network/getnameinfo.c
+++ b/src/network/getnameinfo.c
@@ -7,13 +7,10 @@
 #include <arpa/inet.h>
 #include <net/if.h>
 #include <ctype.h>
+#include <resolv.h>
 #include "lookup.h"
 #include "stdio_impl.h"
 
-int __dn_expand(const unsigned char *, const unsigned char *, const unsigned char *, char *, int);
-int __res_mkquery(int, const char *, int, int, const unsigned char *, int, const unsigned char*, unsigned char *, int);
-int __res_send(const unsigned char *, int, unsigned char *, int);
-
 #define PTR_MAX (64 + sizeof ".in-addr.arpa")
 #define RR_PTR 12
 
diff --git a/src/network/inet_addr.c b/src/network/inet_addr.c
index 10b21f21..11ece3d6 100644
--- a/src/network/inet_addr.c
+++ b/src/network/inet_addr.c
@@ -2,8 +2,6 @@
 #include <netinet/in.h>
 #include <arpa/inet.h>
 
-int __inet_aton(const char *, struct in_addr *);
-
 in_addr_t inet_addr(const char *p)
 {
 	struct in_addr a;
diff --git a/src/network/lookup_ipliteral.c b/src/network/lookup_ipliteral.c
index 8ed14605..2fddab73 100644
--- a/src/network/lookup_ipliteral.c
+++ b/src/network/lookup_ipliteral.c
@@ -9,8 +9,6 @@
 #include <ctype.h>
 #include "lookup.h"
 
-int __inet_aton(const char *, struct in_addr *);
-
 int __lookup_ipliteral(struct address buf[static 1], const char *name, int family)
 {
 	struct in_addr a4;
diff --git a/src/network/lookup_name.c b/src/network/lookup_name.c
index 5a096ac0..c93263a9 100644
--- a/src/network/lookup_name.c
+++ b/src/network/lookup_name.c
@@ -10,6 +10,7 @@
 #include <unistd.h>
 #include <pthread.h>
 #include <errno.h>
+#include <resolv.h>
 #include "lookup.h"
 #include "stdio_impl.h"
 #include "syscall.h"
@@ -98,9 +99,6 @@ struct dpc_ctx {
 	int cnt;
 };
 
-int __dn_expand(const unsigned char *, const unsigned char *, const unsigned char *, char *, int);
-int __res_mkquery(int, const char *, int, int, const unsigned char *, int, const unsigned char*, unsigned char *, int);
-
 #define RR_A 1
 #define RR_CNAME 5
 #define RR_AAAA 28
diff --git a/src/network/res_query.c b/src/network/res_query.c
index 2b4e4bb1..691ccb16 100644
--- a/src/network/res_query.c
+++ b/src/network/res_query.c
@@ -2,9 +2,6 @@
 #include <netdb.h>
 #include "libc.h"
 
-int __res_mkquery(int, const char *, int, int, const unsigned char *, int, const unsigned char*, unsigned char *, int);
-int __res_send(const unsigned char *, int, unsigned char *, int);
-
 int __res_query(const char *name, int class, int type, unsigned char *dest, int len)
 {
 	unsigned char q[280];
diff --git a/src/network/res_send.c b/src/network/res_send.c
index 19cfe0f6..6facc1bd 100644
--- a/src/network/res_send.c
+++ b/src/network/res_send.c
@@ -1,8 +1,6 @@
 #include <resolv.h>
 #include "libc.h"
 
-int __res_msend(int, const unsigned char *const *, const int *, unsigned char *const *, int *, int);
-
 int __res_send(const unsigned char *msg, int msglen, unsigned char *answer, int anslen)
 {
 	int r = __res_msend(1, &msg, &msglen, &answer, &anslen, anslen);