| Since the comment may be resolved during the upstreaming, I have left the Reviewed By here.  Reviewed-by: Vlad-Andrei Badoiu <vlad_andrei.badoiu@xxxxxxxxxxxxxxx>
 
 
 
 -------- Original message -------- From: "Vlad-Andrei BĂDOIU (78692)" <vlad_andrei.badoiu@xxxxxxxxxxxxxxx>  Date: 9/9/19 17:52 (GMT+02:00)  To: Costin Lupu <costin.lupu@xxxxxxxxx>, minios-devel@xxxxxxxxxxxxx  Cc: felipe.huici@xxxxxxxxx, simon.kuenzer@xxxxxxxxx  Subject: Re: [Minios-devel] [UNIKRAFT/LWIP PATCH 1/5] Revisit netdb.h declarations
 
 
Hey Costin, I have one small comment inline. Thanks, Vlad
 On 04.09.2019 22:09, Costin Lupu wrote:
 
* As we did in commit b0dc593d, we use function wrappers instead of macros for
gethostbyname() and gethostbyname_r()
* Add missing declarations of functions implemented or stubbed in glue code
Signed-off-by: Costin Lupu <costin.lupu@xxxxxxxxx>
---
 exportsyms.uk   |  1 +
 host.c          | 19 +++++++++++++++++++
 include/netdb.h | 23 ++++++++++++++++++-----
 3 files changed, 38 insertions(+), 5 deletions(-)
diff --git a/exportsyms.uk b/exportsyms.uk
index 6fe95ec..1ca43f8 100644
--- a/exportsyms.uk
+++ b/exportsyms.uk
@@ -7,6 +7,7 @@ freeaddrinfo
 gai_strerror
 getaddrinfo
 gethostbyaddr
+gethostbyname Shouldn't we also export the gethostbyname_r symbol?
 getnameinfo
 getpeername
 getprotobyname
diff --git a/host.c b/host.c
index 559d186..9c4c8ea 100644
--- a/host.c
+++ b/host.c
@@ -33,10 +33,29 @@
 
 #include <unistd.h>
 #include <sys/socket.h>
+#include <netdb.h>
+
+
+#if LWIP_DNS && LWIP_SOCKET
+
+#if !(LWIP_COMPAT_SOCKETS)
+struct hostent *gethostbyname(const char *name)
+{
+	return lwip_gethostbyname(name);
+}
+
+int gethostbyname_r(const char *name,
+		struct hostent *ret, char *buf, size_t buflen,
+		struct hostent **result, int *h_errnop)
+{
+	return lwip_gethostbyname_r(name, ret, buf, buflen, result, h_errnop);
+}
+#endif
 
 struct hostent *gethostbyaddr(const void *addr __unused,
 	socklen_t len __unused, int type __unused)
 {
 	return NULL;
 }
+#endif
 
diff --git a/include/netdb.h b/include/netdb.h
index 0856a49..b100136 100644
--- a/include/netdb.h
+++ b/include/netdb.h
@@ -1,10 +1,16 @@
 #include <compat/posix/netdb.h>
 
-#if LWIP_DNS && LWIP_SOCKET && !(LWIP_COMPAT_SOCKETS)
+#if LWIP_DNS && LWIP_SOCKET
 
-#define gethostbyname(name) lwip_gethostbyname(name)
-#define gethostbyname_r(name, ret, buf, buflen, result, h_errnop) \
-		lwip_gethostbyname_r(name, ret, buf, buflen, result, h_errnop)
+#if !(LWIP_COMPAT_SOCKETS)
+struct hostent *gethostbyname(const char *name);
+int gethostbyname_r(const char *name,
+		struct hostent *ret, char *buf, size_t buflen,
+		struct hostent **result, int *h_errnop);
+#endif
+
+struct hostent *gethostbyaddr(const void *addr __unused,
+		socklen_t len __unused, int type __unused);
 
 int getaddrinfo(const char *node, const char *service,
 		const struct addrinfo *hints,
@@ -13,6 +19,9 @@ void freeaddrinfo(struct addrinfo *res);
 
 #endif /* LWIP_DNS && LWIP_SOCKET && !(LWIP_COMPAT_SOCKETS) */
 
+const char *gai_strerror(int errcode);
+
+
 struct servent {
 	char    *s_name;        /* official service name */
 	char    **s_aliases;    /* alias list */
@@ -26,7 +35,11 @@ struct protoent {
 	int     p_proto;        /* protocol # */
 };
 
-const char *gai_strerror(int errcode);
+struct protoent *getprotoent(void);
+struct protoent *getprotobyname(const char *name);
+struct protoent *getprotobynumber(int num);
+void endprotoent(void);
+void setprotoent(int stayopen);
 
 /*
  * Constants for getnameinfo()
 |