* 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
This commit is contained in:
akr 2009-02-02 01:53:02 +00:00
parent a2d8643e93
commit ef9206bbea
10 changed files with 428 additions and 8 deletions

View file

@ -159,6 +159,7 @@ extern VALUE rb_cUNIXServer;
#endif
extern VALUE rb_cSocket;
extern VALUE rb_cAddrInfo;
extern VALUE rb_cSockOpt;
extern VALUE rb_eSocket;
@ -242,6 +243,8 @@ VALUE sock_listen(VALUE sock, VALUE log);
VALUE s_accept(VALUE klass, int fd, struct sockaddr *sockaddr, socklen_t *len);
VALUE s_accept_nonblock(VALUE klass, rb_io_t *fptr, struct sockaddr *sockaddr, socklen_t *len);
VALUE sockopt_new(int level, int optname, VALUE data);
void Init_basicsocket(void);
void Init_ipsocket(void);
void Init_tcpsocket(void);
@ -252,6 +255,7 @@ void Init_unixsocket(void);
void Init_unixserver(void);
void Init_socket_constants(void);
void Init_addrinfo(void);
void Init_sockopt(void);
void Init_socket_init(void);
#endif