Page 1 of 1

How on earth do I host a server on this thing?

Posted: Mon Mar 28, 2016 3:29 am
by Lincent
I want to run an eternal Hallway server for Iceball.
I host a server on the same port as an Ace of Spades server
Code: Select all
32887
, which when I host an Ace of Spades server appears on the Ace of Spades server list.
However, when I host the Iceball server, on the same port"
Code: Select all
iceball -d 32887 pkg/base
it doesn't appear.
Is there something I missed?

Re: How on earth do I host a server on this thing?

Posted: Thu Mar 31, 2016 12:17 pm
by Zyc
do you host it by yourself or on a vps server ?

Re: How on earth do I host a server on this thing?

Posted: Sat Apr 02, 2016 6:37 am
by Lincent
Zyc wrote:
do you host it by yourself or on a vps server ?
By myself.

Re: How on earth do I host a server on this thing?

Posted: Wed Apr 20, 2016 9:54 am
by Marisa Kirisame
Lincent wrote:
I want to run an eternal Hallway server for Iceball.
I host a server on the same port as an Ace of Spades server
Code: Select all
32887
, which when I host an Ace of Spades server appears on the Ace of Spades server list.
However, when I host the Iceball server, on the same port"
Code: Select all
iceball -d 32887 pkg/base
it doesn't appear.
Is there something I missed?
svsave/pub/server.json:
Code: Select all
	"heartbeat_send": false,
Change that to true.

Re: How on earth do I host a server on this thing?

Posted: Fri Apr 22, 2016 7:14 am
by Lincent
Thanks Marisa

Wait, now it's saying the UDP socket used to connect to master servers broke horribly.

Re: How on earth do I host a server on this thing?

Posted: Fri Apr 22, 2016 9:12 am
by Marisa Kirisame
Ah shit, I think this is a known problem when you try to host an Iceball server on Windows. I don't know what actually causes it. The messagte shows up when common.udp_recvfrom() returns false.

From src/lua_udp.h:
Code: Select all
	socklen_t sadlen = sizeof(saddr);
	n = recvfrom(sockfd, buf, sizeof(buf) - 1, 0, (struct sockaddr *)&saddr, &sadlen);
	if (n == -1) {
#ifdef WIN32
		int err = WSAGetLastError();
		if (err != WSAEWOULDBLOCK) {
#else
		int err = errno;
		if (err != EAGAIN && err != EWOULDBLOCK) {
#endif
			lua_pushboolean(L, 0);
			return 1;
#ifdef WIN32
		} else if (err == WSAEWOULDBLOCK) {
#else
		} else if (err == EWOULDBLOCK || err == EAGAIN) {
#endif
			lua_pushstring(L, "");
			return 1;
		}
	}
After preprocessing:
Code: Select all
	socklen_t sadlen = sizeof(saddr);
	n = recvfrom(sockfd, buf, sizeof(buf) - 1, 0, (struct sockaddr *)&saddr, &sadlen);
	if (n == -1) {
		int err = WSAGetLastError();
		if (err != WSAEWOULDBLOCK) {
			lua_pushboolean(L, 0);
			return 1; // Lua gets: false
		} else if (err == WSAEWOULDBLOCK) {
			lua_pushstring(L, "");
			return 1; // Lua gets: ""
		}
	}
Workaround to try:

Here's the code in pkg/base/lib_heartbeat.lua:
Code: Select all
	-- check if we received any messages
	while true do
		local msg, host, port = common.udp_recvfrom(heartbeat_sockfd)
		if msg == "" then
			break
		elseif msg == false then
			print("*** UDP socket used to connect to master servers broke horribly. What the hell?!")
			irc.write("*** UDP socket used to connect to master servers broke horribly. What the hell?!")
			heartbeat_t_burstsleft = nil
			heartbeat_t_nextmsg = nil
Change it to this and see if it works:
Code: Select all
	-- check if we received any messages
	while true do
		local msg, host, port = common.udp_recvfrom(heartbeat_sockfd)
		if msg == "" or msg == false then
			break
You'll want to open it in an editor that doesn't shit itself when you give it a file with unix newlines - try wordpad instead of notepad.

I've got a feeling that this was tried and it didn't work, but if it somehow works... well, I guess that fixes *one* thing. Badly, though, but it'll do for a workaround while we find out how to fix the *real* issue.

Re: How on earth do I host a server on this thing?

Posted: Fri Apr 22, 2016 12:34 pm
by Lincent
The last suggestion seems to have fixed it.
Thanks again Marissa.

Re: How on earth do I host a server on this thing?

Posted: Fri Apr 22, 2016 10:16 pm
by Marisa Kirisame
Alright, if you ever get around to compiling it, see if you can find out what error code Windows is actually shitting out so we can patch it.

Re: How on earth do I host a server on this thing?

Posted: Sat Apr 23, 2016 1:35 am
by Lincent
Now I'm getting an error when joining.
net_connect(enet_host_service): failed

Re: How on earth do I host a server on this thing?

Posted: Sat Apr 23, 2016 8:54 am
by Marisa Kirisame
Weird. I do recall your server showed up on the list for a bit...

Perhaps you could bring the server up and I could try to join it? I'll be online for about another hour.

Re: How on earth do I host a server on this thing?

Posted: Sat Apr 23, 2016 6:51 pm
by Lincent
I put it up again.

Re: How on earth do I host a server on this thing?

Posted: Sat Apr 23, 2016 8:53 pm
by Marisa Kirisame
OK, I've done a quick check, and it seems to not want to connect. Pings don't work, and 32887 and 32888 both report "open|filtered".

When you host an AoS server on the same port (having closed Iceball beforehand, of course), can you and/or other people connect to it?

Re: How on earth do I host a server on this thing?

Posted: Sat Apr 23, 2016 9:54 pm
by Lincent
Marisa Kirisame wrote:
When you host an AoS server on the same port (having closed Iceball beforehand, of course), can you and/or other people connect to it?
Yes
;edit I meant to say No, but I didn't notice until it was too late.

Re: How on earth do I host a server on this thing?

Posted: Tue May 10, 2016 4:35 am
by Lincent
I still need help hosting servers on this.