From 9ffca4659b0cb91c6253eeb1e0c12978e9567d1a Mon Sep 17 00:00:00 2001 From: akr Date: Tue, 20 Jan 2009 11:06:22 +0000 Subject: [PATCH] * ext/socket/rubysocket.h (pseudo_AF_FTIP): moved from mkconstants.rb. * ext/socket/mkconstants.rb: prepend header if -H is not given. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21698 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 6 ++++++ ext/socket/mkconstants.rb | 9 +++++---- ext/socket/rubysocket.h | 11 +++++++++++ 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9def8e1a0f..56a5272f07 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Tue Jan 20 20:05:21 2009 Tanaka Akira + + * ext/socket/rubysocket.h (pseudo_AF_FTIP): moved from mkconstants.rb. + + * ext/socket/mkconstants.rb: prepend header if -H is not given. + Tue Jan 20 17:50:00 2009 NARUSE, Yui * ext/nkf/nkf-utf8/nkf.c (nkf_buf): use nkf_char. diff --git a/ext/socket/mkconstants.rb b/ext/socket/mkconstants.rb index bc574aa3e5..c7f599beb8 100644 --- a/ext/socket/mkconstants.rb +++ b/ext/socket/mkconstants.rb @@ -34,10 +34,7 @@ end opt.parse! -result = '' -# workaround for NetBSD, OpenBSD and etc. -result << "#define pseudo_AF_FTIP pseudo_AF_RTIP\n" h = {} DATA.each_line {|s| @@ -258,7 +255,8 @@ def_intern('intern_protocol_family', /\APF_/) def_intern('intern_socktype', /\ASOCK_/) def_intern('intern_ipproto', /\AIPPROTO_/) -result << ERB.new(<<'EOS', nil, '%').result(binding) +result = ERB.new(<<'EOS', nil, '%').result(binding) +/* autogenerated file */ <%= INTERN_DEFS.map {|vardef, gen_hash, decl, func| vardef }.join("\n") %> @@ -276,6 +274,7 @@ init_constants(VALUE mConst) EOS header_result = ERB.new(<<'EOS', nil, '%').result(binding) +/* autogenerated file */ <%= gen_const_decls %> <%= NAME_TO_INT_DEFS.map {|decl, func| decl }.join("\n") %> <%= INTERN_DEFS.map {|vardef, gen_hash, decl, func| decl }.join("\n") %> @@ -285,6 +284,8 @@ if opt_H File.open(opt_H, 'w') {|f| f << header_result } +else + result = header_result + result end if opt_o diff --git a/ext/socket/rubysocket.h b/ext/socket/rubysocket.h index 365eab63da..6d4a70a95d 100644 --- a/ext/socket/rubysocket.h +++ b/ext/socket/rubysocket.h @@ -59,9 +59,20 @@ #include #endif #endif + #ifndef EWOULDBLOCK #define EWOULDBLOCK EAGAIN #endif + +/* + * workaround for NetBSD, OpenBSD and etc. + * The problem is since 4.4BSD-Lite. + * FreeBSD fix the problem at FreeBSD 2.2.0. + * NetBSD fix the problem at NetBSD 3.0 by kern/29624. + * OpenBSD fix the problem at OpenBSD 3.8. + */ +#define pseudo_AF_FTIP pseudo_AF_RTIP + #ifndef HAVE_GETADDRINFO # include "addrinfo.h" #endif