@@ -16,7 +16,7 @@ module Network.Socket.Options (
1616 ,OOBInline ,TimeToLive ,MaxSegment ,NoDelay ,Cork ,Linger ,ReusePort
1717 ,RecvLowWater ,SendLowWater ,RecvTimeOut ,SendTimeOut
1818 ,UseLoopBack ,UserTimeout ,IPv6Only
19- ,RecvIPv4TTL ,RecvIPv4TOS ,RecvIPv4PktInfo
19+ ,RecvIPv4TTL ,RecvIPv4TOS ,RecvIPv4PktInfo , DontFragment
2020 ,RecvIPv6HopLimit ,RecvIPv6TClass ,RecvIPv6PktInfo
2121 ,CustomSockOpt )
2222 , isSupportedSocketOption
@@ -94,6 +94,7 @@ socketOptionBijection =
9494 , (RecvIPv4TTL , " RecvIPv4TTL" )
9595 , (RecvIPv4TOS , " RecvIPv4TOS" )
9696 , (RecvIPv4PktInfo , " RecvIPv4PktInfo" )
97+ , (DontFragment , " DontFragment" )
9798 , (IPv6Only , " IPv6Only" )
9899 , (RecvIPv6HopLimit , " RecvIPv6HopLimit" )
99100 , (RecvIPv6TClass , " RecvIPv6TClass" )
@@ -352,6 +353,15 @@ pattern RecvIPv4PktInfo = SockOpt (#const IPPROTO_IP) (#const IP_PKTINFO)
352353#else
353354pattern RecvIPv4PktInfo = SockOpt (- 1 ) (- 1 )
354355#endif
356+ -- | IP_DONTFRAG
357+ pattern DontFragment :: SocketOption
358+ #if HAVE_DECL_IP_DONTFRAG
359+ pattern DontFragment = SockOpt (# const IPPROTO_IP ) (# const IP_DONTFRAG )
360+ #elif HAVE_DECL_IP_MTU_DISCOVER
361+ pattern DontFragment = SockOpt (# const IPPROTO_IP ) (# const IP_MTU_DISCOVER )
362+ #else
363+ pattern DontFragment = SockOpt (- 1 ) (- 1 )
364+ #endif
355365#endif // HAVE_DECL_IPPROTO_IP
356366
357367#if HAVE_DECL_IPPROTO_IPV6
0 commit comments