[PATCH 2/4] ws2_32: Set default socket options in the server.

Alexandre Julliard julliard at winehq.org
Wed Sep 30 03:59:03 CDT 2020


Zebediah Figura <z.figura12 at gmail.com> writes:

> @@ -712,6 +712,42 @@ static int get_unix_protocol( int protocol )
>      }
>  }
>  
> +static void set_dont_fragment( int fd, int level, int value )
> +{
> +    int optname;
> +
> +    if (level == IPPROTO_IP)
> +    {
> +#ifdef IP_DONTFRAG
> +        optname = IP_DONTFRAG;
> +#elif defined(IP_MTU_DISCOVER) && defined(IP_PMTUDISC_DO) && defined(IP_PMTUDISC_DONT)
> +        optname = IP_MTU_DISCOVER;
> +        value = value ? IP_PMTUDISC_DO : IP_PMTUDISC_DONT;
> +#else
> +        static int once;
> +        if (!once++)
> +            fprintf( stderr, "IP_DONTFRAGMENT for IPv4 not supported in this platform\n" );
> +        return;
> +#endif
> +    }
> +    else
> +    {
> +#ifdef IPV6_DONTFRAG
> +        optname = IPV6_DONTFRAG;
> +#elif defined(IPV6_MTU_DISCOVER) && defined(IPV6_PMTUDISC_DO) && defined(IPV6_PMTUDISC_DONT)
> +        optname = IPV6_MTU_DISCOVER;
> +        value = value ? IPV6_PMTUDISC_DO : IPV6_PMTUDISC_DONT;
> +#else
> +        static int once;
> +        if (!once++)
> +            fprintf( stderr, "IP_DONTFRAGMENT for IPv6 not supported in this platform\n" );
> +        return;
> +#endif

Please don't print errors from the server. If there's a need to show
this to the user, it should return an error that would be checked for
and printed on the client side.

-- 
Alexandre Julliard
julliard at winehq.org



More information about the wine-devel mailing list