--- gforth/unix/socket.fs 2011/04/13 20:11:12 1.43 +++ gforth/unix/socket.fs 2011/12/12 19:45:40 1.44 @@ -143,7 +143,10 @@ $802 Constant O_NONBLOCK|O_RDWR [THEN] 1 Constant SOCK_STREAM 2 Constant SOCK_DGRAM + 0 Constant IPPROTO_IP 41 Constant IPPROTO_IPV6 + 10 Constant IP_MTU_DISCOVER + 23 Constant IPV6_MTU_DISCOVER 4 Constant F_SETFL $001 Constant POLLIN $002 Constant POLLPRI @@ -162,11 +165,13 @@ $004 Constant POLLOUT : new-udp-socket ( -- socket ) PF_INET SOCK_DGRAM 0 socket - dup 0<= abort" no free socket" ; + dup 0<= abort" no free socket" + dup IPPROTO_IP IP_MTU_DISCOVER sockopt-on 1 over l! 4 setsockopt drop ; : new-udp-socket6 ( -- socket ) PF_INET6 SOCK_DGRAM 0 socket dup 0<= abort" no free socket" + dup IPPROTO_IPV6 IPV6_MTU_DISCOVER sockopt-on 1 over l! 4 setsockopt drop dup IPPROTO_IPV6 IPV6_V6ONLY sockopt-on dup on 4 setsockopt drop ; \ getaddrinfo based open-socket