On 07/20 10:46, Eric Wong wrote:
> merch-redmine / jeremyevans.net wrote:
> > Bug #11364: Use smaller buffer for sendmsg
> > https://bugs.ruby-lang.org/issues/11364
> > 
> > OpenBSD's limit is less than 128.
> 
> Btw, this is pretty disappointing since I want to use SOCK_SEQPACKET
> more for IPC in some projects.
> 
> Does SO_RCVBUF/SO_SNDBUF help in OpenBSD with SOCK_SEQPACKET sockets?

Yes, the limit can be raised above the default:

$ irb22 -rsocket 
irb(main):001:0> s1, s2 = UNIXSocket.pair(:SEQPACKET)
=> [#<UNIXSocket:fd 9>, #<UNIXSocket:fd 10>]
irb(main):002:0> s1.send("a" * 8192, 0)
Errno::EMSGSIZE: Message too long - send(2)
        from (irb):2:in `send'
        from (irb):2
        from /usr/local/bin/irb22:11:in `<main>'
irb(main):003:0> s1.setsockopt(:SOCKET, :SNDBUF, 65536)
=> 0
irb(main):004:0> s1.send("a" * 8192, 0)
=> 8192

Not sure why the default limit for SEQPACKET is so low on OpenBSD.  I'm
guessing nobody uses SEQPACKET so nobody complains about the low limit.
I'll see if there is a good reason for it, or if the default can be
raised in future versions if not.

Thanks,
Jeremy