Quite a regular   
                                     
                     
                                 
                                    
                    
                         
                    
                        Joined: 2007/2/27 10:47 Last Login
                                : 10/30 15:29 
                                                    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. 
                        
             
            
                                      |