mirror of
https://codeberg.org/scip/pcp.git
synced 2025-12-17 20:00:58 +01:00
portability fixes (compiles under macosx 5.8 as well, probably on newer ones as well)
This commit is contained in:
@@ -62,6 +62,7 @@ AC_TYPE_SIZE_T
|
|||||||
# Checks for library functions.
|
# Checks for library functions.
|
||||||
AC_CHECK_FUNCS( \
|
AC_CHECK_FUNCS( \
|
||||||
arc4random_buf \
|
arc4random_buf \
|
||||||
|
arc4random \
|
||||||
fread \
|
fread \
|
||||||
fopen \
|
fopen \
|
||||||
free \
|
free \
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
/* include/pcp/config.h.in. Generated from configure.ac by autoheader. */
|
/* include/pcp/config.h.in. Generated from configure.ac by autoheader. */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `arc4random' function. */
|
||||||
|
#undef HAVE_ARC4RANDOM
|
||||||
|
|
||||||
/* Define to 1 if you have the `arc4random_buf' function. */
|
/* Define to 1 if you have the `arc4random_buf' function. */
|
||||||
#undef HAVE_ARC4RANDOM_BUF
|
#undef HAVE_ARC4RANDOM_BUF
|
||||||
|
|
||||||
|
|||||||
@@ -33,11 +33,14 @@
|
|||||||
# include <sys/endian.h>
|
# include <sys/endian.h>
|
||||||
# ifndef HAVE_BE32TOH
|
# ifndef HAVE_BE32TOH
|
||||||
# /* openbsd, use aliases */
|
# /* openbsd, use aliases */
|
||||||
|
# define be16toh betoh16
|
||||||
# define be32toh betoh32
|
# define be32toh betoh32
|
||||||
# define be64toh betoh64
|
# define be64toh betoh64
|
||||||
# endif
|
# endif
|
||||||
# else /* no sys/endian.h */
|
# else /* no sys/endian.h */
|
||||||
# ifdef __CPU_IS_BIG_ENDIAN
|
# ifdef __CPU_IS_BIG_ENDIAN
|
||||||
|
# define be16toh(x) (x)
|
||||||
|
# define htobe16(x) (x)
|
||||||
# define be32toh(x) (x)
|
# define be32toh(x) (x)
|
||||||
# define htobe32(x) (x)
|
# define htobe32(x) (x)
|
||||||
# define be64toh(x) (x)
|
# define be64toh(x) (x)
|
||||||
@@ -52,6 +55,8 @@
|
|||||||
# error Need either netinet/in.h or arpa/inet.h for ntohl() and htonl()
|
# error Need either netinet/in.h or arpa/inet.h for ntohl() and htonl()
|
||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
|
# define be16toh(x) ((u_int16_t)ntohl((u_int16_t)(x)))
|
||||||
|
# define htobe16(x) ((u_int16_t)htonl((u_int16_t)(x)))
|
||||||
# define be32toh(x) ((u_int32_t)ntohl((u_int32_t)(x)))
|
# define be32toh(x) ((u_int32_t)ntohl((u_int32_t)(x)))
|
||||||
# define htobe32(x) ((u_int32_t)htonl((u_int32_t)(x)))
|
# define htobe32(x) ((u_int32_t)htonl((u_int32_t)(x)))
|
||||||
# define be64toh(x) ((u_int64_t)ntohl((u_int64_t)(x)))
|
# define be64toh(x) ((u_int64_t)ntohl((u_int64_t)(x)))
|
||||||
@@ -61,20 +66,18 @@
|
|||||||
#endif /* HAVE_ENDIAN_H */
|
#endif /* HAVE_ENDIAN_H */
|
||||||
|
|
||||||
|
|
||||||
#ifndef HAVE_ARC4RANDOM_BUF
|
#ifndef HAVE_ARC4RANDOM
|
||||||
/* shitty OS. we're using libsodium's implementation */
|
|
||||||
|
|
||||||
#include <sodium.h>
|
#include <sodium.h>
|
||||||
|
|
||||||
static inline u_int32_t arc4random() {
|
static inline u_int32_t arc4random() {
|
||||||
return randombytes_random();
|
return randombytes_random();
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef HAVE_ARC4RANDOM_BUF
|
||||||
|
#include <sodium.h>
|
||||||
static inline void arc4random_buf(void *buf, size_t nbytes) {
|
static inline void arc4random_buf(void *buf, size_t nbytes) {
|
||||||
randombytes((unsigned char*)buf, nbytes);
|
randombytes((unsigned char*)buf, nbytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
@@ -140,6 +143,19 @@ int vasprintf(char **ret, const char *format, va_list args) {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef HAVE_STRNLEN
|
||||||
|
static inline size_t
|
||||||
|
strnlen(const char *msg, size_t maxlen)
|
||||||
|
{
|
||||||
|
size_t i;
|
||||||
|
|
||||||
|
for (i=0; i<maxlen; i++)
|
||||||
|
if (msg[i] == '\0')
|
||||||
|
break;
|
||||||
|
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* !_HAVE_PCP_PLATFORM_H */
|
#endif /* !_HAVE_PCP_PLATFORM_H */
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user