view src/event/ngx_event_udp.h @ 9328:48f30a3add51

MIME: updated type for js files to text/javascript. RFC 9239 changed recommended media type to text/javascript, and made application/javascript deprecated. According to httparchive.org data, as of 2023-01-01 javascript files are returned with the following types (type, total pages using the type, total requests with the type): application/javascript,11686643,218376911 text/javascript,9623206,76111177 application/x-javascript,4874976,28554156 The same data as of 2024-01-01: application/javascript,10563307,205156998 text/javascript,8429652,78523734 application/x-javascript,4197414,26277166 And as of 2024-08-01: application/javascript,10945376,216622264 text/javascript,8802358,102680806 application/x-javascript,4278134,28726895 This corresponds to text/javascript being used in 23.5%, 25.3%, and 29.5% of responses. That is, it is slowly gaining popularity. Still, application/javascript remains more popular for now. With this change, js files are now returned with the text/javascript type. Similarly, autoindex in jsonp format now also uses text/javascript. Additionally, text/javascript is added to the default charset_types list of the charset module. Since application/javascript is still more popular than text/javascript, application/javascript is also preserved in the default list for now.
author Maxim Dounin <mdounin@mdounin.ru>
date Sat, 31 Aug 2024 05:40:06 +0300
parents adcc6d8acfd4
children
line wrap: on
line source


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


#ifndef _NGX_EVENT_UDP_H_INCLUDED_
#define _NGX_EVENT_UDP_H_INCLUDED_


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


#if !(NGX_WIN32)

#if ((NGX_HAVE_MSGHDR_MSG_CONTROL)                                            \
     && (NGX_HAVE_IP_SENDSRCADDR || NGX_HAVE_IP_RECVDSTADDR                   \
         || NGX_HAVE_IP_PKTINFO                                               \
         || (NGX_HAVE_INET6 && NGX_HAVE_IPV6_RECVPKTINFO)))
#define NGX_HAVE_ADDRINFO_CMSG  1

#endif


struct ngx_udp_connection_s {
    ngx_rbtree_node_t   node;
    ngx_connection_t   *connection;
    ngx_buf_t          *buffer;
    ngx_str_t           key;
};


#if (NGX_HAVE_ADDRINFO_CMSG)

typedef union {
#if (NGX_HAVE_IP_SENDSRCADDR || NGX_HAVE_IP_RECVDSTADDR)
    struct in_addr        addr;
#endif

#if (NGX_HAVE_IP_PKTINFO)
    struct in_pktinfo     pkt;
#endif

#if (NGX_HAVE_INET6 && NGX_HAVE_IPV6_RECVPKTINFO)
    struct in6_pktinfo    pkt6;
#endif
} ngx_addrinfo_t;

size_t ngx_set_srcaddr_cmsg(struct cmsghdr *cmsg,
    struct sockaddr *local_sockaddr);
ngx_int_t ngx_get_srcaddr_cmsg(struct cmsghdr *cmsg,
    struct sockaddr *local_sockaddr);

#endif

void ngx_event_recvmsg(ngx_event_t *ev);
ssize_t ngx_sendmsg(ngx_connection_t *c, struct msghdr *msg, int flags);
void ngx_udp_rbtree_insert_value(ngx_rbtree_node_t *temp,
    ngx_rbtree_node_t *node, ngx_rbtree_node_t *sentinel);
#endif

void ngx_delete_udp_connection(void *data);


#endif /* _NGX_EVENT_UDP_H_INCLUDED_ */