On Wed, 2010-09-22 at 15:10 +0100, Anas Nashif wrote:
> On 2010-09-22, at 12:18 PM, Srinivasa Ragavan wrote:
> 
> > Hi,
> > I have made the following changes to evolution-data-server in project 
> > Trunk:Testing. Please review and accept ASAP.
> > 
> > Thank You,
> > Srinivasa Ragavan
> > 
> > [This message was auto-generated]
> > 
> > ---
> > 
> > Request #7682:
> > 
> >  submit:   
> > home:srini:branches:Trunk:Testing/evolution-data-server(r2)(cleanup) -> 
> > Trunk:Testing/evolution-data-server
> > 
> > 
> > Message:
> >    * Wed Sep 22 2010 Srinivasa Ragavan <[email protected]> - 2.30.2
> > - Update missing patches from Meego:1.0:Core. Fixes bmc #7055
> > * Thu Sep 2 2010 Hao Li <[email protected]> - 2.30.2
> > - Update simplified chinese translation in contacts/categories to fix BMC 
> > #2330
> > * Tue Aug 17 2010 Federico Mena-Quintero <[email protected]> - 2.30.2
> > - Enable evolution-data-server-bmo182-camel-socks-proxy.patch
> > - Add evolution-data-server-bmo182-camel-socks5.patch to support
> >  SOCKS5 and IPv6 properly.
> > * Wed Jul 04 2010 Peter Zhu <[email protected]> - 2.30.2
> > - Disable socks patch to fix BMC #3667
> > * Wed Jun 30 2010 Michael Meeks <[email protected]> - 2.30.2
> > - Fix BMC#182 - add SOCKS proxy support (to camel)
> > * Tue Jun 29 2010 Michael Meeks <[email protected]> - 2.30.2
> > - Fix BMC #1510 - use system NSS cache by updating to newer snapshot
> >  of the stable branch fixing many other known bugs.
> > - drop two patches already present there.
> > - ensure that we keep the soname we originally shipped with.
> > * Thu Jun 10 2010 Srinivasa Ragavan <[email protected]> - 2.30.1
> > - Fix BMC #1846 - Updated an existing patch.
> > * Mon May 10 2010 Michael Meeks <[email protected]> - 2.30.1
> > - fix name selection sizing & layout to fit screen, bmc#1703
> > 
> > State:   new          2010-09-22T04:18:50 srini
> > Comment: None
> > 
> > 
> > 
> > changes files:
> > --------------
> > --- evolution-data-server.changes
> > +++ evolution-data-server.changes
> > @@ -0,0 +1,29 @@
> > +* Wed Sep 22 2010 Srinivasa Ragavan <[email protected]> - 2.30.2
> > +- Update missing patches from Meego:1.0:Core. Fixes bmc #7055
> > +
> > +* Thu Sep 2 2010 Hao Li <[email protected]> - 2.30.2
> > +- Update simplified chinese translation in contacts/categories to fix BMC 
> > #2330
> > +
> > +* Tue Aug 17 2010 Federico Mena-Quintero <[email protected]> - 2.30.2
> > +- Enable evolution-data-server-bmo182-camel-socks-proxy.patch
> > +- Add evolution-data-server-bmo182-camel-socks5.patch to support
> > +  SOCKS5 and IPv6 properly.
> > +
> > +* Wed Jul 04 2010 Peter Zhu <[email protected]> - 2.30.2
> > +- Disable socks patch to fix BMC #3667
> > +
> > +* Wed Jun 30 2010 Michael Meeks <[email protected]> - 2.30.2
> > +- Fix BMC#182 - add SOCKS proxy support (to camel)
> > +
> > +* Tue Jun 29 2010 Michael Meeks <[email protected]> - 2.30.2
> > +- Fix BMC #1510 - use system NSS cache by updating to newer snapshot
> > +  of the stable branch fixing many other known bugs.
> > +- drop two patches already present there.
> > +- ensure that we keep the soname we originally shipped with.
> > +
> > +* Thu Jun 10 2010 Srinivasa Ragavan <[email protected]> - 2.30.1
> > +- Fix BMC #1846 - Updated an existing patch.
> > +
> > +* Mon May 10 2010 Michael Meeks <[email protected]> - 2.30.1
> > +- fix name selection sizing & layout to fit screen, bmc#1703
> > +
> > 
> > old:
> > ----
> >  evolution-data-server-2.30.1~20100421.tar.bz2
> > 
> > new:
> > ----
> >  eds-soname-retain.patch
> >  evolution-data-server-2.30.2~20100629.tar.bz2
> >  evolution-data-server-bmo182-camel-socks-proxy.patch
> >  evolution-data-server-bmo182-camel-socks5.patch
> >  evolution-data-server-contacts-bug-2330.patch
> > 
> > spec files:
> > -----------
> > --- evolution-data-server.spec
> > +++ evolution-data-server.spec
> > @@ -13,10 +13,10 @@
> > %define eds_extensions_dir 
> > %{_libdir}/evolution-data-server-%{eds_api_version}/extensions
> > 
> > Name: evolution-data-server
> > -Version: 2.30.1~20100421
> > +Version: 2.30.2~20100629
> > Release: 1
> > License: LGPLv2
> > -Group: System/Libraries
> > +Group: System Environment/Libraries
> 
> Thats is wrong, please resubmit.

Done. ID 7691.

-Srini
> 
> 
> > Summary: Backend data server for Evolution
> > URL: http://git.gnome.org/cgit/evolution-data-server
> > BuildRoot: %{_tmppath}/%{name}-%{version}-root
> > @@ -53,8 +53,11 @@
> > 
> > # Moblin specific patches
> > Patch1: no-module-logging.patch
> > -Patch2: use-nss-system-db.patch
> > +Patch2: eds-soname-retain.patch
> > Patch3: BUGFIX-GNOME-Bug-593882-Ghost-mails-seen-in-Anjal-v3.patch
> > +Patch4: evolution-data-server-bmo182-camel-socks-proxy.patch
> > +Patch5: evolution-data-server-bmo182-camel-socks5.patch
> > +Patch6: evolution-data-server-contacts-bug-2330.patch
> > 
> > %description
> > The %{name} package provides a unified backend for programs
> > @@ -77,8 +80,11 @@
> > %setup -q
> > 
> > %patch1 -p1 -b .no-module-logging
> > -%patch2 -p1 -b .system-nss
> > +%patch2 -p1 -b .eds-soname-retain
> > %patch3 -p1 -b .ghost-mails
> > +%patch4 -p1 -b .evolution-data-server-bmo182-camel-socks-proxy
> > +%patch5 -p1 -b .evolution-data-server-bmo182-camel-socks5
> > +%patch6 -p1 -b .evolution-data-server-contacts-bug-2330
> > %build
> > 
> > %if %{ldap_support}
> > 
> > other changes:
> > --------------
> > 
> > ++++++ eds-soname-retain.patch (new)
> > --- eds-soname-retain.patch
> > +++ eds-soname-retain.patch
> > +Revert this commit (appended):
> > +       + we always shipped without EComponentListener
> > +       + changing the .soname in mid-flow is really awful
> > +       + The original MeeGo so-name was .11 - so lets keep it
> > +         that way.
> > +
> > +
> > +commit 9930a96021157de4317d19dc275b51a917391df8
> > +Author: Matthew Barnes <[email protected]>
> > +Date:   Fri May 21 21:14:12 2010 -0400
> > +
> > +    Bump libedataserver soname twice.
> > +    
> > +    We screwed up and forgot to bump libedataserver's shared object name
> > +    when EComponentListener was removed during the 2.29 development cycle.
> > +    
> > +    The problem is we now need to bump both master and gnome-2-30 branches,
> > +    but master was already bumped once when all the deprecated API was
> > +    removed for 2.31.1.  So to keep all the names unique, the gnome-2-30
> > +    soname will leapfrog master, and master will leapfrog gnome-2-30.
> > +    
> > +    It breaks down like this:
> > +    
> > +        Version     Shared Object Name         Note
> > +    
> > +        <= 2.30.1 : libedataserver-1.2.so.11 :
> > +        == 2.31.1 : libedataserver-1.2.so.12 : Deprecated API removed
> > +        >= 2.30.2 : libedataserver-1.2.so.13 : EComponentListener removed
> > +        >= 2.31.2 : libedataserver-1.2.so.14 : EComponentListener removed
> > +
> > +diff --git a/configure.ac b/configure.ac
> > +index 2edb90c..9c3a099 100644
> > +--- a/configure.ac
> > ++++ b/configure.ac
> > +@@ -55,7 +55,7 @@ EDS_MICRO_VERSION=eds_micro_version
> > + dnl ******************************
> > + dnl Libtool versioning
> > + dnl ******************************
> > +-LIBEDATASERVER_CURRENT=13
> > ++LIBEDATASERVER_CURRENT=11
> > + LIBEDATASERVER_REVISION=1
> > + LIBEDATASERVER_AGE=0
> > + 
> > 
> > ++++++ evolution-data-server-2.30.1~20100421.tar.bz2 -> 
> > evolution-data-server-2.30.2~20100629.tar.bz2
> > 34820 lines of diff (skipped)
> > 
> > ++++++ evolution-data-server-bmo182-camel-socks-proxy.patch (new)
> > --- evolution-data-server-bmo182-camel-socks-proxy.patch
> > +++ evolution-data-server-bmo182-camel-socks-proxy.patch
> > +diff --git a/camel/camel-private.h b/camel/camel-private.h
> > +index 51fc00f..f235ab4 100644
> > +--- a/camel/camel-private.h
> > ++++ b/camel/camel-private.h
> > +@@ -97,6 +97,8 @@ struct _CamelSessionPrivate {
> > +   GHashTable *thread_msg_op;
> > +   GHashTable *junk_headers;
> > + 
> > ++  char *socks_proxy_host;
> > ++  int socks_proxy_port;
> > + };
> > + 
> > + #define CAMEL_SESSION_LOCK(f, l) \
> > +diff --git a/camel/camel-session.c b/camel/camel-session.c
> > +index 5b626ac..36a2d38 100644
> > +--- a/camel/camel-session.c
> > ++++ b/camel/camel-session.c
> > +@@ -159,6 +159,34 @@ camel_session_construct (CamelSession *session, const 
> > gchar *storage_path)
> > +   session->storage_path = g_strdup (storage_path);
> > + }
> > + 
> > ++void
> > ++camel_session_set_socks_proxy (CamelSession *session, const gchar 
> > *socks_host, int socks_port)
> > ++{
> > ++  g_return_if_fail (CAMEL_IS_SESSION (session));
> > ++
> > ++  if (session->priv->socks_proxy_host)
> > ++          g_free (session->priv->socks_proxy_host);
> > ++
> > ++  if (socks_host && socks_host[0] != '\0') {
> > ++          session->priv->socks_proxy_host = g_strdup (socks_host);
> > ++          session->priv->socks_proxy_port = socks_port;
> > ++  } else {
> > ++          session->priv->socks_proxy_host = NULL;
> > ++          session->priv->socks_proxy_port = 0;
> > ++  }
> > ++}
> > ++
> > ++void
> > ++camel_session_get_socks_proxy (CamelSession *session, gchar **host_ret, 
> > gint *port_ret)
> > ++{
> > ++  g_return_if_fail (CAMEL_IS_SESSION (session));
> > ++  g_return_if_fail (host_ret != NULL);
> > ++  g_return_if_fail (port_ret != NULL);
> > ++
> > ++  *host_ret = g_strdup (session->priv->socks_proxy_host);
> > ++  *port_ret = session->priv->socks_proxy_port;
> > ++}
> > ++
> > + static CamelService *
> > + get_service (CamelSession *session, const gchar *url_string,
> > +        CamelProviderType type, CamelException *ex)
> > +diff --git a/camel/camel-session.h b/camel/camel-session.h
> > +index e6d6455..543aac1 100644
> > +--- a/camel/camel-session.h
> > ++++ b/camel/camel-session.h
> > +@@ -132,6 +132,13 @@ CamelType camel_session_get_type (void);
> > + void            camel_session_construct             (CamelSession 
> > *session,
> > +                                                const gchar *storage_path);
> > + 
> > ++void            camel_session_set_socks_proxy       (CamelSession 
> > *session,
> > ++                                               const gchar *socks_host,
> > ++                                               gint socks_port);
> > ++void            camel_session_get_socks_proxy       (CamelSession 
> > *session,
> > ++                                               gchar **host_ret,
> > ++                                               gint *port_ret);
> > ++
> > + CamelService *  camel_session_get_service           (CamelSession 
> > *session,
> > +                                                const gchar *url_string,
> > +                                                CamelProviderType type,
> > +diff --git a/camel/camel-tcp-stream-raw.c b/camel/camel-tcp-stream-raw.c
> > +index 72979e7..89a29e5 100644
> > +--- a/camel/camel-tcp-stream-raw.c
> > ++++ b/camel/camel-tcp-stream-raw.c
> > +@@ -33,6 +33,7 @@
> > + #include <sys/types.h>
> > + 
> > + #include "camel-file-utils.h"
> > ++#include "camel-net-utils.h"
> > + #include "camel-operation.h"
> > + #include "camel-tcp-stream-raw.h"
> > + 
> > +@@ -400,15 +401,97 @@ socket_connect(struct addrinfo *h)
> > +   return fd;
> > + }
> > + 
> > ++/* Returns the FD of a socket, already connected to and validated by the 
> > SOCKS4
> > ++ * proxy that is configured in the stream.  Otherwise returns -1.  
> > Assumes that
> > ++ * a proxy *is* configured with camel_tcp_stream_set_socks_proxy().
> > ++ */
> > ++static gint
> > ++connect_to_socks4_proxy (const gchar *proxy_host, gint proxy_port, struct 
> > addrinfo *connect_addr)
> > ++{
> > ++  struct addrinfo *ai, hints;
> > ++  gchar serv[16];
> > ++  gint fd;
> > ++  gchar request[9];
> > ++  struct sockaddr_in *sin;
> > ++  gchar reply[8];
> > ++  gint save_errno;
> > ++
> > ++  g_assert (proxy_host != NULL);
> > ++
> > ++  sprintf (serv, "%d", proxy_port);
> > ++
> > ++  memset (&hints, 0, sizeof (hints));
> > ++  hints.ai_socktype = SOCK_STREAM;
> > ++
> > ++  ai = camel_getaddrinfo (proxy_host, serv, &hints, NULL); /* 
> > NULL-CamelException */
> > ++  if (!ai) {
> > ++          errno = EHOSTUNREACH; /* FIXME: this is not an accurate error; 
> > we should translate the CamelException to an errno */
> > ++          return -1;
> > ++  }
> > ++
> > ++  fd = socket_connect (ai);
> > ++  save_errno = errno;
> > ++
> > ++  camel_freeaddrinfo (ai);
> > ++
> > ++  if (fd == -1) {
> > ++          errno = save_errno;
> > ++          goto error;
> > ++  }
> > ++
> > ++  g_assert (connect_addr->ai_addr->sa_family == AF_INET); /* FIXME: what 
> > to do about IPv6?  Are we just screwed with SOCKS4? */
> > ++  sin = (struct sockaddr_in *) connect_addr->ai_addr;
> > ++
> > ++  request[0] = 0x04;                              /* SOCKS4 */
> > ++  request[1] = 0x01;                              /* CONNECT */
> > ++  memcpy (request + 2, &sin->sin_port, 2);        /* port in network byte 
> > order */
> > ++  memcpy (request + 4, &sin->sin_addr.s_addr, 4); /* address in network 
> > byte order */
> > ++  request[8] = 0x00;                              /* terminator */
> > ++
> > ++  if (camel_write_socket (fd, request, sizeof (request)) != sizeof 
> > (request))
> > ++          goto error;
> > ++
> > ++  if (camel_read_socket (fd, reply, sizeof (reply)) != sizeof (reply))
> > ++          goto error;
> > ++
> > ++  if (!(reply[0] == 0             /* first byte of reply is 0 */
> > ++        && reply[1] == 90)) {     /* 90 means "request granted" */
> > ++          errno = ECONNREFUSED;
> > ++          goto error;
> > ++  }
> > ++
> > ++  goto out;
> > ++
> > ++error:
> > ++  if (fd != -1) {
> > ++          save_errno = errno;
> > ++          SOCKET_CLOSE (fd);
> > ++          errno = save_errno;
> > ++          fd = -1;
> > ++  }
> > ++
> > ++out:
> > ++
> > ++  return fd;
> > ++}
> > ++
> > + static gint
> > + stream_connect (CamelTcpStream *stream, struct addrinfo *host)
> > + {
> > +   CamelTcpStreamRaw *raw = CAMEL_TCP_STREAM_RAW (stream);
> > ++  const gchar *proxy_host;
> > ++  gint proxy_port;
> > + 
> > +   g_return_val_if_fail (host != NULL, -1);
> > + 
> > ++  camel_tcp_stream_peek_socks_proxy (stream, &proxy_host, &proxy_port);
> > ++
> > +   while (host) {
> > +-          raw->sockfd = socket_connect(host);
> > ++          if (proxy_host)
> > ++                  raw->sockfd = connect_to_socks4_proxy (proxy_host, 
> > proxy_port, host);
> > ++          else
> > ++                  raw->sockfd = socket_connect (host);
> > ++
> > +           if (raw->sockfd != -1)
> > +                   return 0;
> > + 
> > +diff --git a/camel/camel-tcp-stream-ssl.c b/camel/camel-tcp-stream-ssl.c
> > +index 62290c4..132c977 100644
> > +--- a/camel/camel-tcp-stream-ssl.c
> > ++++ b/camel/camel-tcp-stream-ssl.c
> > +@@ -55,12 +55,15 @@
> > + 
> > + #include "camel-certdb.h"
> > + #include "camel-file-utils.h"
> > ++#include "camel-net-utils.h"
> > + #include "camel-operation.h"
> > + #include "camel-private.h"
> > + #include "camel-session.h"
> > + #include "camel-stream-fs.h"
> > + #include "camel-tcp-stream-ssl.h"
> > + 
> > ++#define d(x)
> > ++
> > (806 more lines skipped)
> > 
> > ++++++ evolution-data-server-bmo182-camel-socks5.patch (new)
> > --- evolution-data-server-bmo182-camel-socks5.patch
> > +++ evolution-data-server-bmo182-camel-socks5.patch
> > +diff --git a/camel/camel-exception-list.def 
> > b/camel/camel-exception-list.def
> > +index 9d2940f..300743f 100644
> > +--- a/camel/camel-exception-list.def
> > ++++ b/camel/camel-exception-list.def
> > +@@ -38,4 +38,8 @@ CAMEL_EXCEPTION_SERVICE_NOT_CONNECTED,
> > + 
> > + 
> > + /* CamelOperation */
> > +-CAMEL_EXCEPTION_OPERATION_IN_PROGRESS = 400
> > ++CAMEL_EXCEPTION_OPERATION_IN_PROGRESS = 400,
> > ++
> > ++/* SOCKS proxies in CamelTcpStream */
> > ++CAMEL_EXCEPTION_PROXY_NOT_SUPPORTED = 500,
> > ++CAMEL_EXCEPTION_PROXY_CANT_AUTHENTICATE
> > +diff --git a/camel/camel-http-stream.c b/camel/camel-http-stream.c
> > +index cbab535..40a5dc7 100644
> > +--- a/camel/camel-http-stream.c
> > ++++ b/camel/camel-http-stream.c
> > +@@ -173,7 +173,6 @@ static CamelStream *
> > + http_connect (CamelHttpStream *http, CamelURL *url)
> > + {
> > +   CamelStream *stream = NULL;
> > +-  struct addrinfo *ai, hints = { 0 };
> > +   gint errsave;
> > +   gchar *serv;
> > + 
> > +@@ -198,24 +197,14 @@ http_connect (CamelHttpStream *http, CamelURL *url)
> > +   } else {
> > +           serv = url->protocol;
> > +   }
> > +-  hints.ai_socktype = SOCK_STREAM;
> > + 
> > +-  ai = camel_getaddrinfo(url->host, serv, &hints, NULL);
> > +-  if (ai == NULL) {
> > +-          camel_object_unref (stream);
> > +-          return NULL;
> > +-  }
> > +-
> > +-  if (camel_tcp_stream_connect (CAMEL_TCP_STREAM (stream), ai) == -1) {
> > ++  if (camel_tcp_stream_connect (CAMEL_TCP_STREAM (stream), url->host, 
> > serv, 0, NULL) == -1) { /* NULL-CamelException */
> > +           errsave = errno;
> > +           camel_object_unref (stream);
> > +-          camel_freeaddrinfo(ai);
> > +           errno = errsave;
> > +           return NULL;
> > +   }
> > + 
> > +-  camel_freeaddrinfo(ai);
> > +-
> > +   http->raw = stream;
> > +   http->read = camel_stream_buffer_new (stream, CAMEL_STREAM_BUFFER_READ);
> > + 
> > +diff --git a/camel/camel-tcp-stream-raw.c b/camel/camel-tcp-stream-raw.c
> > +index 89a29e5..4e3711a 100644
> > +--- a/camel/camel-tcp-stream-raw.c
> > ++++ b/camel/camel-tcp-stream-raw.c
> > +@@ -32,24 +32,26 @@
> > + #include <sys/time.h>
> > + #include <sys/types.h>
> > + 
> > ++#include <nspr.h>
> > ++#include <prio.h>
> > ++#include <prerror.h>
> > ++#include <prerr.h>
> > ++
> > ++#include <glib/gi18n-lib.h>
> > ++
> > + #include "camel-file-utils.h"
> > + #include "camel-net-utils.h"
> > + #include "camel-operation.h"
> > + #include "camel-tcp-stream-raw.h"
> > + 
> > +-#ifndef G_OS_WIN32
> > +-#define SOCKET_ERROR_CODE() errno
> > +-#define SOCKET_CLOSE(fd) close (fd)
> > +-#define SOCKET_ERROR_IS_EINPROGRESS() (errno == EINPROGRESS)
> > +-#define SOCKET_ERROR_IS_EINTR() (errno == EINTR)
> > +-#else
> > +-#define SOCKET_ERROR_CODE() WSAGetLastError ()
> > +-#define SOCKET_CLOSE(fd) closesocket (fd)
> > +-#define SOCKET_ERROR_IS_EINPROGRESS() (WSAGetLastError () == 
> > WSAEWOULDBLOCK)
> > +-#define SOCKET_ERROR_IS_EINTR() 0 /* No WSAEINTR in WinSock2 */
> > +-#undef ETIMEDOUT          /* In case pthreads-win32's <pthread.h> bogusly 
> > defined it */
> > +-#define ETIMEDOUT EAGAIN
> > +-#endif
> > ++#define d(x)
> > ++
> > ++#define IO_TIMEOUT (PR_TicksPerSecond() * 4 * 60)
> > ++#define CONNECT_TIMEOUT (PR_TicksPerSecond () * 4 * 60)
> > ++
> > ++typedef struct _CamelTcpStreamRawPrivate {
> > ++  PRFileDesc *sockfd;
> > ++} CamelTcpStreamRawPrivate;
> > + 
> > + static CamelTcpStreamClass *parent_class = NULL;
> > + 
> > +@@ -61,11 +63,12 @@ static gssize stream_write (CamelStream *stream, const 
> > gchar *buffer, gsize n);
> > + static gint stream_flush  (CamelStream *stream);
> > + static gint stream_close  (CamelStream *stream);
> > + 
> > +-static gint stream_connect (CamelTcpStream *stream, struct addrinfo 
> > *host);
> > ++static gint stream_connect (CamelTcpStream *stream, const char *host, 
> > const char *service, gint fallback_port, CamelException *ex);
> > + static gint stream_getsockopt (CamelTcpStream *stream, CamelSockOptData 
> > *data);
> > + static gint stream_setsockopt (CamelTcpStream *stream, const 
> > CamelSockOptData *data);
> > + static struct sockaddr *stream_get_local_address (CamelTcpStream *stream, 
> > socklen_t *len);
> > + static struct sockaddr *stream_get_remote_address (CamelTcpStream 
> > *stream, socklen_t *len);
> > ++static PRFileDesc *stream_get_file_desc (CamelTcpStream *stream);
> > + 
> > + static void
> > + camel_tcp_stream_raw_class_init (CamelTcpStreamRawClass 
> > *camel_tcp_stream_raw_class)
> > +@@ -88,23 +91,34 @@ camel_tcp_stream_raw_class_init 
> > (CamelTcpStreamRawClass *camel_tcp_stream_raw_cl
> > +   camel_tcp_stream_class->setsockopt  = stream_setsockopt;
> > +   camel_tcp_stream_class->get_local_address  = stream_get_local_address;
> > +   camel_tcp_stream_class->get_remote_address = stream_get_remote_address;
> > ++  camel_tcp_stream_class->get_file_desc = stream_get_file_desc;
> > + }
> > + 
> > + static void
> > + camel_tcp_stream_raw_init (gpointer object, gpointer klass)
> > + {
> > +   CamelTcpStreamRaw *stream = CAMEL_TCP_STREAM_RAW (object);
> > ++  CamelTcpStreamRawPrivate *priv;
> > + 
> > +-  stream->sockfd = -1;
> > ++  stream->priv = g_new0 (CamelTcpStreamRawPrivate, 1);
> > ++  priv = stream->priv;
> > ++
> > ++  priv->sockfd = NULL;
> > + }
> > + 
> > + static void
> > + camel_tcp_stream_raw_finalize (CamelObject *object)
> > + {
> > +-  CamelTcpStreamRaw *stream = CAMEL_TCP_STREAM_RAW (object);
> > ++  CamelTcpStreamRaw *raw = CAMEL_TCP_STREAM_RAW (object);
> > ++  CamelTcpStreamRawPrivate *priv = raw->priv;
> > + 
> > +-  if (stream->sockfd != -1)
> > +-          SOCKET_CLOSE (stream->sockfd);
> > ++  if (priv->sockfd != NULL) {
> > ++          PR_Shutdown (priv->sockfd, PR_SHUTDOWN_BOTH);
> > ++          PR_Close (priv->sockfd);
> > ++  }
> > ++
> > ++  g_free (raw->priv);
> > ++  raw->priv = NULL;
> > + }
> > + 
> > + CamelType
> > +@@ -244,202 +258,492 @@ camel_tcp_stream_raw_new (void)
> > +   return CAMEL_STREAM (stream);
> > + }
> > + 
> > ++void
> > ++_set_errno_from_pr_error (gint pr_code)
> > ++{
> > ++  /* FIXME: this should handle more. */
> > ++  switch (pr_code) {
> > ++  case PR_INVALID_ARGUMENT_ERROR:
> > ++          errno = EINVAL;
> > ++          break;
> > ++  case PR_PENDING_INTERRUPT_ERROR:
> > ++          errno = EINTR;
> > ++          break;
> > ++  case PR_IO_PENDING_ERROR:
> > ++          errno = EAGAIN;
> > ++          break;
> > ++#ifdef EWOULDBLOCK
> > ++  case PR_WOULD_BLOCK_ERROR:
> > ++          errno = EWOULDBLOCK;
> > ++          break;
> > ++#endif
> > ++#ifdef EINPROGRESS
> > ++  case PR_IN_PROGRESS_ERROR:
> > ++          errno = EINPROGRESS;
> > ++          break;
> > ++#endif
> > ++#ifdef EALREADY
> > ++  case PR_ALREADY_INITIATED_ERROR:
> > ++          errno = EALREADY;
> > ++          break;
> > ++#endif
> > ++#ifdef EHOSTUNREACH
> > ++  case PR_NETWORK_UNREACHABLE_ERROR:
> > ++          errno = EHOSTUNREACH;
> > ++          break;
> > ++#endif
> > ++#ifdef ECONNREFUSED
> > ++  case PR_CONNECT_REFUSED_ERROR:
> > ++          errno = ECONNREFUSED;
> > ++          break;
> > ++#endif
> > ++#ifdef ETIMEDOUT
> > ++  case PR_CONNECT_TIMEOUT_ERROR:
> > ++  case PR_IO_TIMEOUT_ERROR:
> > ++          errno = ETIMEDOUT;
> > ++          break;
> > ++#endif
> > (2969 more lines skipped)
> > 
> > ++++++ evolution-data-server-contacts-bug-2330.patch (new)
> > --- evolution-data-server-contacts-bug-2330.patch
> > +++ evolution-data-server-contacts-bug-2330.patch
> > +diff --git a/po/zh_CN.po b/po/zh_CN.po
> > +index ac607f8..c061980 100644
> > +--- a/po/zh_CN.po
> > ++++ b/po/zh_CN.po
> > +@@ -4819,8 +4819,8 @@ msgid "Category _Name"
> > + msgstr "类别名称(_N)"
> > + 
> > + #: ../libedataserverui/e-categories-dialog.ui.h:5
> > +-msgid "Item(s) belong to these _categories:"
> > +-msgstr "项目属于这些类别(_C):"
> > ++msgid "Item(s) _belong to these categories:"
> > ++msgstr "项目属于这些类别(_B):"
> > + 
> > + #: ../libedataserverui/e-categories-dialog.ui.h:6
> > + msgid "_Available Categories:"
> > 
> > _______________________________________________
> > Meego-commits mailing list
> > [email protected]
> > http://lists.meego.com/listinfo/meego-commits
> 
> _______________________________________________
> MeeGo-packaging mailing list
> [email protected]
> http://lists.meego.com/listinfo/meego-packaging


_______________________________________________
MeeGo-packaging mailing list
[email protected]
http://lists.meego.com/listinfo/meego-packaging

Reply via email to