mirror of
				https://gitea.invidious.io/iv-org/litespeed-quic.git
				synced 2024-08-15 00:53:43 +00:00 
			
		
		
		
	Release 4.0.0
This commit is contained in:
		
							parent
							
								
									b373fe5220
								
							
						
					
					
						commit
						79880b469a
					
				
					 47 changed files with 2459 additions and 606 deletions
				
			
		| 
						 | 
				
			
			@ -804,7 +804,7 @@ sport_init_server (struct service_port *sport, struct lsquic_engine *engine,
 | 
			
		|||
#ifndef WIN32
 | 
			
		||||
    int flags;
 | 
			
		||||
#endif
 | 
			
		||||
    SOCKOPT_VAL on;
 | 
			
		||||
    SOCKOPT_VAL on = 1;
 | 
			
		||||
    socklen_t socklen;
 | 
			
		||||
    char addr_str[0x20];
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -828,6 +828,14 @@ sport_init_server (struct service_port *sport, struct lsquic_engine *engine,
 | 
			
		|||
    if (-1 == sockfd)
 | 
			
		||||
        return -1;
 | 
			
		||||
 | 
			
		||||
    if (AF_INET6 == sa_local->sa_family
 | 
			
		||||
        && setsockopt(sockfd, IPPROTO_IPV6, IPV6_V6ONLY,
 | 
			
		||||
                      CHAR_CAST &on, sizeof(on)) == -1)
 | 
			
		||||
    {
 | 
			
		||||
        close(sockfd);
 | 
			
		||||
        return -1;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (0 != bind(sockfd, sa_local, socklen)) {
 | 
			
		||||
        saved_errno = errno;
 | 
			
		||||
        LSQ_WARN("bind failed: %s", strerror(errno));
 | 
			
		||||
| 
						 | 
				
			
			@ -977,9 +985,21 @@ sport_init_server (struct service_port *sport, struct lsquic_engine *engine,
 | 
			
		|||
#if ECN_SUPPORTED
 | 
			
		||||
    on = 1;
 | 
			
		||||
    if (AF_INET == sa_local->sa_family)
 | 
			
		||||
        s = setsockopt(sockfd, IPPROTO_IP, IP_RECVTOS, CHAR_CAST &on, sizeof(on));
 | 
			
		||||
    {
 | 
			
		||||
        s = setsockopt(sockfd, IPPROTO_IP, IP_RECVTOS,
 | 
			
		||||
                       CHAR_CAST &on, sizeof(on));
 | 
			
		||||
        if (!s)
 | 
			
		||||
            s = setsockopt(sockfd, IPPROTO_IP, IP_TOS,
 | 
			
		||||
                           CHAR_CAST &on, sizeof(on));
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
        s = setsockopt(sockfd, IPPROTO_IPV6, IPV6_RECVTCLASS, CHAR_CAST &on, sizeof(on));
 | 
			
		||||
    {
 | 
			
		||||
        s = setsockopt(sockfd, IPPROTO_IPV6, IPV6_RECVTCLASS,
 | 
			
		||||
                       CHAR_CAST &on, sizeof(on));
 | 
			
		||||
        if (!s)
 | 
			
		||||
            s = setsockopt(sockfd, IPPROTO_IPV6, IPV6_TCLASS,
 | 
			
		||||
                           CHAR_CAST &on, sizeof(on));
 | 
			
		||||
    }
 | 
			
		||||
    if (0 != s)
 | 
			
		||||
    {
 | 
			
		||||
        saved_errno = errno;
 | 
			
		||||
| 
						 | 
				
			
			@ -987,6 +1007,8 @@ sport_init_server (struct service_port *sport, struct lsquic_engine *engine,
 | 
			
		|||
        errno = saved_errno;
 | 
			
		||||
        return -1;
 | 
			
		||||
    }
 | 
			
		||||
    LSQ_DEBUG("server ECN support is enabled.");
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    if (sport->sp_flags & SPORT_SET_SNDBUF)
 | 
			
		||||
| 
						 | 
				
			
			@ -1177,11 +1199,21 @@ sport_init_client (struct service_port *sport, struct lsquic_engine *engine,
 | 
			
		|||
    {
 | 
			
		||||
        int on = 1;
 | 
			
		||||
        if (AF_INET == sa_local->sa_family)
 | 
			
		||||
        {
 | 
			
		||||
            s = setsockopt(sockfd, IPPROTO_IP, IP_RECVTOS,
 | 
			
		||||
                                            CHAR_CAST &on, sizeof(on));
 | 
			
		||||
                        CHAR_CAST &on, sizeof(on));
 | 
			
		||||
            if (!s)
 | 
			
		||||
                s = setsockopt(sockfd, IPPROTO_IP, IP_TOS,
 | 
			
		||||
                            CHAR_CAST &on, sizeof(on));
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            s = setsockopt(sockfd, IPPROTO_IPV6, IPV6_RECVTCLASS,
 | 
			
		||||
                                            CHAR_CAST &on, sizeof(on));
 | 
			
		||||
                        CHAR_CAST &on, sizeof(on));
 | 
			
		||||
            if (!s)
 | 
			
		||||
                s = setsockopt(sockfd, IPPROTO_IPV6, IPV6_TCLASS,
 | 
			
		||||
                            CHAR_CAST &on, sizeof(on));
 | 
			
		||||
        }
 | 
			
		||||
        if (0 != s)
 | 
			
		||||
        {
 | 
			
		||||
            saved_errno = errno;
 | 
			
		||||
| 
						 | 
				
			
			@ -1189,6 +1221,7 @@ sport_init_client (struct service_port *sport, struct lsquic_engine *engine,
 | 
			
		|||
            errno = saved_errno;
 | 
			
		||||
            return -1;
 | 
			
		||||
        }
 | 
			
		||||
        LSQ_DEBUG("client ECN support is enabled.");
 | 
			
		||||
    }
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1796,6 +1829,11 @@ set_engine_option (struct lsquic_engine_settings *settings,
 | 
			
		|||
            settings->es_spin = atoi(val);
 | 
			
		||||
            return 0;
 | 
			
		||||
        }
 | 
			
		||||
        if (0 == strncmp(name, "srej", 4))
 | 
			
		||||
        {
 | 
			
		||||
            settings->es_support_srej = atoi(val);
 | 
			
		||||
            return 0;
 | 
			
		||||
        }
 | 
			
		||||
        break;
 | 
			
		||||
    case 7:
 | 
			
		||||
        if (0 == strncmp(name, "version", 7))
 | 
			
		||||
| 
						 | 
				
			
			@ -1933,6 +1971,11 @@ set_engine_option (struct lsquic_engine_settings *settings,
 | 
			
		|||
            settings->es_handshake_to = atoi(val);
 | 
			
		||||
            return 0;
 | 
			
		||||
        }
 | 
			
		||||
        if (0 == strncmp(name, "support_srej", 12))
 | 
			
		||||
        {
 | 
			
		||||
            settings->es_support_srej = atoi(val);
 | 
			
		||||
            return 0;
 | 
			
		||||
        }
 | 
			
		||||
        if (0 == strncmp(name, "delayed_acks", 12))
 | 
			
		||||
        {
 | 
			
		||||
            settings->es_delayed_acks = atoi(val);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue