From 6dd1910a3d7b5e2057c5671f971709b4c38c1e5b Mon Sep 17 00:00:00 2001 From: matz Date: Mon, 29 Dec 2008 07:32:56 +0000 Subject: * ext/socket/socket.c (s_recvfrom_nonblock): default maxlen to be 65536. suggested by akr in [ruby-core:20918]. response to feature request #936 in [ruby-core:20917]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21162 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/socket/socket.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'ext/socket') diff --git a/ext/socket/socket.c b/ext/socket/socket.c index a8b53bd534..8c8bc7ddc3 100644 --- a/ext/socket/socket.c +++ b/ext/socket/socket.c @@ -690,11 +690,12 @@ s_recvfrom_nonblock(VALUE sock, int argc, VALUE *argv, enum sock_recv_type from) int fd, flags; VALUE addr = Qnil; - rb_scan_args(argc, argv, "11", &len, &flg); + rb_scan_args(argc, argv, "2", &len, &flg); + if (len == Qnil) buflen = 65536; + else buflen = NUM2INT(len); if (flg == Qnil) flags = 0; else flags = NUM2INT(flg); - buflen = NUM2INT(len); #ifdef MSG_DONTWAIT /* MSG_DONTWAIT avoids the race condition between fcntl and recvfrom. @@ -748,11 +749,13 @@ bsock_recv(int argc, VALUE *argv, VALUE sock) /* * call-seq: + * basicsocket.recv_nonblock() => mesg * basicsocket.recv_nonblock(maxlen) => mesg * basicsocket.recv_nonblock(maxlen, flags) => mesg * * Receives up to _maxlen_ bytes from +socket+ using recvfrom(2) after * O_NONBLOCK is set for the underlying file descriptor. + * If _maxlen_ is ommitted, its default value is 65536. * _flags_ is zero or more of the +MSG_+ options. * The result, _mesg_, is the data received. * @@ -1878,11 +1881,13 @@ udp_send(int argc, VALUE *argv, VALUE sock) /* * call-seq: + * udpsocket.recvfrom_nonblock() => [mesg, sender_inet_addr] * udpsocket.recvfrom_nonblock(maxlen) => [mesg, sender_inet_addr] * udpsocket.recvfrom_nonblock(maxlen, flags) => [mesg, sender_inet_addr] * * Receives up to _maxlen_ bytes from +udpsocket+ using recvfrom(2) after * O_NONBLOCK is set for the underlying file descriptor. + * If _maxlen_ is ommitted, its default value is 65536. * _flags_ is zero or more of the +MSG_+ options. * The first element of the results, _mesg_, is the data received. * The second element, _sender_inet_addr_, is an array to represent the sender address. -- cgit v1.2.3