view src/os/win32/ngx_time.h @ 9208:2ed3f57dca0a

QUIC: fixed unsent MTU probe acknowledgement. Previously if an MTU probe send failed early in ngx_quic_frame_sendto() due to allocation error or congestion control, the application level packet number was not increased, but was still saved as MTU probe packet number. Later when a packet with this number was acknowledged, the unsent MTU probe was acknowledged as well. This could result in discovering a bigger MTU than supported by the path, which could lead to EMSGSIZE (Message too long) errors while sending further packets. The problem existed since PMTUD was introduced in 58afcd72446f (1.25.2). Back then only the unlikely memory allocation error could trigger it. However in efcdaa66df2e congestion control was added to ngx_quic_frame_sendto() which can now trigger the issue with a higher probability.
author Roman Arutyunyan <arut@nginx.com>
date Wed, 14 Feb 2024 16:56:28 +0400
parents d620f497c50f
children
line wrap: on
line source


/*
 * Copyright (C) Igor Sysoev
 * Copyright (C) Nginx, Inc.
 */


#ifndef _NGX_TIME_H_INCLUDED_
#define _NGX_TIME_H_INCLUDED_


#include <ngx_config.h>
#include <ngx_core.h>


typedef ngx_rbtree_key_t      ngx_msec_t;
typedef ngx_rbtree_key_int_t  ngx_msec_int_t;

typedef SYSTEMTIME            ngx_tm_t;
typedef FILETIME              ngx_mtime_t;

#define ngx_tm_sec            wSecond
#define ngx_tm_min            wMinute
#define ngx_tm_hour           wHour
#define ngx_tm_mday           wDay
#define ngx_tm_mon            wMonth
#define ngx_tm_year           wYear
#define ngx_tm_wday           wDayOfWeek

#define ngx_tm_sec_t          u_short
#define ngx_tm_min_t          u_short
#define ngx_tm_hour_t         u_short
#define ngx_tm_mday_t         u_short
#define ngx_tm_mon_t          u_short
#define ngx_tm_year_t         u_short
#define ngx_tm_wday_t         u_short


#define ngx_msleep            Sleep

#define NGX_HAVE_GETTIMEZONE  1

#define  ngx_timezone_update()

ngx_int_t ngx_gettimezone(void);
void ngx_libc_localtime(time_t s, struct tm *tm);
void ngx_libc_gmtime(time_t s, struct tm *tm);
void ngx_gettimeofday(struct timeval *tp);


#endif /* _NGX_TIME_H_INCLUDED_ */