Since XP still has another year before it is dustbinned, and assuming that LuaSocket is actually released this year, we do have to sort this out.
OK, sorted by the old expedient of a special case in luasocket.lua - adding this to the first lines of bind()
--if host == "*" then host = "0.0.0.0" end
if host == "localhost" or host == "*" then sock, err = socket.tcp() if not sock then return nil, err end sock:setoption("reuseaddr",true) res, err = sock:bind(host,port)
if not res then return nil, err end res, err = sock:listen(backlog) if not res then sock:close(); return nil,err end return sock end
That is, use old IPV4 logic for local servers, and then the tests pass. Now to work out when this special case kicks in...