summaryrefslogtreecommitdiff
path: root/ext/socket/extconf.rb
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-05-19 20:00:00 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-05-19 20:00:00 +0000
commit7a1972ab9c729d586d9f3b53326f6fe6fe600703 (patch)
treed459e410b58464a344c36cf885798dfe9eb746e5 /ext/socket/extconf.rb
parentb9a178e56c8ba06f70533fc81dc4081375cb8f9f (diff)
* ext/socket/extconf.rb: Don't check fields of struct tcp_info if the
structure is not available. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46024 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/socket/extconf.rb')
-rw-r--r--ext/socket/extconf.rb109
1 files changed, 55 insertions, 54 deletions
diff --git a/ext/socket/extconf.rb b/ext/socket/extconf.rb
index 7bc8ffee80..c4523da24d 100644
--- a/ext/socket/extconf.rb
+++ b/ext/socket/extconf.rb
@@ -371,60 +371,61 @@ have_msg_control = nil
have_msg_control = have_struct_member('struct msghdr', 'msg_control', headers) unless $mswin or $mingw
have_struct_member('struct msghdr', 'msg_accrights', headers)
-have_type("struct tcp_info", headers)
-have_const("TCP_ESTABLISHED", headers)
-have_const("TCP_SYN_SENT", headers)
-have_const("TCP_SYN_RECV", headers)
-have_const("TCP_FIN_WAIT1", headers)
-have_const("TCP_FIN_WAIT2", headers)
-have_const("TCP_TIME_WAIT", headers)
-have_const("TCP_CLOSE", headers)
-have_const("TCP_CLOSE_WAIT", headers)
-have_const("TCP_LAST_ACK", headers)
-have_const("TCP_LISTEN", headers)
-have_const("TCP_CLOSING", headers)
-have_struct_member('struct tcp_info', 'tcpi_state', headers)
-have_struct_member('struct tcp_info', 'tcpi_ca_state', headers)
-have_struct_member('struct tcp_info', 'tcpi_retransmits', headers)
-have_struct_member('struct tcp_info', 'tcpi_probes', headers)
-have_struct_member('struct tcp_info', 'tcpi_backoff', headers)
-have_struct_member('struct tcp_info', 'tcpi_options', headers)
-have_struct_member('struct tcp_info', 'tcpi_snd_wscale', headers)
-have_struct_member('struct tcp_info', 'tcpi_rcv_wscale', headers)
-have_struct_member('struct tcp_info', 'tcpi_rto', headers)
-have_struct_member('struct tcp_info', 'tcpi_ato', headers)
-have_struct_member('struct tcp_info', 'tcpi_snd_mss', headers)
-have_struct_member('struct tcp_info', 'tcpi_rcv_mss', headers)
-have_struct_member('struct tcp_info', 'tcpi_unacked', headers)
-have_struct_member('struct tcp_info', 'tcpi_sacked', headers)
-have_struct_member('struct tcp_info', 'tcpi_lost', headers)
-have_struct_member('struct tcp_info', 'tcpi_retrans', headers)
-have_struct_member('struct tcp_info', 'tcpi_fackets', headers)
-have_struct_member('struct tcp_info', 'tcpi_last_data_sent', headers)
-have_struct_member('struct tcp_info', 'tcpi_last_ack_sent', headers)
-have_struct_member('struct tcp_info', 'tcpi_last_data_recv', headers)
-have_struct_member('struct tcp_info', 'tcpi_last_ack_recv', headers)
-have_struct_member('struct tcp_info', 'tcpi_pmtu', headers)
-have_struct_member('struct tcp_info', 'tcpi_rcv_ssthresh', headers)
-have_struct_member('struct tcp_info', 'tcpi_rtt', headers)
-have_struct_member('struct tcp_info', 'tcpi_rttvar', headers)
-have_struct_member('struct tcp_info', 'tcpi_snd_ssthresh', headers)
-have_struct_member('struct tcp_info', 'tcpi_snd_cwnd', headers)
-have_struct_member('struct tcp_info', 'tcpi_advmss', headers)
-have_struct_member('struct tcp_info', 'tcpi_reordering', headers)
-have_struct_member('struct tcp_info', 'tcpi_rcv_rtt', headers)
-have_struct_member('struct tcp_info', 'tcpi_rcv_space', headers)
-have_struct_member('struct tcp_info', 'tcpi_total_retrans', headers)
-
-# FreeBSD extension
-have_struct_member('struct tcp_info', 'tcpi_snd_wnd', headers)
-have_struct_member('struct tcp_info', 'tcpi_snd_bwnd', headers)
-have_struct_member('struct tcp_info', 'tcpi_snd_nxt', headers)
-have_struct_member('struct tcp_info', 'tcpi_rcv_nxt', headers)
-have_struct_member('struct tcp_info', 'tcpi_toe_tid', headers)
-have_struct_member('struct tcp_info', 'tcpi_snd_rexmitpack', headers)
-have_struct_member('struct tcp_info', 'tcpi_rcv_ooopack', headers)
-have_struct_member('struct tcp_info', 'tcpi_snd_zerowin', headers)
+if have_type("struct tcp_info", headers)
+ have_const("TCP_ESTABLISHED", headers)
+ have_const("TCP_SYN_SENT", headers)
+ have_const("TCP_SYN_RECV", headers)
+ have_const("TCP_FIN_WAIT1", headers)
+ have_const("TCP_FIN_WAIT2", headers)
+ have_const("TCP_TIME_WAIT", headers)
+ have_const("TCP_CLOSE", headers)
+ have_const("TCP_CLOSE_WAIT", headers)
+ have_const("TCP_LAST_ACK", headers)
+ have_const("TCP_LISTEN", headers)
+ have_const("TCP_CLOSING", headers)
+ have_struct_member('struct tcp_info', 'tcpi_state', headers)
+ have_struct_member('struct tcp_info', 'tcpi_ca_state', headers)
+ have_struct_member('struct tcp_info', 'tcpi_retransmits', headers)
+ have_struct_member('struct tcp_info', 'tcpi_probes', headers)
+ have_struct_member('struct tcp_info', 'tcpi_backoff', headers)
+ have_struct_member('struct tcp_info', 'tcpi_options', headers)
+ have_struct_member('struct tcp_info', 'tcpi_snd_wscale', headers)
+ have_struct_member('struct tcp_info', 'tcpi_rcv_wscale', headers)
+ have_struct_member('struct tcp_info', 'tcpi_rto', headers)
+ have_struct_member('struct tcp_info', 'tcpi_ato', headers)
+ have_struct_member('struct tcp_info', 'tcpi_snd_mss', headers)
+ have_struct_member('struct tcp_info', 'tcpi_rcv_mss', headers)
+ have_struct_member('struct tcp_info', 'tcpi_unacked', headers)
+ have_struct_member('struct tcp_info', 'tcpi_sacked', headers)
+ have_struct_member('struct tcp_info', 'tcpi_lost', headers)
+ have_struct_member('struct tcp_info', 'tcpi_retrans', headers)
+ have_struct_member('struct tcp_info', 'tcpi_fackets', headers)
+ have_struct_member('struct tcp_info', 'tcpi_last_data_sent', headers)
+ have_struct_member('struct tcp_info', 'tcpi_last_ack_sent', headers)
+ have_struct_member('struct tcp_info', 'tcpi_last_data_recv', headers)
+ have_struct_member('struct tcp_info', 'tcpi_last_ack_recv', headers)
+ have_struct_member('struct tcp_info', 'tcpi_pmtu', headers)
+ have_struct_member('struct tcp_info', 'tcpi_rcv_ssthresh', headers)
+ have_struct_member('struct tcp_info', 'tcpi_rtt', headers)
+ have_struct_member('struct tcp_info', 'tcpi_rttvar', headers)
+ have_struct_member('struct tcp_info', 'tcpi_snd_ssthresh', headers)
+ have_struct_member('struct tcp_info', 'tcpi_snd_cwnd', headers)
+ have_struct_member('struct tcp_info', 'tcpi_advmss', headers)
+ have_struct_member('struct tcp_info', 'tcpi_reordering', headers)
+ have_struct_member('struct tcp_info', 'tcpi_rcv_rtt', headers)
+ have_struct_member('struct tcp_info', 'tcpi_rcv_space', headers)
+ have_struct_member('struct tcp_info', 'tcpi_total_retrans', headers)
+
+ # FreeBSD extension
+ have_struct_member('struct tcp_info', 'tcpi_snd_wnd', headers)
+ have_struct_member('struct tcp_info', 'tcpi_snd_bwnd', headers)
+ have_struct_member('struct tcp_info', 'tcpi_snd_nxt', headers)
+ have_struct_member('struct tcp_info', 'tcpi_rcv_nxt', headers)
+ have_struct_member('struct tcp_info', 'tcpi_toe_tid', headers)
+ have_struct_member('struct tcp_info', 'tcpi_snd_rexmitpack', headers)
+ have_struct_member('struct tcp_info', 'tcpi_rcv_ooopack', headers)
+ have_struct_member('struct tcp_info', 'tcpi_snd_zerowin', headers)
+end
case RUBY_PLATFORM
when /mswin(32|64)|mingw/