[Evolution-hackers] Evolution 2.24 can't connect to IMAP servers on Solaris



Hi

Please refer to bug http://bugzilla.gnome.org/show_bug.cgi?id=541188.

Since Evolution was upgraded from 2.22 to 2.23.1, it can't connect to IMAP or POP3 servers in 'No encryption' mode. But If you run Evolution 2.22 in GNOME 2.23, the issue will go away. This means it is not the platform reason.

After some investigation, I know that errno is not correct after making a call to "connect",

In camel-tcp-stream-raw.c:socket_connect, connect returns -1 with errno 0. In
normal case, connect should return -1 with errno 150. Please refer to the
following code:

int fdmax, status;
fd_set rdset, wrset;

#ifndef G_OS_WIN32
       flags = fcntl (fd, F_GETFL);
       fcntl (fd, F_SETFL, flags | O_NONBLOCK);
#else
       {
           u_long yes = 1;
           ioctlsocket (fd, FIONBIO, &yes);
       }
#endif
       if (connect (fd, h->ai_addr, h->ai_addrlen) == 0) {
#ifndef G_OS_WIN32
           fcntl (fd, F_SETFL, flags);
#else
           {
               u_long no = 0;
               ioctlsocket (fd, FIONBIO, &no);
           }
#endif
           return fd;
       }

       if (!SOCKET_ERROR_IS_EINPROGRESS ()) {
           errnosav = errno;
           SOCKET_CLOSE (fd);
           errno = errnosav;
           return -1;
       }



Do you know some changes after 2.22 for Evolution have caused the problem?

Jeff



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]