I am using mac 12.7.6, after make examples, udp_benchmark cant work,
line 143: int sent = us_udp_socket_send(client, send_buf, 40);
return -1, the error code is 'Message is too long'
in bsd.c bsd_sendmmsg() the macro
#if defined(APPLE) seems wrong , i changed to #if 0 and changed line 81 to : #elif defined(_WIN32) || defined(APPLE), it works.
struct us_internal_udp_packet_buffer:
struct us_internal_udp_packet_buffer {
#if defined(_WIN32) || defined(APPLE)
char *buf[LIBUS_UDP_MAX_NUM];
size_t len[LIBUS_UDP_MAX_NUM];
struct sockaddr_storage addr[LIBUS_UDP_MAX_NUM];
#else
struct mmsghdr msgvec[LIBUS_UDP_MAX_NUM];
struct iovec iov[LIBUS_UDP_MAX_NUM];
struct sockaddr_storage addr[LIBUS_UDP_MAX_NUM];
char control[LIBUS_UDP_MAX_NUM][256];
#endif
};
for mac, should not use sendmsg
I am using mac 12.7.6, after make examples, udp_benchmark cant work,
line 143: int sent = us_udp_socket_send(client, send_buf, 40);
return -1, the error code is 'Message is too long'
in bsd.c bsd_sendmmsg() the macro
#if defined(APPLE) seems wrong , i changed to #if 0 and changed line 81 to : #elif defined(_WIN32) || defined(APPLE), it works.
struct us_internal_udp_packet_buffer:
struct us_internal_udp_packet_buffer {
#if defined(_WIN32) || defined(APPLE)
char *buf[LIBUS_UDP_MAX_NUM];
size_t len[LIBUS_UDP_MAX_NUM];
struct sockaddr_storage addr[LIBUS_UDP_MAX_NUM];
#else
struct mmsghdr msgvec[LIBUS_UDP_MAX_NUM];
struct iovec iov[LIBUS_UDP_MAX_NUM];
struct sockaddr_storage addr[LIBUS_UDP_MAX_NUM];
char control[LIBUS_UDP_MAX_NUM][256];
#endif
};
for mac, should not use sendmsg