Issue #11701 has been reported by Akira Tanaka.

----------------------------------------
Bug #11701: recvmsg for UDP without argument
https://bugs.ruby-lang.org/issues/11701

* Author: Akira Tanaka
* Status: Open
* Priority: Normal
* Assignee: 
* ruby -v: 
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
----------------------------------------
It seems recvmsg without argument doesn't work well for UDP now.

Following example sends a packet which size is 10000 bytes but
receives a packet which size is 4096 bytes.

```
% ./ruby -rsocket -ve 's1 = Addrinfo.udp("127.0.0.1", 0).bind             
s2 = s1.connect_address.connect
s2.send("a"*10000, 0)
ret = s1.recvmsg
p ret[0].length
'
ruby 2.3.0dev (2015-11-17 trunk 52613) [x86_64-linux]
4096
```

ruby-2.3.0-preview1 worked well.
It receives a packet which size is 10000 bytes.

```
% ruby-2.3.0-preview1 -rsocket -ve 's1 = Addrinfo.udp("127.0.0.1", 0).bind
s2 = s1.connect_address.connect
s2.send("a"*10000, 0)
ret = s1.recvmsg
p ret[0].length
'
ruby 2.3.0preview1 (2015-11-11 trunk 52539) [x86_64-linux]
10000
```

This behavior (recvmsg without arguments) is documented as follows:

```
maxmesglen and maxcontrollen can
be nil. In that case, the buffer will be grown until the message is not
truncated. Internally, MSG_PEEK is used and MSG_TRUNC/MSG_CTRUNC are checked.
```




-- 
https://bugs.ruby-lang.org/