From 48e21d2051ea39b073c204f0359e2778ab9660e2 Mon Sep 17 00:00:00 2001 From: naruse Date: Wed, 6 Aug 2008 20:52:44 +0000 Subject: * 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 --- ext/socket/addrinfo.h | 4 ++++ ext/socket/extconf.rb | 5 ++++- ext/socket/getaddrinfo.c | 4 +++- ext/socket/getnameinfo.c | 5 ++++- ext/socket/socket.c | 2 +- 5 files changed, 16 insertions(+), 4 deletions(-) (limited to 'ext/socket') diff --git a/ext/socket/addrinfo.h b/ext/socket/addrinfo.h index e93adafba6..f6061f1e26 100644 --- a/ext/socket/addrinfo.h +++ b/ext/socket/addrinfo.h @@ -108,7 +108,9 @@ #define AI_CANONNAME 0x00000002 /* fill ai_canonname */ #define AI_NUMERICHOST 0x00000004 /* prevent name resolution */ /* valid flags for addrinfo */ +#ifndef __HAIKU__ #define AI_MASK (AI_PASSIVE | AI_CANONNAME | AI_NUMERICHOST) +#endif #define AI_ALL 0x00000100 /* IPv6 and IPv4-mapped (with AI_V4MAPPED) */ #define AI_V4MAPPED_CFG 0x00000200 /* accept IPv4-mapped if kernel supports */ @@ -164,7 +166,9 @@ extern void freeaddrinfo __P((struct addrinfo *)); #if defined __UCLIBC__ const #endif +#ifndef __HAIKU__ extern char *gai_strerror __P((int)); +#endif /* In case there is no definition of offsetof() provided - though any proper Standard C system should have one. */ diff --git a/ext/socket/extconf.rb b/ext/socket/extconf.rb index 7354a0f300..5479d4d009 100644 --- a/ext/socket/extconf.rb +++ b/ext/socket/extconf.rb @@ -9,6 +9,9 @@ when /cygwin/ when /beos/ test_func = "socket" have_library("net", "socket") +when /haiku/ + test_func = "socket" + have_library("network", "socket") when /i386-os2_emx/ test_func = "socket" have_library("socket", "socket") @@ -30,7 +33,7 @@ if have_header("arpa/inet.h") end ipv6 = false -default_ipv6 = /cygwin/ !~ RUBY_PLATFORM +default_ipv6 = /cygwin|beos|haiku/ !~ RUBY_PLATFORM if enable_config("ipv6", default_ipv6) if checking_for("ipv6") {try_link(< diff --git a/ext/socket/getaddrinfo.c b/ext/socket/getaddrinfo.c index d97012a3c5..0ff2d5f762 100644 --- a/ext/socket/getaddrinfo.c +++ b/ext/socket/getaddrinfo.c @@ -42,7 +42,7 @@ #include #ifndef _WIN32 #include -#if defined(__BEOS__) +#if defined(__BEOS__) && !defined(__HAIKU__) # include #else # include @@ -194,6 +194,7 @@ if (pai->ai_flags & AI_CANONNAME) {\ #define ERR(err) { error = (err); goto bad; } +/* #if defined __UCLIBC__ const #endif @@ -204,6 +205,7 @@ gai_strerror(int ecode) ecode = EAI_MAX; return (char *)ai_errlist[ecode]; } +*/ void freeaddrinfo(struct addrinfo *ai) diff --git a/ext/socket/getnameinfo.c b/ext/socket/getnameinfo.c index 6214359cd2..37f60fc83f 100644 --- a/ext/socket/getnameinfo.c +++ b/ext/socket/getnameinfo.c @@ -38,7 +38,7 @@ #include #include #ifndef _WIN32 -#if defined(__BEOS__) +#if defined(__BEOS__) && !defined(__HAIKU__) # include #else # include @@ -110,6 +110,9 @@ static struct afd { #define ENI_FAMILY 5 #define ENI_SALEN 6 +#ifdef __HAIKU__ +#define HAVE_INET_NTOP +#endif #ifndef HAVE_INET_NTOP static const char * inet_ntop(int af, const void *addr, char *numaddr, size_t numaddr_len) diff --git a/ext/socket/socket.c b/ext/socket/socket.c index 81c5a8e170..7665ed43eb 100644 --- a/ext/socket/socket.c +++ b/ext/socket/socket.c @@ -29,7 +29,7 @@ #endif #ifndef _WIN32 -#if defined(__BEOS__) +#if defined(__BEOS__) && !defined(__HAIKU__) # include #else # include -- cgit v1.2.3