Quite a regular
Joined: 2007/2/27 10:47 Last Login
: 9/1 14:15
From Gravity well
Group:
Registered Users
|
I've gotten both Freeciv 2.1.9 and 2.2.1 sort of working. A notable problem that comes to mind is the very unreliable fetching of metaservers. It's not a server or DNS problem since my browsers have never failed it. The address is meta.freeciv.org/metaserver.phtml
I should also clarify that connecting to a local server works perfectly. While I haven't connected to very many other servers, I didn't see a problem with that, either.
Since elimination one issue at a time should work, I'm putting a somewhat likely snippet below. It is in utility/netintf.c , supposed to put the socket in non-blocking mode. So if you know this specific thing to already work in OS4, I can at least look at something else.
(config.h has #define HAVE_FCNTL 1 put there by freeciv 2.1.9 configure script, 2.2.1 configure script didn't work for me)
void fc_nonblock(int sockfd) { #ifdef NONBLOCKING_SOCKETS #ifdef HAVE_WINSOCK unsigned long b = 1; ioctlsocket(sockfd, FIONBIO, &b); #else #ifdef HAVE_FCNTL int f_set;
if ((f_set=fcntl(sockfd, F_GETFL)) == -1) { freelog(LOG_ERROR, "fcntl F_GETFL failed: %s", fc_strerror(fc_get_errno())); }
f_set |= O_NONBLOCK;
if (fcntl(sockfd, F_SETFL, f_set) == -1) { freelog(LOG_ERROR, "fcntl F_SETFL failed: %s", fc_strerror(fc_get_errno())); }
The function fc_nonblock is in client/servers.c
Thanks for listening.
|