Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

udp_benchmark can work on mac os

Abierto Apto para principiantes
#256 0 comentarios 1 reacción 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
68/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
c
Área
networking

Línea de trabajo

Comienza en bsd.c, especialmente con bsd_sendmmsg() y las definiciones de us_internal_udp_packet_buffer, y reproduce el fallo con examples/udp_benchmark en macOS. Compara las rutas APPLE y _WIN32 y verifica que el benchmark envía correctamente sin el error “Message is too long”.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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

Lenguaje dominante
C
Estrellas
1.5k
Forks
307
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de uNetworking/uSockets

Todos los issues de uNetworking/uSockets

Issues similares

Más issues de C

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.