aboutsummaryrefslogtreecommitdiffstats
path: root/ext/socket
Commit message (Collapse)AuthorAgeFilesLines
* * ext/socket/unixsocket.c (rsock_init_unixsock): Open a socketakr2014-05-281-4/+5
| | | | | | | | | after path length check. This fixes a fd leak by TestSocket_UNIXSocket#test_too_long_path. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46218 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/ifaddr.c (ifaddr_inspect_flags): support IFF_SIMPLEX.naruse2014-05-271-0/+3
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46173 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/mkconstants.rb: More constantsakr2014-05-231-0/+20
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46063 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/mkconstants.rb: More TCP option constants.akr2014-05-221-14/+24
| | | | | | | | Describe Linux and glibc versions. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46048 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/option.c: Fix complation error on Android.akr2014-05-211-0/+56
| | | | | | | | Bionic doesn't define TCP state constants. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46034 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/extconf.rb: Don't check fields of struct tcp_info if theakr2014-05-191-54/+55
| | | | | | | structure is not available. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46024 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/option.c (inspect_tcp_info): Permit longer data. (glibcakr2014-05-191-1/+4
| | | | | | | | | 2.7 adds tcpi_rcv_rtt, tcpi_rcv_space and tcpi_total_retrans to struct tcp_info.) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46022 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/option.c (inspect_tcp_info): New function to inspect struct ↵akr2014-05-193-0/+325
| | | | | | | | | | | | | | tcp_info. (sockopt_inspect): Use inspect_tcp_info. * ext/socket/extconf.rb: Check tcp_info related things. * ext/socket/rubysocket.h: Include netinet/tcp_fsm.h if available. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46017 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/ifaddr.c (IS_IFADDRS): Unused macro removed.akr2014-05-111-1/+0
| | | | | | | | | | * ext/strscan/strscan.c (BUFSIZE): Ditto. * ext/zlib/zlib.c (OBJ_IS_FREED): Ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45922 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/mkconstants.rb: Add IP_TRANSPARENT.akr2014-05-051-0/+1
| | | | | | | | IP_TRANSPARENT is provieded since glibc-2.12. Reported by Eliezer Croitoru. [ruby-core:50372] [Bug #7476] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45830 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/socket.c (sock_s_getnameinfo): Save errno for EAI_SYSTEM.akr2014-04-071-1/+5
| | | | | | | | Reported by Saravana kumar. [ruby-core:61820] [Bug #9697] Fixed by Heesob Park. [ruby-core:61868] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45530 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* option.c: use rb_w32_inet_ptonnobu2014-02-231-0/+4
| | | | | | | * ext/socket/option.c (inet_pton): use rb_w32_inet_pton, instead of inet_ntop directly, which is unavailable on older version Windows. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45151 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* raddrinfo.c: suppress warningsnobu2014-02-231-11/+9
| | | | | | | | * ext/socket/raddrinfo.c (numeric_getaddrinfo): move conditionally used variables inside the block, to suppress warnings on platforms where inet_pton() is not available. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45146 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Fix a filename.akr2014-02-221-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45101 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix second argument of MEMZEROkazu2014-02-211-1/+1
| | | | | | | * ext/socket/raddrinfo.c (rb_getaddrinfo): second argument of MEMZERO is type. Coverity Scan found this bug. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45087 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/init.c (wait_connectable): break if the socket isshugo2014-02-211-2/+6
| | | | | | | | | | | | writable to avoid infinite loops on FreeBSD and other platforms which conforms to SUSv3. This problem cannot be reproduced with loopback interfaces, so it's hard to write test code. rsock_connect() and wait_connectable() are overly complicated, so they should be refactored, but I commit this fix as a workaround for the release of Ruby 1.9.3 scheduled on Feb 24. [ruby-core:60940] [Bug #9547] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45084 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* socket: sendmsg/recvmsg only retries blocking on errorsnormal2014-02-211-10/+8
| | | | | | | | * ext/socket/ancdata.c (bsock_sendmsg_internal): only retry on error (bsock_recvmsg_internal): ditto * test/socket/test_unix.rb: test above for infinite loop git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45066 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/raddrinfo.c (numeric_getaddrinfo): Use xcalloc.akr2014-02-201-4/+2
| | | | | | | | | Suggested by Eric Wong. https://bugs.ruby-lang.org/issues/9525#note-14 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45063 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket: Bypass getaddrinfo() if node and serv are numeric.akr2014-02-194-9/+128
| | | | | | | | | | | | | | | | | | | | | Reporeted by Naotoshi Seo. [ruby-core:60801] [Bug #9525] * ext/socket/extconf.rb: Detect struct sockaddr_in6.sin6_len. * ext/socket/sockport.h (SET_SIN6_LEN): New macro. (INIT_SOCKADDR_IN6): Ditto. * ext/socket/rubysocket.h (struct rb_addrinfo): Add allocated_by_malloc field. * ext/socket/raddrinfo.c (numeric_getaddrinfo): New function. (rb_getaddrinfo): Call numeric_getaddrinfo at first. (rb_freeaddrinfo): Free struct addrinfo properly when it is allocated by numeric_getaddrinfo. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45047 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket: Wrap struct addrinfo by struct rb_addrinfo.akr2014-02-195-76/+100
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45046 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/ipsocket.c (ip_s_getaddress): Don't access freed memory.akr2014-02-191-2/+3
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45045 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/intern.h,akr2014-02-141-1/+0
| | | | | | | | | | | | | | | | | | | | | include/ruby/io.h, include/ruby/ruby.h, include/ruby/win32.h, include/ruby/backward/rubysig.h, bignum.c, gc.c, io.c, process.c, safe.c, struct.c, thread.c, ext/socket/rubysocket.h, ext/-test-/old_thread_select: Remove deprecated definitions [ruby-core:60581] [Feature #9502] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44955 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* socket: split out SOCK_CLOEXEC versions of wrappers for readabilitynormal2014-01-312-19/+29
| | | | | | | | * ext/socket/init.c (rsock_socket0): split out SOCK_CLOEXEC version * ext/socket/socket.c (rsock_socketpair0): ditto [ruby-core:60377] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44776 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* socket.c: suppress warningsnobu2014-01-311-0/+4
| | | | | | | * ext/socket/init.c (rsock_socket0): suppress unused label warnings. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44775 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* socket.c: suppress warningsnobu2014-01-291-0/+4
| | | | | | | * ext/socket/socket.c (rsock_socketpair0): suppress unused label warnings. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket: Avoid redundant fcntl/fstat syscalls for cloexecakr2014-01-285-20/+83
| | | | | | | | | sockets. Patch by Eric Wong. [ruby-core:59429] [Feature #9330] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44728 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Several more OS information for TYPE_IP_MULTICAST_LOOP andakr2014-01-211-1/+12
| | | | | | | TYPE_IP_MULTICAST_TTL. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44678 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/socket/option.c: fix typonobu2014-01-201-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44669 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/option.c: Use "int" for IP_MULTICAST_LOOP andakr2014-01-201-1/+1
| | | | | | | IP_MULTICAST_TTL on Windows. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44668 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/option.c: Use "int" for IP_MULTICAST_LOOP andakr2014-01-201-1/+1
| | | | | | | | IP_MULTICAST_TTL on Mac OS X. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44667 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/option.c: Use "byte" as default argument forakr2014-01-201-4/+13
| | | | | | | | | IP_MULTICAST_LOOP and IP_MULTICAST_TTL socket option to follow the original multicast implementation. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44664 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/option.c: Use preprocessor macros to avoid repeatedakr2014-01-201-35/+24
| | | | | | | conditionals. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44663 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* socket/option.c: helper functionsnobu2014-01-191-12/+26
| | | | | | | * ext/socket/option.c (sockopt_pack_byte, sockopt_pack_int): extract helper functions to pack integers in a String. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44658 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* socket/option.c: revert r44647nobu2014-01-191-14/+20
| | | | | | | * ext/socket/option.c (NUM2SOCKOPT, sockopt_value): revert because these names are confusing. [ruby-dev:47903] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44656 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/nkf/nkf-utf8/nkf.c: fix typo by @windwiny [fix GH-506]hsbt2014-01-192-3/+3
| | | | | | | | | | | * ext/openssl/ossl_ssl.c: ditto * ext/psych/yaml/scanner.c: ditto * ext/socket/init.c: ditto * ext/socket/socket.c: ditto * ext/tk/tcltklib.c: ditto * ext/win32ole/win32ole.c: ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44649 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* socket/option.c: socket option variationsnobu2014-01-191-20/+14
| | | | | | | * ext/socket/option.c (NUM2SOCKOPT, sockopt_value): extract to wrap socket option variations. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44647 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket: Avoid unnecessary ppoll/select on Linux.akr2014-01-184-4/+20
| | | | | | | | Patch by Eric Wong. [ruby-core:57950] [Bug #9039] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44643 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* [DOC]akr2014-01-181-4/+0
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44639 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/option.c: IP_MULTICAST_LOOP and IP_MULTICAST_TTL socketakr2014-01-181-7/+7
| | | | | | | | | option takes a byte on OpenBSD. Fixed by Jeremy Evans. [ruby-core:59496] [Bug #9350] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44638 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* socket.c: format flagsnobu2014-01-041-14/+4
| | | | | | | | | * ext/socket/socket.c (rsock_syserr_fail_host_port): use format flags, '+' to inspect, ' ' to quote unprintables. * ext/socket/socket.c (rsock_syserr_fail_path): ditto. * ext/socket/socket.c (rsock_syserr_fail_raddrinfo): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44497 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* socket.c: use rb_syserr_failnobu2014-01-042-17/+42
| | | | | | | | | | | | | | * ext/socket/socket.c (rsock_syserr_fail_host_port): add errno argument version anduse rb_syserr_fail_str() instead of rb_sys_fail_str() with restoring errno. * ext/socket/socket.c (rsock_syserr_fail_path): ditto, and rb_syserr_fail(). * ext/socket/socket.c (rsock_sys_fail_sockaddr): ditto, use rsock_syserr_fail_raddrinfo(). * ext/socket/socket.c (rsock_sys_fail_raddrinfo): ditto. * ext/socket/socket.c (setup_domain_and_type): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44496 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/socket.c (rsock_sys_fail_host_port): save and restore errnocharliesome2014-01-031-0/+13
| | | | | | | | | | | | before calling rb_sys_fail_str to prevent [BUG] errno == 0. Patch by Eric Wong. [ruby-core:59498] [Bug #9352] * ext/socket/socket.c (rsock_sys_fail_path): ditto * ext/socket/socket.c (rsock_sys_fail_sockaddr): ditto * ext/socket/socket.c (rsock_sys_fail_raddrinfo): ditto * ext/socket/socket.c (rsock_sys_fail_raddrinfo_or_sockaddr): ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44490 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/lib/socket.rb: Don't test $! in "ensure" clause becauseakr2013-12-131-30/+49
| | | | | | | | | | | | | it may be set before the body. Reported by ko1 and mrkn. [ruby-core:59088] [Bug #9247] * lib/cgi/core.rb: Ditto. * lib/drb/ssl.rb: Ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44184 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/ifaddr.c (rsock_getifaddrs): fix possible memory leak.mame2013-10-021-0/+4
| | | | | | | | | When a system had no interface, this function used xmalloc for root but did not return any reference to it. This patch fixes it by immediately returning an empty array if no interface is found. Coverity Scan found this bug. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43121 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/mkconstants.rb: define MSG_FASTOPEN.glass2013-09-151-0/+1
| | | | | | [ruby-core:57138] [Feature #8897] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42948 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c: Remove spaces between SI prefix and unit to followakr2013-09-091-2/+2
| | | | | | | | | | | | | | SI brochure. http://www.bipm.org/en/si/si_brochure/ https://www.nmij.jp/library/units/si/ * time.c: Ditto. * ext/socket/ancdata.c: Ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42897 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/mkconstants.rb (TCP_FASTOPEN): Defined for TCP fast open.akr2013-09-071-0/+1
| | | | | | | [ruby-core:57048] [Feature #8871] patch by Masaki Matsushita. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42865 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/unixserver.c: [DOC] Document #acceptzzak2013-08-194-17/+19
| | | | | | | | | | * ext/socket/tcpserver.c: ditto * ext/socket/udpsocket.c: [DOC] Fix indentation of documentation * ext/socket/socket.c: ditto Patches by David Rodríguez [ruby-core:56734] [Bug #8802] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42629 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/ipsocket.c (init_inetsock_internal): Don't try mismachedakr2013-07-011-1/+1
| | | | | | | | address family if already failed. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41731 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/ipsocket.c (init_inetsock_internal): Use an addressakr2013-07-011-2/+7
| | | | | | | | | family for local address wihch is different to the remote address if no other choice. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41724 b2dd03c8-39d4-4d8f-98ff-823fe69b080e