merge revision(s) 64636,64637: [Backport #15659]

AIX doesn't set OptionLength for boolean options

	20180904T103302Z.fail.html.gz
	https://www.ibm.com/support/knowledgecenter/ja/ssw_aix_72/com.ibm.aix.commtrf2/getsockopt.htm

	fix typo

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@67228 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nagachika 2019-03-12 12:59:25 +00:00
parent d704a0fe3f
commit a648423e27
2 changed files with 15 additions and 3 deletions

View file

@ -314,6 +314,18 @@ bsock_getsockopt(VALUE sock, VALUE lev, VALUE optname)
level = rsock_level_arg(family, lev);
option = rsock_optname_arg(family, level, optname);
len = 256;
#ifdef _AIX
switch (option) {
case SO_DEBUG:
case SO_REUSEADDR:
case SO_KEEPALIVE:
case SO_DONTROUTE:
case SO_BROADCAST:
case SO_OOBINLINE:
/* AIX doesn' set len for boolean options */
len = sizeof(int);
}
#endif
buf = ALLOCA_N(char,len);
rb_io_check_closed(fptr);