[前][次][番号順一覧][スレッド一覧]

ruby-changes:52427

From: naruse <ko1@a...>
Date: Wed, 5 Sep 2018 22:15:45 +0900 (JST)
Subject: [ruby-changes:52427] naruse:r64636 (trunk): AIX doesn't set OptionLength for boolean options

naruse	2018-09-05 22:15:41 +0900 (Wed, 05 Sep 2018)

  New Revision: 64636

  https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=64636

  Log:
    AIX doesn't set OptionLength for boolean options
    
    https://rubyci.org/logs/rubyci.s3.amazonaws.com/aix71_ppc/ruby-trunk/log/20180904T103302Z.fail.html.gz
    https://www.ibm.com/support/knowledgecenter/ja/ssw_aix_72/com.ibm.aix.commtrf2/getsockopt.htm

  Modified files:
    trunk/ext/socket/basicsocket.c
Index: ext/socket/basicsocket.c
===================================================================
--- ext/socket/basicsocket.c	(revision 64635)
+++ ext/socket/basicsocket.c	(revision 64636)
@@ -314,6 +314,18 @@ bsock_getsockopt(VALUE sock, VALUE lev, https://github.com/ruby/ruby/blob/trunk/ext/socket/basicsocket.c#L314
     level = rsock_level_arg(family, lev);
     option = rsock_optname_arg(family, level, optname);
     len = 256;
+#ifdef Qnil
+    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);

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]