Publicados los paquetes RPM y DEB de nghttp2 1.71.0

nghttp2 1.71.0 ha sido añadido al repositorio de CodeIT. Los paquetes se han compilado para RHEL, CentOS, AlmaLinux, Rocky Linux y Oracle Linux 7, 8, 9 y 10, y para Ubuntu 22.04 y 24.04.

Cambios principales:

  • Se tienen en cuenta las streams inactivas
  • Añadida la opción para limitar el tamaño máximo de la cola de salida
  • Revertido “Take into account idle streams”
  • build(deps): actualizado actions/stale de 10 a 11
  • util: añadido include <fstream>
  • Añadida la comprobación de longitud para CONTINUATION
  • nghttpx: comprobada la versión QUIC
  • build(deps): actualizado golang.org/x/net de 0.57.0 a 0.58.0
  • Gha: actualizado ubuntu
  • Aserciones cxx de Munit
  • Actualizado go a 1.26
  • build(deps): actualizado github.com/quic-go/quic-go de 0.61.0 a 0.62.0
  • nghttpx: refactorizado Router
  • nghttpx: validación del certificado TLS del cliente basada en RFC 9525
  • nghttpx: reescrito CertLookupTree basándose en las reglas de RFC 9525
  • lib: HEADERS y PUSH_PROMISE no se permiten en un stream CONNECT
  • Actualizado clang-format a 21
  • nghttpx: eliminado el push del servidor
  • Actualizado neverbleed
  • GHA: actualizado clang a 21
  • Actualizado ubuntu
  • GHA: se usa OpenSSL empaquetado
  • GHA: reducidos los trabajos de openssl1
  • GHA: eliminada la compilación de cygwin porque dejó de funcionar
  • GHA: reducidos los trabajos de cmake y macos
  • build(deps): actualizado golang.org/x/net de 0.58.0 a 0.59.0
  • build(deps): actualizado github.com/quic-go/quic-go de 0.62.0 a 0.63.0
  • nghttpx: corregido el fallo por el que GSO en la conexión QUIC quedaba deshabilitado
  • bpf: evitados los límites de instrucciones del verifier
  • Actualizada la documentación
  • build(deps): actualizado golang.org/x/net de 0.59.0 a 0.61.0
  • GHA: se usa aws-lc en lugar de openssl para la compilación de macos
  • build(deps): actualizado github.com/quic-go/quic-go de 0.63.0 a 0.64.0
  • Gestionado el tamaño de ventana demasiado grande al consumir datos
  • Corregido el desbordamiento de entero con signo en nghttp2_session_get_stream_local_window_size
  • nghttp2_nv_array_copy: detectado desbordamiento de size_t
  • Mejor hash para map
  • Añadidos los archivos de oss-scanner
  • Eliminado el archivo LICENSE
  • build(deps): actualizado github.com/quic-go/quic-go de 0.64.0 a 0.64.1
  • Corregida la actualización de prioridad
  • Simplificada la inserción en map
  • Actualizadas las dependencias
  • Actualizada la ventana por adelantado
  • Eliminado el texto público del servidor
  • GHA: eliminado macos-15
  • Actualizados ngtcp2 y nghttp3

Publicados los paquetes RPM y DEB de ngtcp2 1.26.0

ngtcp2 1.26.0 ha sido añadido al repositorio de CodeIT. Los paquetes se han compilado para RHEL, CentOS, AlmaLinux, Rocky Linux y Oracle Linux 7, 8, 9 y 10, y para Ubuntu 22.04 y 24.04.

Cambios principales:

  • doc: Añadidos pseudocódigo y documentación para escribir paquetes con GSO
  • build(deps): actualizado actions/stale de 10 a 11
  • Limpieza
  • No se cierra ningún stream solo porque se reciba STOP_SENDING
  • Reestructurado conn
  • Endurecida la comprobación de la longitud de paquete con cabecera larga para la plataforma de 32 bits
  • map: eliminado la clave si el redimensionado de la tabla falla
  • examples/server: comprobada la versión QUIC
  • Añadida callback para extendmaxdata
  • Actualizadas las pruebas de callback
  • No se retira el fallback DCID si todavía se usa
  • Corregida la función de incremento de CWND en CUBIC
  • Se llama a extend_max_data al completarse el handshake
  • Se devuelve el error STREAM_LIMIT si el límite se viola por STREAMS_BLOCKED
  • Añadido ngtcp2_conn_tx_strmq_push_if_not
  • Se envían STREAM_DATA_BLOCKED/DATA_BLOCKED cuando los datos están realmente bloqueados
  • Actualizada la documentación
  • Simplificado ngtcp2_conn_write_stream
  • Reelaborada la validación entrante de NEW_CONNECTION_ID
  • Añadida la aserción de que ngtcp2_conn_tls_early_data_rejected solo se llama desde el cliente
  • Se devuelve NGTCP2_ERR_STREAM_STATE para RESET_STREAM contra un uni stream local
  • Eliminado el código que maneja el caso que es demasiado grande para un datagram UDP
  • Renombrado offset en ngtcp2_data_blocked y ngtcp2_stream_data_blocked
  • Añadidas pruebas de decodificación de transport parameters
  • Añadidas más pruebas de decodificación de transport parameters
  • Añadida prueba wf
  • Añadida prueba para reenviar NEW_TOKEN
  • Prueba Rtb
  • Simplificada la prueba conn
  • GHA: actualizado Ubuntu a 26.04
  • En examples, reescritas las pruebas con nuevas aserciones munit cxx
  • Actualizado clang-format a 21
  • GHA: actualizado clang a 21
  • Usado ossl empaquetado
  • GHA: reducidos los trabajos openssl1/3
  • GHA: reducidos los trabajos cmake
  • GHA: corregido el runner de quic interop
  • Ajustado el valor máximo de ngtcp2_ratelim.burst
  • Corregido el pacing gain de slow start
  • Restablecido max UDP payload size cuando cambia la IP address del peer
  • Comprobado el nivel de cifrado de picotls
  • Comprobado el nivel de cifrado de ossl
  • Server debería enviar CONNECTION_CLOSE en un nivel anterior
  • GHA: usado libressl para la compilación en macos
  • Añadidos archivos de oss-scanner
  • examples/client: corregido el div by zero
  • examples/server: no se truncan los tamaños de archivo en objetivos de 32 bits
  • Limitada la longitud de token
  • Añadido filtro de STREAM frame de longitud 0 a rtb_reclaim_on_retry
  • Corregido el marcador del número máximo de paquete descifrable antes de la primera descifración
  • Penalizada la escritura corta de stream data
  • Optimizando ngtcp2_rtb_reclaim_on_pto
  • ngtcp2_conn_write_aggregate_pkt2: comprobado el path para finalizar la agregación
  • Actualizado libressl a v4.4.0
  • send_quantum debe ser al menos un solo MTU
  • Usado validated_path antes de que desaparezca
  • Cierre correcto de la connection cuando se instala la clave 1 RTT más de una vez
  • El paquete 0RTT se procesa solo después de que estén disponibles las claves 0RTT y 1RTT
  • Se limita PATH_RESPONSE del cliente a la ruta no validada
  • Se verifica explícitamente el tiempo de espera de la validación de la ruta
  • Se hace que PATH_RESPONSE provoque PTO
  • Se recupera la ventana de control de flujo a nivel de conexión en el cierre de stream para RESET_STREAM
  • Se refina la detección del umbral de fragmentación de ngtcp2_rob
  • Se maneja el HANDSHAKE_DONE temprano del servidor
  • Se mejora el hash de map
  • Se rearma el temporizador de pérdida después de que se cancele por el límite de anti-amplification
  • Se gestiona correctamente el caso en que el cliente migra de vuelta a la ruta original
  • pv round no se inicia si no se envía ningún PATH_CHALLENGE
  • ngtcp2_pkt_decode_version_cid devuelve error con entrada cero
  • Se mantiene el estado de congestión si no se ha entregado nada
  • Se maneja un TLS stack que no sale sin transport params
  • Se corrige la decodificación del número de paquete
  • Se maneja el error de límite de Connection ID
  • Se rechaza ACK que reconoce un paquete enviado más tarde
  • Se elimina el rechazo de handshake address porque no es fiable
  • Se restablece el estado pendiente de ppe sin el flag WRITE_MORE establecido
  • Se maneja el apagado de stream en el callback stop_sending
  • Se revierte “Stop buffering data after shutting downstream read”
  • Se evita que un DCID usado pase a retired
  • Se evita que un DCID abandonado quede varado
  • Se devuelve un error cuando ngtcp2_conn_initiate_key_update se llama durante handshake
  • Se evita la reutilización de DCID
  • Se deriva la clave inicial antes de que se negocie la versión
  • Se evita que un DCID usado pase a retired de otra manera
  • No se llama al callback dcid_status hasta que se complete el handshake
  • Se revierte “Make sure that NGTCP2_CONN_FLAG_PPE_PENDING is not leaked”
  • No se bloquea PATH_RESPONSE por falta de DCID y credit
  • Se restablecen las variables de deshacer de CUBIC una vez que se confirma una pérdida
  • Se corrige conn_shutdown_stream_read
  • Se ajusta la confirmación de actualización de claves
  • Se corrige una fuga de memoria
  • Se cuentan los fallos de descifrado para las claves Handshake y 0RTT
  • examples/server Se corrige una fuga de handler
  • Se instala la preferred address antes de leer paquetes 0.5RTT del servidor
  • Se garantiza que al menos 1 byte de frame se asigne al codificar
  • Un STREAM frame vacío se contabiliza en el contador de glitch
  • No se borra el flag PTO eliciting
  • Se corrige el error por el que no se llama a lost_datagram
  • crypto/ossl: Se protege tx_level también de 0RTT
  • hqclient: Se eliminan streams al cerrar
  • Se corrige que 0RTT key no se descarte con callback
  • Se envían los control frames en 0RTT
  • Se revierte “Count empty STREAM frame toward glitch counter”
  • Se corrige un qlog inválido con un paquete que solo contiene PADDING
  • Se maneja la falta de memoria después de obtener Connection ID
  • Se elimina el problemático glitch counter para algunos frame
  • Se escribe el umbral de stream data
  • Se corrige ngtcp2_vec_merge
  • Se detiene la validación de la ruta de antemano
  • Se simplifica la inserción en map
  • Se actualizan las dependencias de tls
  • Se corrigen desbordamientos de heap cuando malloc solo está alineado a 4 bytes (como en ESP32)
  • examples: Se maneja el fallo de if_indextoname
  • GHA: Se elimina macos-15

La pila de bibliotecas ngtcp2 está compilada con OpenSSL 4.0.3, y el cliente QUIC se llama osslclient.

Publicados los paquetes RPM y DEB de nghttp3 1.19.0

nghttp3 1.19.0 ha sido añadido al repositorio de CodeIT. Los paquetes se han compilado para RHEL, CentOS, AlmaLinux, Rocky Linux y Oracle Linux 7, 8, 9 y 10, y para Ubuntu 22.04 y 24.04.

Cambios principales:

  • build(deps): actualizado actions/stale de 10 a 11
  • Ampliado el mínimo de bytes no enviados en previsión de QMux
  • map: eliminado la clave si falla el cambio de tamaño de la tabla
  • Correcciones sugeridas
  • fuzz: corregido un fallo de ASAN
  • fuzz: actualizado con funciones de C++23
  • GHA: compilados los fuzzers
  • fuzz: corregida la compilación en docker
  • Verificado el control stream
  • clang-format actualizado a 21
  • tests: añadidas más pruebas para trailers en CONNECT stream
  • GHA: ubuntu actualizado a 26.04
  • Portados los cambios de ngtcp2_ratelim
  • Limpio el ramificado de opcode en QPACK
  • Comprobado el tamaño del campo priority y aplicado pronto el límite de buffer
  • Copia de Nva
  • Mejorado el hash de map
  • Simplificada la inserción en map
  • Corregido el alineamiento de balloc
  • nghttp3_buf: inicializado con Designated Initializers
  • GHA: eliminado macos-15