summaryrefslogtreecommitdiffstats
path: root/ext/socket/init.c
Commit message (Collapse)AuthorAgeFilesLines
* * ext/socket/init.c (rsock_init_sock): mswin doesn't have S_IFSOCKusa2009-10-151-0/+5
| | | | | | | | | flag in st_mode of struct stat. so, use rb_w32_issocket() function instead of S_ISSOCK macro. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@25339 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/init.c (rsock_init_sock): validate file descriptor.akr2009-10-141-0/+6
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@25336 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/init.c (rsock_getfamily): return AF_UNSPEC if getsocknameakr2009-07-171-1/+1
| | | | | | | is failed. [ruby-core:24383] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@24160 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (rb_mWaitReadable): defined.akr2009-03-191-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (rb_mWaitWritable): defined. (io_getpartial): extend IO::WaitReadable on EWOULDBLOCK and EAGAIN. (rb_io_write_nonblock): extend IO::WaitWritable on EWOULDBLOCK and EAGAIN. * error.c (make_errno_exc): extracted from rb_sys_fail. (rb_mod_sys_fail): new function. * include/ruby/ruby.h (rb_mod_sys_fail): declared. (rb_mWaitReadable): declared. (rb_mWaitWritable): declared. * ext/socket/init.c (rsock_s_recvfrom_nonblock): extend IO::WaitReadable on EWOULDBLOCK and EAGAIN. (rsock_s_accept_nonblock): extend IO::WaitReadable on EWOULDBLOCK, EAGAIN, ECONNABORTED and EPROTO. * ext/socket/socket.c (sock_connect_nonblock): extend IO::WaitWritable on EINPROGRESS. * ext/socket/ancdata.c (bsock_sendmsg_internal): extend IO::WaitWritable on EWOULDBLOCK and EAGAIN. (bsock_recvmsg_internal): extend IO::WaitReadable on EWOULDBLOCK and EAGAIN. * ext/openssl/ossl_ssl.c (ossl_ssl_read_internal): raise SSLError extended by IO::WaitReadable/IO::WaitWritable on SSL_ERROR_WANT_READ/SSL_ERROR_WANT_WRITE. * ext/openssl/ossl.c (ossl_make_error): extracted from ossl_raise. (ossl_exc_new): new function. * ext/openssl/ossl.h (ossl_exc_new): declared. * lib/net/protocol.rb (rbuf_fill): rescue IO::WaitReadable and IO::WaitWritable. [ruby-core:22539], [ruby-dev:38140] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@23006 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/init.c (wait_connectable0): remove unreachable code.akr2009-03-131-2/+0
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@22936 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/ (rsock_getfamily): renamed from rb_sock_getfamily.akr2009-03-011-1/+2
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@22696 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/ (rsock_make_hostent): renamed from sock_make_hostent.akr2009-03-011-2/+2
| | | | | | | | | | | | | (rsock_addrinfo): renamed from sock_addrinfo. (rsock_getaddrinfo): renamed from sock_getaddrinfo. (rsock_socket): renamed from ruby_socket. (rsock_sock_s_socketpair): renamed from sock_s_socketpair. (rsock_connect): renamed from ruby_connect. * ext/socket/socket.c (sock_listen): make it static. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@22686 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket: add rsock_prefix.akr2009-03-011-21/+21
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@22684 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/init.c (s_recvfrom): use rb_io_wait_readable afterakr2009-02-221-0/+3
| | | | | | | | recvfrom. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@22526 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/init.c (s_recvfrom_nonblock): handles EAGAIN too.nobu2009-02-221-2/+16
| | | | | | | | * ext/socket/init.c (s_accept_nonblock): ditto, and EPROTO depends on platforms. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@22504 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (io_getpartial): error message describes what should beakr2009-02-211-0/+4
| | | | | | | | | | | | | | | | | waited after nonblocking error. (rb_io_write_nonblock): ditto. * ext/socket/init.c (s_recvfrom_nonblock): ditto. (s_accept_nonblock): ditto. * ext/socket/socket.c (sock_connect_nonblock): ditto. * ext/socket/ancdata.c (bsock_sendmsg_internal): ditto. (bsock_recvmsg_internal): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@22486 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/init.c (struct recvfrom_arg): use structakr2009-02-101-9/+9
| | | | | | | | | | | | | | | | | | sockaddr_storage. (recvfrom_blocking): follow struct recvfrom_arg change. (s_recvfrom): ditto. (s_recvfrom_nonblock): use struct sockaddr_storage. * ext/socket/socket.c (sock_accept): use struct sockaddr_storage. (sock_accept_nonblock): ditto. (sock_sysaccept): ditto. * ext/socket/ancdata.c (bsock_recvmsg_internal): use struct sockaddr_storage. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@22214 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/rubysocket.h (level_arg): add family argument.akr2009-02-091-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | (optname_arg): ditto. (cmsg_type_arg): ditto. (rb_sock_getfamily): declared. * ext/socket/constants.c (level_arg): add family argument. (optname_arg): ditto. (cmsg_type_arg): ditto. * ext/socket/init.c (rb_sock_getfamily): defined. * ext/socket/option.c (sockopt_initialize): give family for level_arg and optname_arg. (sockopt_s_int): ditto. * ext/socket/basicsocket.c (bsock_setsockopt): ditto. (bsock_getsockopt): ditto. * ext/socket/ancdata.c (ancillary_initialize): ditto. (ancillary_s_int): ditto. (ancillary_cmsg_is_p): ditto. (bsock_sendmsg_internal): ditto. (bsock_recvmsg_internal): use rb_sock_getfamily. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@22184 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket: AddrInfo is renamed to Addrinfo. [ruby-dev:37876]akr2009-02-051-1/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@22077 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/rubysocket.h (cmsg_type_arg): declared.akr2009-02-021-0/+1
| | | | | | | | | | | | | | | | | | | | | | (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: http://svn.ruby-lang.org/repos/ruby/trunk@21943 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/rubysocket.h (rb_cSockOpt): declared.akr2009-02-021-0/+1
| | | | | | | | | | | | | | | | | | | | | | | (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: http://svn.ruby-lang.org/repos/ruby/trunk@21936 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/init.c (socks_connect_blocking): moved fromakr2009-01-271-0/+9
| | | | | | | | | | sockssocket.c. [ruby-dev:37834] * sockssocket.c (socks_init): don't omit "int" type. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21804 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket: split files for each class.akr2009-01-171-0/+515
* 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: http://svn.ruby-lang.org/repos/ruby/trunk@21619 b2dd03c8-39d4-4d8f-98ff-823fe69b080e