Commit graph

101 commits

Author SHA1 Message Date
nobu
a2749dbbf1 * ext/socket/extconf.rb: fix typo.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34907 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-03-05 07:52:43 +00:00
luislavena
44d20d61c7 Do not define _WIN32_WINNT multiple times
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34284 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-01-12 18:28:17 +00:00
usa
2470d7811f * ext/socket/extconf.rb: forgotten to define HAVE_SOCKETPAIR for
windows.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33979 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-12-08 03:59:10 +00:00
usa
1dea192775 * include/ruby/{subst.h,win32.h}, ext/socket/rubysocket.h: revert
r33876.  [ruby-core:41475] [Bug #5706]

* ext/socket/extconf.rb: the alternative hack for [Bug #5675].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33947 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-12-05 05:29:31 +00:00
nobu
b0f588fe0e * ext/socket/extconf.rb: get rid of warnings by
-Wmissing-declarations or -Wold-style-definition options.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33920 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-12-01 08:45:22 +00:00
nobu
05e2da638f * ext/socket/extconf.rb: add arguments for macro calls.
[ruby-core:41370] [Bug#5681]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33919 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-12-01 07:59:21 +00:00
akr
5dbc3d1e79 * ext/socket/init.c (cloexec_accept): new function to use accept4 if
available.
  (rsock_s_accept_nonblock): use cloexec_accept.
  (accept_blocking): ditto.

* ext/socket/extconf.rb: check accept4.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33596 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-31 23:26:19 +00:00
akr
29f354df63 * ext/socket/extconf.rb: refine the recvmsg test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32657 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-24 11:35:56 +00:00
akr
0283c3d0bb * ext/socket/extconf.rb: fix the recvmsg test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32656 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-24 11:04:11 +00:00
akr
f5b9de7502 * ext/socket/extconf.rb: test recvmsg allocates file descriptors for
fd passing even with MSG_PEEK.

* ext/socket/ancdata.c: use the above test result.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32655 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-23 23:57:50 +00:00
kosaki
908baefe7d * internal.h: move rb_thread_io_blocking_region() declaration
from intern.h to internal.h. It's still experimental API and
  need more discussion. [ruby-dev:43698]
* include/ruby/intern.h: ditto.

* ext/socket/rubysocket.h: include internal.h.
* ext/socket/depend: add internal.h dependency.
* ext/socket/extconf.rb: add $INCFLAGS to topdir.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32187 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-21 12:31:17 +00:00
kosaki
6bd4afaab8 * ext/socket/extconf.rb: Fix build error which was introduced r30372.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30374 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-12-25 17:21:08 +00:00
usa
7c9fbd226b * ext/socket/extconf.rb: check the existence of if_indextoname().
* ext/socket/option.c: yesterday's akr's commits destroyed the build of
  some unrelated platforms (such as Windows).


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30372 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-12-25 16:41:13 +00:00
akr
01da08a29c * ext/socket/option.c (inspect_ipv4_add_drop_membership): new function
to inspect struct ip_mreq and struct ip_mreqn for
  IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP.
  Socket::Option.new(:INET, :IP, :ADD_MEMBERSHIP,
  [239,255,99,81, 0,0,0,0].pack("CCCCCCCC")).inspect is now
  "#<Socket::Option: INET IP ADD_MEMBERSHIP 239.255.99.81 0.0.0.0>".
  (inspect_ipv4_multicast_if): new function to inspect struct in_addr
  and struct ip_mreqn for IP_MULTICAST_IF.
  Socket::Option.new(:INET, :IP, :MULTICAST_IF,
  [192,168,0,7].pack("CCCC")).inspect is now
  "#<Socket::Option: INET IP MULTICAST_IF 192.168.0.7>".

* ext/socket/extconf.rb: check struct ip_mreq and struct ip_mreqn.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30371 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-12-25 14:35:28 +00:00
akr
1b40391d3d * ext/socket/option.c (inspect_ipv6_mreq): new function to inspect
struct ipv6_mreq for IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP.
  Socket::Option.new(:INET6, :IPV6, :JOIN_GROUP,
  [0xff12,0,0,0,0,0,0,1, 2].pack("nnnnnnnnI!")).inspect is now:
  "#<Socket::Option: INET6 IPV6 JOIN_GROUP ff12::1 eth0>"

* ext/socket/extconf.rb: check struct ipv6_mreq.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30361 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-12-25 09:29:24 +00:00
usa
f6150aa7df * ext/socket/extconf.rb: win64 is just same with win32 about socket.
notice: but wince is not same.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29666 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-11-01 15:26:58 +00:00
nobu
4c916ec8b7 * ext/socket/rubysocket.h (__DARWIN_ALIGNBYTES): workaround of a
bug in system header of darwin 9.  [ruby-core:32341]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29242 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-09-13 10:56:52 +00:00
usa
61086883b6 * ext/socket/extconf.rb: mswin/mingw ruby has socketpair(), but it's
not exist as such name in ruby static library, so mkmf.rb cannot
  find it.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27893 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-19 10:59:47 +00:00
usa
851a023843 * ext/socket/extconf.rb: test all IPPROTO_* constants for recent Win32
SDK.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27746 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-12 02:40:09 +00:00
akr
01cd3467fb * ext/socket/extconf.rb: test IPPROTO_IP and IPPROTO_IPV6 constants.
* ext/socket/mkconstants.rb: define macros for enum.

  [ruby-dev:38849]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27742 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-11 14:10:34 +00:00
nobu
0dc145e7b2 * ext/socket/extconf.rb: CMSG_ macros are broken on 64bit darwin,
because of use of __DARWIN_ALIGN.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27530 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-28 08:14:18 +00:00
akr
fe98a03c53 * ext/socket/extconf.rb: suppress a warning.
* ext/extmk.rb: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26426 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-01-26 12:34:51 +00:00
nobu
815fccb4dc * ext/socket/extconf.rb: use have_struct_member.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26210 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-12-30 21:01:13 +00:00
nobu
1069e0f335 * ext/socket/extconf.rb: fix for wide-getaddrinfo option.
* ext/socket/addrinfo.c: rename {addr,name}info functions to ensure
  those are used on darwin.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26209 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-12-30 20:56:41 +00:00
kanemoto
501e9360dd * ext/socket/extconf.rb : Compilation failure on AIX.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25552 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-28 16:41:33 +00:00
usa
f73eaeb3a6 * ext/socket/extconf.rb: if ipv6 is enabled, the version of Windows
most be XP or later.
	  [ruby-core:24601]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24517 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-12 12:10:10 +00:00
usa
9d43aefe92 * ext/socket/extconf.rb: define IPPROTO_IPV6 macro for recent Windows
SDK.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24241 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-22 11:43:32 +00:00
usa
52d3e529ab * ext/socket/extconf.rb: ipv6 support is disabled by default on mswin.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24239 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-22 10:24:37 +00:00
usa
6b7603194d * ext/socket/extconf.rb: enable ipv6 support for win32.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24237 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-22 08:30:41 +00:00
takano32
867cd89920 * ext/socket/ancdata.c: not use pktinfo.ipi_spec_dst if not defined
* ext/socket/extconf.rb: define HAVE_IPI_SPEC_DST


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23003 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-18 08:04:17 +00:00
akr
7a01268aeb * ext/socket/basicsocket.c (bsock_getpeereid): implemented for Solaris
using getpeerucred.

* ext/socket/extconf.rb: check ucred.h and getpeerucred.

* ext/socket/rubysocket.h: include ucred.h if available.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22256 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-12 12:43:04 +00:00
akr
b4e50055c3 * ext/socket/extconf.rb: check getpeereid.
* ext/socket/basicsocket.c (bsock_getpeereid): new method.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22219 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-11 01:22:08 +00:00
akr
9e45748143 * ext/socket/extconf.rb: check sys/param.h and sys/ucred.h.
* ext/socket/rubysocket.h: include sys/param.h and sys/ucred.h.

* ext/socket/option.c (inspect_local_peercred): new function to show
  LOCAL_PEERCRED socket option on FreeBSD.
  (sockopt_inspect): show as LOCAL_* socket option if AF_UNIX and level
  is 0.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22137 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-08 15:37:55 +00:00
akr
411e9997d2 * ext/socket/extconf.rb: check struct cmsgcred.
* ext/socket/ancdata.c (anc_inspect_passcred_credentials): add
  "(ucred)".
  (anc_inspect_socket_creds): show struct cmsgcred too, for FreeBSD.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22129 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-08 12:53:55 +00:00
akr
e960cf417a * ext/socket/extconf.rb: check struct sockcred.
* ext/socket/ancdata.c (anc_inspect_socket_creds): new function to
  show SCM_CREDS on NetBSD.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22126 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-08 11:36:18 +00:00
nobu
7c93e56560 * lib/mkmf.rb (have_header): needs dependent headers if trying to
compile.

* ext/socket/extconf.rb: net/if.h depends on other headers.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22103 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-07 02:44:07 +00:00
akr
12a5cf8287 revert useless change part in the previous commit.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22023 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-03 16:40:42 +00:00
akr
20ac101dae * ext/socket/extconf.rb: fix struct in_pktinfo and struct in6_pktinfo
detection.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22022 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-03 16:29:23 +00:00
nobu
b256c5fb8f * ext/socket/extconf.rb (in_pktinfo, in6_pktinfo),
ext/socket/ancdata.c: defined in w32api/ws2tcpip.h on cygwin but
  cannot compile for some reason.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21985 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-02 22:58:03 +00:00
akr
61fc0c6cf4 * ext/socket/rubysocket.h (cmsg_type_arg): declared.
(Init_ancdata): ditto.

* ext/socket/init.c (Init_socket_init): call Init_ancdata.

* ext/socket/constants.c (cmsg_type_arg): defined.

* ext/socket/depend: add dependency for ancdata.o.

* ext/socket/mkconstants.rb: generate scm_optname_to_int.
  more constants.

* ext/socket/extconf.rb: add ancdata.o.

* ext/socket/ancdata.c: new file.  new method
  BasicSocket#{sendmsg,sendmsg_nonblock,recvmsg,recvmsg_nonblock}



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21943 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-02 02:51:02 +00:00
akr
ef9206bbea * ext/socket/rubysocket.h (rb_cSockOpt): declared.
(sockopt_new): ditto.
  (Init_sockopt): ditto.

* ext/socket/init.c (Init_socket_init): call Init_sockopt.

* ext/socket/depend: add dependency for option.o

* ext/socket/mkconstants.rb: generate intern_level, intern_so_optname,
  intern_ip_optname, intern_ipv6_optname, intern_tcp_optname,
  intern_udp_optname and intern_scm_optname.

* ext/socket/extconf.rb: add option.o.

* ext/socket/basicsocket.c (bsock_setsockopt): accept Socket::Option
  object.
  (bsock_getsockopt): return Socket::Option object.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21936 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-02 01:53:02 +00:00
nobu
044965df97 * ext/socket/extconf.rb ($distcleanfiles): fixed typo.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21738 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-22 08:02:41 +00:00
nobu
d597a39042 * ext/socket/extconf.rb ($distcleanfiles): removes constdefs.[ch].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21737 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-22 07:57:41 +00:00
akr
bd3cdcf394 * ext/socket/socket.c (socket_s_list_ip_address): new method.
(sockaddr_obj): new function.

* ext/socket/rubysocket.h: include ifaddrs.h, sys/ioctl.h,
  sys/sockio.h, net/if.h if available.
  (addrinfo_new): declared.

* ext/socket/raddrinfo.c (addrinfo_new): exported.

* ext/socket/extconf.rb: check ifaddrs.h, sys/ioctl.h, sys/sockio.h,
  net/if.h and getifaddrs.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21699 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-20 11:19:09 +00:00
akr
97cbab78dc * ext/socket: split files for each class.
* ext/socket/rubysocket.h: common header.

* ext/socket/basicsocket.c: new file for BasicSocket.

* ext/socket/ipsocket.c: new file for IPSocket.

* ext/socket/tcpsocket.c: new file for TCPSocket.

* ext/socket/tcpserver.c: new file for TCPServer.

* ext/socket/sockssocket.c: new file for SOCKSSocket.

* ext/socket/udpsocket.c: new file for UDPSocket.

* ext/socket/unixsocket.c: new file for UNIXSocket.

* ext/socket/unixserver.c: new file for UNIXServer.

* ext/socket/socket.c: now for Socket.

* ext/socket/raddrinfo.c: new file for AddrInfo and name resolution.

* ext/socket/constants.c: new file for constants.

* ext/socket/init.c: new file for utilities.

* ext/socket/mkconstants.rb: export *_to_int.

* ext/socket/extconf.rb: add new object files.

* ext/socket/depend: add dependencies for new files.

* ext/.document: add new files.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21619 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-17 04:11:27 +00:00
nobu
f188bf2acb * ext/socket/extconf.rb (gai_strerror): checks if available and if
returns const pointer.

* ext/socket/getaddrinfo.c (gai_strerror): defines only if non
  available.  [ruby-core:21328]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21505 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-14 04:09:05 +00:00
akr
84775721bc * ext/socket/socket.c (rb_getaddrinfo): use getaddrinfo with GVL if
getaddrinfo.c/getnameinfo.c is used.  They are not thread safe
  because gethostbyname/gethostbyaddr is used.
  (rb_getnameinfo): ditto.

* extconf.rb: define GETADDRINFO_EMU if getaddrinfo.c/getnameinfo.c is
  used.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21494 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-13 12:41:12 +00:00
usa
370ffc6a2a * ext/socket/extconf.rb: use headers instead of "netdb.h" in checking
getnameinfo() and getaddrinfo() because Windows doesn't have it.
	  see [ruby-dev:37757].

	* ext/socket/sockport.h (SA_LEN): use sockaddr_in6 when defined AF_INET6
	  if INET6 is not defined.  winsock2's getaddrinfo() returns
	  sockaddr_in6 if ipv6 is available.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21476 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-12 17:59:45 +00:00
nobu
a64266a728 * configure.in (rb_cv_missing__dtos18, rb_cv_missing_fconvert),
ext/digest/md5/md5.c, ext/openssl/ossl.c (main),
  ext/socket/extconf.rb (ipv6, wide-getaddrinfo): main should be int.

* main.c (main), win32/winmain.c, wince/wincemain.c (WinMain): envp is
  no longer used so long time.  based on a patch from Peter Bowen at
  [ruby-core:18208]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18459 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-09 23:15:08 +00:00
naruse
48e21d2051 * eval_intern.h: Add support to Haiku. see [ruby-core:18110]
* include/ruby/defines.h: ditto.

* configure.in: ditto.

* thread_pthread.c: ditto.

* io.c: ditto.

* lib/mkmf.rb: ditto.

* ext/socket/getaddrinfo.c: ditto.

* ext/socket/extconf.rb: ditto.

* ext/socket/socket.c: ditto.

* ext/socket/addrinfo.h: ditto.

* ext/socket/getnameinfo.c: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18402 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-06 20:52:44 +00:00