diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-05-11 08:32:26 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-05-11 08:32:26 +0000 |
commit | b323d7d54c1f9d22799f636014a438f9da951f3f (patch) | |
tree | 331a1771e3bee4d097d3ea2bbf658d08243e70c5 /ext/socket/rubysocket.h | |
parent | fade664f916d001d1e2d53cbccd132f6b039fb7d (diff) | |
download | ruby-b323d7d54c1f9d22799f636014a438f9da951f3f.tar.gz |
* ext/socket: New method, Socket.getifaddrs, implemented.
[ruby-core:54777] [Feature #8368]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40639 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/socket/rubysocket.h')
-rw-r--r-- | ext/socket/rubysocket.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/ext/socket/rubysocket.h b/ext/socket/rubysocket.h index 8144872007..d049d0f570 100644 --- a/ext/socket/rubysocket.h +++ b/ext/socket/rubysocket.h @@ -44,6 +44,13 @@ # include <netdb.h> #endif +#ifdef HAVE_NETPACKET_PACKET_H +# include <netpacket/packet.h> +#endif +#ifdef HAVE_NET_ETHERNET_H +# include <net/ethernet.h> +#endif + #include <errno.h> #ifdef HAVE_SYS_UN_H @@ -87,6 +94,9 @@ #ifdef HAVE_UCRED_H # include <ucred.h> #endif +#ifdef HAVE_NET_IF_DL_H +# include <net/if_dl.h> +#endif #ifndef HAVE_TYPE_SOCKLEN_T typedef int socklen_t; @@ -169,6 +179,9 @@ typedef union { #ifdef HAVE_TYPE_STRUCT_SOCKADDR_UN struct sockaddr_un un; #endif +#ifdef HAVE_TYPE_STRUCT_SOCKADDR_DL + struct sockaddr_dl dl; /* AF_LINK */ +#endif struct sockaddr_storage storage; char place_holder[2048]; /* sockaddr_storage is not enough for Unix domain sockets on SunOS and Darwin. */ } union_sockaddr; @@ -267,6 +280,9 @@ VALUE rsock_addrinfo_inspect_sockaddr(VALUE rai); VALUE rsock_make_ipaddr(struct sockaddr *addr, socklen_t addrlen); VALUE rsock_ipaddr(struct sockaddr *sockaddr, socklen_t sockaddrlen, int norevlookup); VALUE rsock_make_hostent(VALUE host, struct addrinfo *addr, VALUE (*ipaddr)(struct sockaddr *, socklen_t)); +VALUE rsock_inspect_sockaddr(struct sockaddr *addr, socklen_t socklen, VALUE ret); +socklen_t rsock_sockaddr_len(struct sockaddr *addr); +VALUE rsock_sockaddr_obj(struct sockaddr *addr, socklen_t len); int rsock_revlookup_flag(VALUE revlookup, int *norevlookup); @@ -344,6 +360,7 @@ void rsock_init_socket_constants(void); void rsock_init_ancdata(void); void rsock_init_addrinfo(void); void rsock_init_sockopt(void); +void rsock_init_sockifaddr(void); void rsock_init_socket_init(void); NORETURN(void rsock_sys_fail_host_port(const char *, VALUE, VALUE)); |