* ext/socket/raddrinfo.c (nogvl_getaddrinfo): work around for Ubuntu

13.04's getaddrinfo issue with mdns4. [ruby-list:49420]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41215 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
naruse 2013-06-10 11:59:36 +00:00
Родитель 6735633663
Коммит 52a802a428
2 изменённых файлов: 15 добавлений и 1 удалений

Просмотреть файл

@ -1,3 +1,8 @@
Mon Jun 10 20:58:11 2013 NARUSE, Yui <naruse@ruby-lang.org>
* ext/socket/raddrinfo.c (nogvl_getaddrinfo): work around for Ubuntu
13.04's getaddrinfo issue with mdns4. [ruby-list:49420]
Mon Jun 10 19:34:39 2013 Tanaka Akira <akr@fsij.org>
* bignum.c (rb_integer_pack): Returns sign instead of words.

Просмотреть файл

@ -157,9 +157,18 @@ struct getaddrinfo_arg
static void *
nogvl_getaddrinfo(void *arg)
{
int ret;
struct getaddrinfo_arg *ptr = arg;
return (void *)(VALUE)getaddrinfo(ptr->node, ptr->service,
getaddrinfo(ptr->node, ptr->service,
ptr->hints, ptr->res);
#ifdef __linux__
/* On Linux (mainly Ubuntu 13.04) /etc/nsswitch.conf has mdns4 and
* it cause getaddrinfo to return EAI_SYSTEM/ENOENT. [ruby-list:49420]
*/
if (ret == EAI_SYSTEM && errno == ENOENT)
ret = EAI_NONAME;
#endif
return (void *)(VALUE)ret;
}
#endif