From e54f78c61cac7b0d7fe1e89d337b9ab06f40bdb0 Mon Sep 17 00:00:00 2001 From: moteus Date: Mon, 27 May 2013 11:25:31 +0400 Subject: Fix. setsockname fails with "*" as host. Add. test_bind.lua --- src/inet.c | 3 +++ src/tcp.c | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/inet.c b/src/inet.c index b28852b..0469756 100644 --- a/src/inet.c +++ b/src/inet.c @@ -478,6 +478,9 @@ const char *inet_trybind(p_socket ps, const char *address, const char *serv, struct addrinfo *iterator = NULL, *resolved = NULL; const char *err = NULL; t_socket sock = *ps; + /* translate luasocket special values to C */ + if (strcmp(address, "*") == 0) address = NULL; + if (!serv) serv = "0"; /* try resolving */ err = socket_gaistrerror(getaddrinfo(address, serv, bindhints, &resolved)); if (err) { diff --git a/src/tcp.c b/src/tcp.c index ca8eec2..60c1e8a 100644 --- a/src/tcp.c +++ b/src/tcp.c @@ -222,7 +222,6 @@ static int meth_bind(lua_State *L) bindhints.ai_socktype = SOCK_STREAM; bindhints.ai_family = tcp->family; bindhints.ai_flags = AI_PASSIVE; - address = strcmp(address, "*")? address: NULL; err = inet_trybind(&tcp->sock, address, port, &bindhints); if (err) { lua_pushnil(L); -- cgit v1.2.3-55-g6feb