Remove dependency on libws2_32 on Windows build
This commit is contained in:
parent
6f58434d89
commit
6133110386
14
configure.ac
14
configure.ac
|
@ -508,13 +508,6 @@ AC_CHECK_HEADERS([ \
|
||||||
unistd.h \
|
unistd.h \
|
||||||
])
|
])
|
||||||
|
|
||||||
case "${host}" in
|
|
||||||
*mingw*)
|
|
||||||
# For ntohl, ntohs in Windows
|
|
||||||
AC_CHECK_HEADERS([winsock2.h])
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# Checks for typedefs, structures, and compiler characteristics.
|
# Checks for typedefs, structures, and compiler characteristics.
|
||||||
AC_TYPE_SIZE_T
|
AC_TYPE_SIZE_T
|
||||||
AC_TYPE_SSIZE_T
|
AC_TYPE_SSIZE_T
|
||||||
|
@ -564,13 +557,6 @@ AM_CONDITIONAL([ENABLE_TINY_NGHTTPD],
|
||||||
[ test "x${have_epoll}" = "xyes" &&
|
[ test "x${have_epoll}" = "xyes" &&
|
||||||
test "x${have_timerfd_create}" = "xyes"])
|
test "x${have_timerfd_create}" = "xyes"])
|
||||||
|
|
||||||
dnl Windows library for winsock2
|
|
||||||
case "${host}" in
|
|
||||||
*mingw*)
|
|
||||||
LIBS="$LIBS -lws2_32"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
ac_save_CFLAGS=$CFLAGS
|
ac_save_CFLAGS=$CFLAGS
|
||||||
CFLAGS=
|
CFLAGS=
|
||||||
|
|
||||||
|
|
|
@ -37,8 +37,49 @@
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
#endif /* HAVE_NETINET_IN_H */
|
#endif /* HAVE_NETINET_IN_H */
|
||||||
|
|
||||||
#ifdef HAVE_WINSOCK2_H
|
#include <nghttp2/nghttp2.h>
|
||||||
#include <winsock2.h>
|
|
||||||
#endif /* HAVE_WINSOCK2_H */
|
#if defined(WIN32)
|
||||||
|
/* Windows requires ws2_32 library for ntonl family functions. We
|
||||||
|
define inline functions for those function so that we don't have
|
||||||
|
dependeny on that lib. */
|
||||||
|
|
||||||
|
static inline uint32_t htonl(uint32_t hostlong) {
|
||||||
|
uint32_t res;
|
||||||
|
unsigned char *p = (unsigned char *)&res;
|
||||||
|
*p++ = hostlong >> 24;
|
||||||
|
*p++ = (hostlong >> 16) & 0xffu;
|
||||||
|
*p++ = (hostlong >> 8) & 0xffu;
|
||||||
|
*p = hostlong & 0xffu;
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline uint16_t htons(uint16_t hostshort) {
|
||||||
|
uint16_t res;
|
||||||
|
unsigned char *p = (unsigned char *)&res;
|
||||||
|
*p++ = hostshort >> 8;
|
||||||
|
*p = hostshort & 0xffu;
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline uint32_t ntohl(uint32_t netlong) {
|
||||||
|
uint32_t res;
|
||||||
|
unsigned char *p = (unsigned char *)&netlong;
|
||||||
|
res = *p++ << 24;
|
||||||
|
res += *p++ << 16;
|
||||||
|
res += *p++ << 8;
|
||||||
|
res += *p;
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline uint16_t ntohs(uint16_t netshort) {
|
||||||
|
uint16_t res;
|
||||||
|
unsigned char *p = (unsigned char *)&netshort;
|
||||||
|
res = *p++ << 8;
|
||||||
|
res += *p;
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* WIN32 */
|
||||||
|
|
||||||
#endif /* NGHTTP2_NET_H */
|
#endif /* NGHTTP2_NET_H */
|
||||||
|
|
Loading…
Reference in New Issue