Only in libjingle-0.4.0: Makefile.in
diff -r libjingle-0.4.0/README libjingle/files/README
1,39c1,39
< Libjingle
< 
< Libjingle is a set of components provided by Google to interoperate with Google
< Talk's peer-to-peer and voice capabilities. This package will create several
< static libraries you may link to your project as needed.
< 
< -talk               - No source files in talk/, just these subdirectories
< |-base              - Contains basic low-level portable utility functions for 
< |                     things like threads and sockets
< |-p2p               - The P2P stack
<   |-base            - Base p2p functionality
<   |-client          - Hooks to tie it into XMPP
< |-session           - Signaling
<   |-phone           - Signaling code specific to making phone calls
< |-third_party       - Components that aren't ours
<   |-mediastreamer   - Media components for dealing with sound hardware and 
<   |                   voice codecs
< |-xmllite           - XML parser
< |-xmpp              - XMPP engine
< 
< In addition, this package contains two examples in talk/examples which 
< illustrate the basic concepts of how the provided classes work.
< 
< The xmllite component of libjingle depends on expat. You can download expat 
< from http://expat.sourceforge.net/.
< 
< mediastreamer, the media components used by the example applications depend on
< the oRTP and iLBC components from linphone, which can be found at 
< http://www.linphone.org. Linphone, in turn depends on GLib, which can be found
< at http://www.gtk.org. This GLib dependency should be removed in future 
< releases.
< 
< Building Libjingle
< 
< Once the dependencies are installed, run ./configure. ./configure will return
< an error if it failed to locate the proper dependencies. If ./configure
< succeeds, run 'make' to build the components and examples.
< 
< When the build is complete, you can run the call example from 
---
> Libjingle
> 
> Libjingle is a set of components provided by Google to interoperate with Google
> Talk's peer-to-peer and voice capabilities. This package will create several
> static libraries you may link to your project as needed.
> 
> -talk               - No source files in talk/, just these subdirectories
> |-base              - Contains basic low-level portable utility functions for 
> |                     things like threads and sockets
> |-p2p               - The P2P stack
>   |-base            - Base p2p functionality
>   |-client          - Hooks to tie it into XMPP
> |-session           - Signaling
>   |-phone           - Signaling code specific to making phone calls
> |-third_party       - Components that aren't ours
>   |-mediastreamer   - Media components for dealing with sound hardware and 
>   |                   voice codecs
> |-xmllite           - XML parser
> |-xmpp              - XMPP engine
> 
> In addition, this package contains two examples in talk/examples which 
> illustrate the basic concepts of how the provided classes work.
> 
> The xmllite component of libjingle depends on expat. You can download expat 
> from http://expat.sourceforge.net/.
> 
> mediastreamer, the media components used by the example applications depend on
> the oRTP and iLBC components from linphone, which can be found at 
> http://www.linphone.org. Linphone, in turn depends on GLib, which can be found
> at http://www.gtk.org. This GLib dependency should be removed in future 
> releases.
> 
> Building Libjingle
> 
> Once the dependencies are installed, run ./configure. ./configure will return
> an error if it failed to locate the proper dependencies. If ./configure
> succeeds, run 'make' to build the components and examples.
> 
> When the build is complete, you can run the call example from 
41,57c41,57
< 
< Relay Server
< 
< Libjingle will also build a relay server that may be used to relay traffic
< when a direct peer-to-peer connection could not be established. The relay
< server will build in talk/p2p/base/relayserver and will listen on UDP
< ports 5000 and 5001. See the Libjingle Developer Guide at 
< http://code.google.com/apis/talk/index.html for information about configuring
< a client to use this relay server.
< 
< STUN Server
< 
< Lastly, Libjingle builds a STUN server which implements the STUN protocol for
< Simple Traversal of UDP over NAT. The STUN server is built as
< talk/p2p/base/stunserver and listens on UDP port 7000. See the Libjingle
< Developer Guide at http://code.google.com/apis/talk/index.html for information
< about configuring a client to use this STUN server.
---
> 
> Relay Server
> 
> Libjingle will also build a relay server that may be used to relay traffic
> when a direct peer-to-peer connection could not be established. The relay
> server will build in talk/p2p/base/relayserver and will listen on UDP
> ports 5000 and 5001. See the Libjingle Developer Guide at 
> http://code.google.com/apis/talk/index.html for information about configuring
> a client to use this relay server.
> 
> STUN Server
> 
> Lastly, Libjingle builds a STUN server which implements the STUN protocol for
> Simple Traversal of UDP over NAT. The STUN server is built as
> talk/p2p/base/stunserver and listens on UDP port 7000. See the Libjingle
> Developer Guide at http://code.google.com/apis/talk/index.html for information
> about configuring a client to use this STUN server.
diff -r libjingle-0.4.0/README.win libjingle/files/README.win
1,24c1,24
< 1. Install Visual C++ Express 2005.  It is free from this link:
<    http://msdn.microsoft.com/vstudio/express/visualc/
< 
< 2. Install the platform SDK and integrate it into VC++ express
<    http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/
< 
< 3. Download and install binary package for expat:
<    http://sourceforge.net/project/showfiles.php?group_id=10127&package_id=11277
< 
< 4. Update the Visual C++ directories in the Projects and Solutions section in the Options dialog box
<    Library files: C:\expat-VERSION\StaticLibs
<    Include files: C:\expat-VERSION\Source\Lib
<    where VERSION is the version of expat you've downoaded
< 
< 5. Unzip the libjingle files and open the solution.
< 
< 6. If you wish to build the call example with GIPS Voice Engine Lite, download Voice Engine Lite from http://developer.globalipsound.com
< 
< 7. Extract the Interface and Library directories from the Voice Engine Lite zip file into talk\third_party\gips
< 
< 8. Open talk\third_party\gips\expiration.h and set the GIPS_EXPIRATION #defines to the expiration date provided by GIPS and remove the #error directive
< 
< 9. Build the solution
< 
---
> 1. Install Visual C++ Express 2005.  It is free from this link:
>    http://msdn.microsoft.com/vstudio/express/visualc/
> 
> 2. Install the platform SDK and integrate it into VC++ express
>    http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/
> 
> 3. Download and install binary package for expat:
>    http://sourceforge.net/project/showfiles.php?group_id=10127&package_id=11277
> 
> 4. Update the Visual C++ directories in the Projects and Solutions section in the Options dialog box
>    Library files: C:\expat-VERSION\StaticLibs
>    Include files: C:\expat-VERSION\Source\Lib
>    where VERSION is the version of expat you've downoaded
> 
> 5. Unzip the libjingle files and open the solution.
> 
> 6. If you wish to build the call example with GIPS Voice Engine Lite, download Voice Engine Lite from http://developer.globalipsound.com
> 
> 7. Extract the Interface and Library directories from the Voice Engine Lite zip file into talk\third_party\gips
> 
> 8. Open talk\third_party\gips\expiration.h and set the GIPS_EXPIRATION #defines to the expiration date provided by GIPS and remove the #error directive
> 
> 9. Build the solution
> 
Only in libjingle-0.4.0: aclocal.m4
Only in libjingle-0.4.0: config.guess
diff -r libjingle-0.4.0/config.h libjingle/files/config.h
14c14
< #define HAVE_ALSA_ASOUNDLIB_H 1
---
> /* #undef HAVE_ALSA_ASOUNDLIB_H */
23c23
< #define HAVE_GLIB 1
---
> /* #undef HAVE_GLIB */
38c38
< #define HAVE_ORTP 1
---
> /* #undef HAVE_ORTP */
41c41
< #define HAVE_SPEEX 1
---
> /* #undef HAVE_SPEEX */
47c47
< #define HAVE_SPEEX_SPEEX_H 1
---
> /* #undef HAVE_SPEEX_SPEEX_H */
71c71
< #define LINUX 1
---
> /* #undef LINUX */
113c113
< #define __ALSA_ENABLED__ 1
---
> /* #undef __ALSA_ENABLED__ */
Only in libjingle-0.4.0: config.h.in
Only in libjingle-0.4.0: config.sub
Only in libjingle-0.4.0: configure
Only in libjingle-0.4.0: depcomp
Only in libjingle-0.4.0: install-sh
Only in libjingle-0.4.0: ltmain.sh
Only in libjingle-0.4.0: missing
Only in libjingle-0.4.0/talk: Makefile.in
Only in libjingle-0.4.0/talk/base: Makefile.in
diff -r libjingle-0.4.0/talk/base/asynchttprequest.cc libjingle/files/talk/base/asynchttprequest.cc
73c73
<     talk_base::SSLAdapter * ssl_adapter = talk_base::SSLAdapter::Create(socket);
---
>     talk_base::SSLAdapter * ssl_adapter = factory_->CreateSSLAdapter(socket);
75c75,81
<     ssl_adapter->StartSSL(hostname_.c_str(), true);
---
>     int error = ssl_adapter->StartSSL(hostname_.c_str(),
>                                       use_restartable_ssl_sockets_);
>     if (error != 0) {
>       LOG(LS_WARNING) << "Could not start SSL; error = " << error;
>       delete ssl_adapter;
>       return 0;
>     }
diff -r libjingle-0.4.0/talk/base/asynchttprequest.h libjingle/files/talk/base/asynchttprequest.h
23,24c23
<   public SignalThread,
<   public sigslot::has_slots<> {
---
>   public SignalThread {
106c105,106
<       binary_mode_(false), agent_(user_agent) { }
---
>       binary_mode_(false), agent_(user_agent),
>       ignore_bad_cert_(false), use_restartable_ssl_sockets_(false) { }
114a115,120
>   bool use_restartable_ssl_sockets() const {
>     return use_restartable_ssl_sockets_;
>   }
>   void SetUseRestartableSSLSockets(bool use_restartable_ssl_sockets) {
>     use_restartable_ssl_sockets_ = use_restartable_ssl_sockets;
>   }
133a140
>   bool use_restartable_ssl_sockets_;
diff -r libjingle-0.4.0/talk/base/asynctcpsocket.cc libjingle/files/talk/base/asynctcpsocket.cc
31a32,33
> #include <cstring>
> 
diff -r libjingle-0.4.0/talk/base/autodetectproxy.cc libjingle/files/talk/base/autodetectproxy.cc
29c29
< #include "talk/base/httpcommon.h"
---
> #include "talk/base/httpcommon-inl.h"
114c114
<   Thread::Current()->MessageQueue::Stop();
---
>   Thread::Current()->Quit();
diff -r libjingle-0.4.0/talk/base/autodetectproxy.h libjingle/files/talk/base/autodetectproxy.h
22c22
< class AutoDetectProxy : public SignalThread, public sigslot::has_slots<> {
---
> class AutoDetectProxy : public SignalThread {
diff -r libjingle-0.4.0/talk/base/base64.h libjingle/files/talk/base/base64.h
26,27c26,27
<   static const std::string Base64::Base64Table;
<   static const std::string::size_type Base64::DecodeTable[];
---
>   static const std::string Base64Table;
>   static const std::string::size_type DecodeTable[];
diff -r libjingle-0.4.0/talk/base/common.h libjingle/files/talk/base/common.h
54c54
< #define stdmax(x,y) max(x,y)
---
> #define stdmax(x,y) _max(x,y)
114,119d113
< // A macro to disallow the evil copy constructor and operator= functions
< // This should be used in the private: declarations for a class
< #define DISALLOW_EVIL_CONSTRUCTORS(TypeName)    \
<   TypeName(const TypeName&);                    \
<   void operator=(const TypeName&)
< 
diff -r libjingle-0.4.0/talk/base/criticalsection.h libjingle/files/talk/base/criticalsection.h
39c39
< #ifdef _DEBUG
---
> #if !defined(NDEBUG)
41c41
< #endif  // _DEBUG
---
> #endif  // !defined(NDEBUG)
83c83
< public:
---
>  public:
85a86
>     pthread_mutexattr_init(&mutex_attribute);
87a89,90
>     pthread_mutexattr_destroy(&mutex_attribute);
>     TRACK_OWNER(thread_ = 0);
93a97
>     TRACK_OWNER(thread_ = pthread_self());
95a100
>     TRACK_OWNER(thread_ = 0);
98c103,110
< private:
---
> 
> #if CS_TRACK_OWNER
>   bool CurrentThreadIsOwner() const {
>     return pthread_equal(thread_, pthread_self());
>   }
> #endif  // CS_TRACK_OWNER
> 
>  private:
99a112
>   TRACK_OWNER(pthread_t thread_);
diff -r libjingle-0.4.0/talk/base/cryptstring.h libjingle/files/talk/base/cryptstring.h
30a31
> #include <string.h>
diff -r libjingle-0.4.0/talk/base/diskcache.cc libjingle/files/talk/base/diskcache.cc
43c43
< #ifdef _DEBUG
---
> #if !defined(NDEBUG)
45c45
< #else  // !_DEBUG
---
> #else  // defined(NDEBUG)
47c47
< #endif  // !_DEBUG
---
> #endif  // !defined(NDEBUG)
231c231
< #ifdef _DEBUG
---
> #if !defined(NDEBUG)
238c238
< #endif  // _DEBUG
---
> #endif  // !defined(NDEBUG)
diff -r libjingle-0.4.0/talk/base/diskcache_win32.cc libjingle/files/talk/base/diskcache_win32.cc
38c38
<       entry->streams = max(entry->streams, index + 1);
---
>       entry->streams = _max(entry->streams, index + 1);
diff -r libjingle-0.4.0/talk/base/helpers.cc libjingle/files/talk/base/helpers.cc
38a39
> #include <wincrypt.h>
diff -r libjingle-0.4.0/talk/base/host.cc libjingle/files/talk/base/host.cc
30a31
> #include <cstdlib>
diff -r libjingle-0.4.0/talk/base/httpclient.cc libjingle/files/talk/base/httpclient.cc
670a671
>         HttpAuthContext *context = context_.get();
676c677,678
<           *context_.use(), response, auth_method);
---
>           context, response, auth_method);
>         context_.reset(context);
diff -r libjingle-0.4.0/talk/base/httpcommon.h libjingle/files/talk/base/httpcommon.h
172c172
< inline const uint16 UrlDefaultPort(bool secure) {
---
> inline uint16 UrlDefaultPort(bool secure) {
diff -r libjingle-0.4.0/talk/base/logging.cc libjingle/files/talk/base/logging.cc
27a28
> #include <stdio.h>
76c77
< #if _DEBUG
---
> #if LOGGING
78c79
< #else  // !_DEBUG
---
> #else
80c81
< #endif  // !_DEBUG
---
> #endif
diff -r libjingle-0.4.0/talk/base/logging.h libjingle/files/talk/base/logging.h
67a68,69
> 
> #if defined(SAFE_TO_DEFINE_TALK_BASE_LOGGING_MACROS)
70a73
> #endif // defined(SAFE_TO_DEFINE_TALK_BASE_LOGGING_MACROS)
195a199
> #if defined(SAFE_TO_DEFINE_TALK_BASE_LOGGING_MACROS)
197c201
< #if defined(_DEBUG) && !defined(NDEBUG)
---
> #if !defined(NDEBUG)
290a295
> #endif  // defined(SAFE_TO_DEFINE_TALK_BASE_LOGGING_MACROS)
diff -r libjingle-0.4.0/talk/base/messagequeue.cc libjingle/files/talk/base/messagequeue.cc
98,99c98,99
<     new_ss = true;
<     ss_ = new PhysicalSocketServer();
---
>     default_ss_.reset(new PhysicalSocketServer());
>     ss_ = default_ss_.get();
103a104,107
>   // The signal is done from here to ensure
>   // that it always gets called when the queue
>   // is going away.
>   SignalQueueDestroyed();
108,109d111
<   if (new_ss)
<     delete ss_;
113,115d114
<   if (new_ss)
<     delete ss_;
<   new_ss = false;
119c118
< void MessageQueue::Stop() {
---
> void MessageQueue::Quit() {
124c123
< bool MessageQueue::IsStopping() {
---
> bool MessageQueue::IsQuitting() {
diff -r libjingle-0.4.0/talk/base/messagequeue.h libjingle/files/talk/base/messagequeue.h
35a36
> #include "talk/base/scoped_ptr.h"
162,164c163,164
< 
<   virtual void Stop();
<   virtual bool IsStopping();
---
>   virtual void Quit();
>   virtual bool IsQuitting();
188a189,192
>   // When this signal is sent out, any references to this queue should
>   // no longer be used.
>   sigslot::signal0<> SignalQueueDestroyed;
> 
192a197,198
>   // If a server isn't supplied in the constructor, use this one.
>   scoped_ptr<SocketServer> default_ss_;
diff -r libjingle-0.4.0/talk/base/natserver.cc libjingle/files/talk/base/natserver.cc
28a29
> #include <cstring>
diff -r libjingle-0.4.0/talk/base/natsocketfactory.cc libjingle/files/talk/base/natsocketfactory.cc
29a30
> #include <cstring>
diff -r libjingle-0.4.0/talk/base/openssladapter.cc libjingle/files/talk/base/openssladapter.cc
619c619
< #ifdef _DEBUG
---
> #if !defined(NDEBUG)
707c707
< #if _DEBUG
---
> #if !defined(NDEBUG)
736c736
< #endif  // _DEBUG
---
> #endif  // !defined(NDEBUG)
740c740
< #if _DEBUG
---
> #if !defined(NDEBUG)
798c798
< #ifdef _DEBUG
---
> #if !defined(NDEBUG)
diff -r libjingle-0.4.0/talk/base/openssladapter.h libjingle/files/talk/base/openssladapter.h
72c72
< #if _DEBUG
---
> #if !defined(NDEBUG)
74c74
< #endif  // !_DEBUG
---
> #endif  // !defined(NDEBUG)
diff -r libjingle-0.4.0/talk/base/physicalsocketserver.cc libjingle/files/talk/base/physicalsocketserver.cc
61a62
> #include "talk/base/winsock_initializer.h"
67,86d67
< #ifdef WIN32
< class WinsockInitializer {
< public:
<   WinsockInitializer() {
<     WSADATA wsaData;
<     WORD wVersionRequested = MAKEWORD(1, 0);
<     err_ = WSAStartup(wVersionRequested, &wsaData);
<   }
<   ~WinsockInitializer() {
<     WSACleanup();
<   }
<   int error() {
<     return err_;
<   }
< private:
<   int err_;
< };
< WinsockInitializer g_winsockinit;
< #endif
< 
124a106,108
> #ifdef WIN32
>     EnsureWinsockInit();
> #endif
187c171,177
<       addr2.Resolve(); // TODO: Do this async later?
---
>       // TODO: Do this async later?
>       if (!addr2.Resolve()) {
>         LOG(LS_ERROR) << "Resolving addr failed";
>         UpdateLastError();
>         Close();
>         return SOCKET_ERROR;
>       }
265a256,259
>       LOG(LS_WARNING) << "EOF from socket; deferring close event";
>       // Must turn this back on so that the select() loop will notice the close
>       // event.
>       enabled_events_ |= kfRead;
402a397
>   virtual bool IsDescriptorClosed() = 0;
452a448,451
>   virtual bool IsDescriptorClosed() {
>     return false;
>   }
> 
490a490,497
>   virtual bool IsDescriptorClosed() {
>     // We don't have a reliable way of distinguishing end-of-stream
>     // from readability.  So test on each readable call.  Is this
>     // inefficient?  Probably.
>     char ch;
>     return (0 == ::recv(s_, &ch, 1, MSG_PEEK));
>   }
> 
546a554,557
>   virtual bool IsDescriptorClosed() {
>     return false;
>   }
> 
916c927,931
<           ff |= kfRead;
---
>           if (pdispatcher->IsDescriptorClosed()) {
>             ff |= kfClose;
>           } else {
>             ff |= kfRead;
>           }
diff -r libjingle-0.4.0/talk/base/proxydetect.cc libjingle/files/talk/base/proxydetect.cc
205,206c205,206
<   const char* list = slist.c_str();
<   while (*list) {
---
>   const char* clist = slist.c_str();
>   while (*clist) {
208,209c208,209
<     if (isspace(*list)) {
<       ++list;
---
>     if (isspace(*clist)) {
>       ++clist;
214,217c214,217
<     const char * start = list;
<     if (const char * end = strchr(list, sep)) {
<       len = (end - list);
<       list += len + 1;
---
>     const char * start = clist;
>     if (const char * end = strchr(clist, sep)) {
>       len = (end - clist);
>       clist += len + 1;
219,220c219,220
<       len = strlen(list);
<       list += len;
---
>       len = strlen(clist);
>       clist += len;
diff -r libjingle-0.4.0/talk/base/schanneladapter.cc libjingle/files/talk/base/schanneladapter.cc
607c607
<   size_t read = min(cb, readable.size());
---
>   size_t read = _min(cb, readable.size());
diff -r libjingle-0.4.0/talk/base/scoped_ptr.h libjingle/files/talk/base/scoped_ptr.h
36,257c36
< namespace talk_base {
< 
< template <typename T>
< class scoped_ptr {
<  private:
< 
<   T* ptr;
< 
<   scoped_ptr(scoped_ptr const &);
<   scoped_ptr & operator=(scoped_ptr const &);
< 
<  public:
< 
<   typedef T element_type;
< 
<   explicit scoped_ptr(T* p = 0): ptr(p) {}
< 
<   ~scoped_ptr() {
<     typedef char type_must_be_complete[sizeof(T)];
<     delete ptr;
<   }
< 
<   void reset(T* p = 0) {
<     typedef char type_must_be_complete[sizeof(T)];
< 
<     if (ptr != p) {
<       delete ptr;
<       ptr = p;
<     }
<   }
< 
<   T& operator*() const {
<     assert(ptr != 0);
<     return *ptr;
<   }
< 
<   T* operator->() const  {
<     assert(ptr != 0);
<     return ptr;
<   }
< 
<   T* get() const  {
<     return ptr;
<   }
< 
<   void swap(scoped_ptr & b) {
<     T* tmp = b.ptr;
<     b.ptr = ptr;
<     ptr = tmp;
<   }
< 
<   T* release() {
<     T* tmp = ptr;
<     ptr = 0;
<     return tmp;
<   }
<   
<   T** accept() {
<     if (ptr) {
<       delete ptr;
<       ptr = 0;
<     }
<     return &ptr;
<   }
< 
<   T** use() {
<     return &ptr;
<   }
< };
< 
< template<typename T> inline
< void swap(scoped_ptr<T>& a, scoped_ptr<T>& b) {
<   a.swap(b);
< }
< 
< 
< 
< 
< //  scoped_array extends scoped_ptr to arrays. Deletion of the array pointed to
< //  is guaranteed, either on destruction of the scoped_array or via an explicit
< //  reset(). Use shared_array or std::vector if your needs are more complex.
< 
< template<typename T>
< class scoped_array {
<  private:
< 
<   T* ptr;
< 
<   scoped_array(scoped_array const &);
<   scoped_array & operator=(scoped_array const &);
< 
<  public:
< 
<   typedef T element_type;
< 
<   explicit scoped_array(T* p = 0) : ptr(p) {}
< 
<   ~scoped_array() {
<     typedef char type_must_be_complete[sizeof(T)];
<     delete[] ptr;
<   }
< 
<   void reset(T* p = 0) {
<     typedef char type_must_be_complete[sizeof(T)];
< 
<     if (ptr != p) {
<       delete [] ptr;
<       ptr = p;
<     }
<   }
< 
<   T& operator[](std::ptrdiff_t i) const {
<     assert(ptr != 0);
<     assert(i >= 0);
<     return ptr[i];
<   }
< 
<   T* get() const {
<     return ptr;
<   }
< 
<   void swap(scoped_array & b) {
<     T* tmp = b.ptr;
<     b.ptr = ptr;
<     ptr = tmp;
<   }
< 
<   T* release() {
<     T* tmp = ptr;
<     ptr = 0;
<     return tmp;
<   }
< 
<   T** accept() {
<     if (ptr) {
<       delete [] ptr;
<       ptr = 0;
<     }
<     return &ptr;
<   }
< };
< 
< template<class T> inline
< void swap(scoped_array<T>& a, scoped_array<T>& b) {
<   a.swap(b);
< }
< 
< // scoped_ptr_malloc<> is similar to scoped_ptr<>, but it accepts a
< // second template argument, the function used to free the object.
< 
< template<typename T, void (*FF)(void*) = free> class scoped_ptr_malloc {
<  private:
< 
<   T* ptr;
< 
<   scoped_ptr_malloc(scoped_ptr_malloc const &);
<   scoped_ptr_malloc & operator=(scoped_ptr_malloc const &);
< 
<  public:
< 
<   typedef T element_type;
< 
<   explicit scoped_ptr_malloc(T* p = 0): ptr(p) {}
< 
<   ~scoped_ptr_malloc() {
<     typedef char type_must_be_complete[sizeof(T)];
<     FF(static_cast<void*>(ptr));
<   }
< 
<   void reset(T* p = 0) {
<     typedef char type_must_be_complete[sizeof(T)];
< 
<     if (ptr != p) {
<       FF(static_cast<void*>(ptr));
<       ptr = p;
<     }
<   }
< 
<   T& operator*() const {
<     assert(ptr != 0);
<     return *ptr;
<   }
< 
<   T* operator->() const {
<     assert(ptr != 0);
<     return ptr;
<   }
< 
<   T* get() const {
<     return ptr;
<   }
< 
<   void swap(scoped_ptr_malloc & b) {
<     T* tmp = b.ptr;
<     b.ptr = ptr;
<     ptr = tmp;
<   }
< 
<   T* release() {
<     T* tmp = ptr;
<     ptr = 0;
<     return tmp;
<   }
< 
<   T** accept() {
<     if (ptr) {
<       FF(static_cast<void*>(ptr));
<       ptr = 0;
<     }
<     return &ptr;
<   }
< };
< 
< template<typename T, void (*FF)(void*)> inline
< void swap(scoped_ptr_malloc<T,FF>& a, scoped_ptr_malloc<T,FF>& b) {
<   a.swap(b);
< }
< 
< } // namespace talk_base
< 
< // TODO: get rid of this global using 
< using talk_base::scoped_ptr;
---
> #include "base/scoped_ptr.h"
diff -r libjingle-0.4.0/talk/base/signalthread.cc libjingle/files/talk/base/signalthread.cc
12a13,15
>   main_->SignalQueueDestroyed.connect(this,
>                                       &SignalThread::OnMainThreadDestroyed);
>   refcount_ = 1;
15a19,23
> void SignalThread::OnMainThreadDestroyed() {
>   EnterExit ee(this);
>   main_ = NULL;
> }
> 
19a28
>   EnterExit ee(this);
25a35
>   EnterExit ee(this);
27c37
<   if (kInit == state_) {
---
>   if (kInit == state_ || kComplete == state_) {
36c46,47
< void SignalThread::Destroy() {
---
> void SignalThread::Destroy(bool wait) {
>   EnterExit ee(this);
39,40c50,51
<     delete this;
<   } else if (kRunning == state_) {
---
>     refcount_--;
>   } else if (kRunning == state_ || kReleasing == state_) {
42,47c53,63
<     // A couple tricky issues here:
<     // 1) Thread::Stop() calls Join(), which we don't want... we just want
<     //    to stop the MessageQueue, which causes ContinueWork() to return false.
<     // 2) OnWorkStop() must follow Stop(), so that when the thread wakes up
<     //    due to OWS(), ContinueWork() will return false.
<     worker_.MessageQueue::Stop();
---
>     // OnWorkStop() must follow Quit(), so that when the thread wakes up due to
>     // OWS(), ContinueWork() will return false.
>     if (wait) {
>       // Release the thread's lock so that it can return from ::Run.
>       cs_.Leave(); 
>       worker_.Stop();
>       cs_.Enter();
>       refcount_--;
>     } else {
>       worker_.Quit();
>     }
54a71
>   EnterExit ee(this);
57c74
<     delete this;
---
>     refcount_--;
66a84
>   EnterExit ee(this);
71a90
>   EnterExit ee(this);
81a101,111
>       // Before signaling that the work is done, make sure that the worker
>       // thread actually is done. We got here because DoWork() finished and
>       // Run() posted the ST_MSG_WORKER_DONE message. This means the worker
>       // thread is about to go away anyway, but sometimes it doesn't actually
>       // finish before SignalWorkDone is processed, and for a reusable
>       // SignalThread this makes an assert in thread.cc fire.
>       //
>       // Calling Stop() on the worker ensures that the OS thread that underlies
>       // the worker will finish, and will be set to NULL, enabling us to call
>       // Start() again.
>       worker_.Stop();
85c115
<       delete this;
---
>       refcount_--;
92c122,127
<   main_->Post(this, ST_MSG_WORKER_DONE);
---
>   {
>     EnterExit ee(this);
>     if (main_) {
>       main_->Post(this, ST_MSG_WORKER_DONE);
>     }
>   }
diff -r libjingle-0.4.0/talk/base/signalthread.h libjingle/files/talk/base/signalthread.h
15a16,19
> //   Periodic tasks: Wait for SignalWorkDone, then eventually call Start()
> //    again to repeat the task. When the instance isn't needed anymore,
> //    call Release. DoWork, OnWorkStart and OnWorkStop are called again,
> //    on a new thread.
22c26
< class SignalThread : protected MessageHandler {
---
> class SignalThread : public sigslot::has_slots<>, protected MessageHandler {
35,36c39,41
<   // SignalWorkDone will not be signalled.
<   void Destroy();
---
>   // SignalWorkDone will not be signalled.  If wait is true, does not return
>   // until the thread is deleted.
>   void Destroy(bool wait);
53c58
<   
---
> 
57c62
<   // Context: Worker Thread.  Subclass should call periodically to
---
>   // Context: Worker Thread.  Subclass should call periodically to 
67c72
<   
---
>  
79a85,106
>   class EnterExit {
>     friend class SignalThread;
>    
>     SignalThread * t_;
>    
>     EnterExit(SignalThread * t) : t_(t) {
>       t_->cs_.Enter();
>       t_->refcount_ += 1;
>     }
>     ~EnterExit() {
>       bool d = (0 == (--(t_->refcount_)));
>       t_->cs_.Leave();
>       if (d)
>         delete t_;
>     }
>   };
> 
>   friend class EnterExit;
>  
>   CriticalSection cs_;
>   int refcount_;
> 
80a108
>   void OnMainThreadDestroyed();
84c112,118
<   enum State { kInit, kRunning, kComplete, kStopping, kReleasing } state_;
---
>   enum State {
>     kInit,            // Initialized, but not started
>     kRunning,         // Started and doing work
>     kReleasing,       // Same as running, but to be deleted when work is done
>     kComplete,        // Work is done
>     kStopping,        // Work is being interrupted
>   } state_;
diff -r libjingle-0.4.0/talk/base/sigslot.h libjingle/files/talk/base/sigslot.h
530c530
< #ifdef _DEBUG
---
> #if !defined(NDEBUG)
676c676
< #ifdef _DEBUG
---
> #if !defined(NDEBUG)
807c807
< #ifdef _DEBUG
---
> #if !defined(NDEBUG)
937c937
< #ifdef _DEBUG
---
> #if !defined(NDEBUG)
1067c1067
< #ifdef _DEBUG
---
> #if !defined(NDEBUG)
1199c1199
< #ifdef _DEBUG
---
> #if !defined(NDEBUG)
1331c1331
< #ifdef _DEBUG
---
> #if !defined(NDEBUG)
1463c1463
< #ifdef _DEBUG
---
> #if !defined(NDEBUG)
1596c1596
< #ifdef _DEBUG
---
> #if !defined(NDEBUG)
diff -r libjingle-0.4.0/talk/base/socket.h libjingle/files/talk/base/socket.h
77a78
> #undef ETIMEDOUT // remove pthread.h's definition
diff -r libjingle-0.4.0/talk/base/socketadapters.cc libjingle/files/talk/base/socketadapters.cc
43a44,45
> #include <cstring>
> 
diff -r libjingle-0.4.0/talk/base/socketaddress.cc libjingle/files/talk/base/socketaddress.cc
52c52
< #ifdef _DEBUG
---
> #if !defined(NDEBUG)
54c54
< #else // !_DEBUG
---
> #else // defined(NDEBUG)
56c56
< #endif // !_DEBUG
---
> #endif // !defined(NDEBUG)
diff -r libjingle-0.4.0/talk/base/socketfactory.h libjingle/files/talk/base/socketfactory.h
32a33
> #include "talk/base/ssladapter.h"
46a48,52
> 
>   // Wraps the given socket in an SSL adapter.
>   virtual SSLAdapter* CreateSSLAdapter(AsyncSocket* socket) {
>     return SSLAdapter::Create(socket);
>   }
diff -r libjingle-0.4.0/talk/base/socketpool.cc libjingle/files/talk/base/socketpool.cc
142d141
<     ASSERT(false);
189d187
<       ASSERT(false);
diff -r libjingle-0.4.0/talk/base/ssladapter.cc libjingle/files/talk/base/ssladapter.cc
34c34,35
< #define SSL_USE_OPENSSL 1
---
> // Turn off OpenSSL
> //#define SSL_USE_OPENSSL 1
84a86
> #if SSL_USE_OPENSSL || SSL_USE_SCHANNEL
85a88,90
> #else
>   return NULL;
> #endif
diff -r libjingle-0.4.0/talk/base/stream.cc libjingle/files/talk/base/stream.cc
27a28
> #include <stdio.h>
diff -r libjingle-0.4.0/talk/base/stringencode.cc libjingle/files/talk/base/stringencode.cc
34a35
> #include <stdlib.h>
525c526
< #ifdef _DEBUG
---
> #if !defined(NDEBUG)
575c576
< #endif  // _DEBUG
---
> #endif  // !defined(NDEBUG)
diff -r libjingle-0.4.0/talk/base/stringutils.cc libjingle/files/talk/base/stringutils.cc
72c72
< #if _DEBUG
---
> #if !defined(NDEBUG)
76c76
< #endif  // _DEBUG
---
> #endif  // !defined(NDEBUG)
diff -r libjingle-0.4.0/talk/base/stringutils.h libjingle/files/talk/base/stringutils.h
33a34
> #include <string.h>
87a89
> #if 0
93a96
> #endif
200,208d202
< size_t sprintfn(CTYPE* buffer, size_t buflen, const CTYPE* format, ...) {
<   va_list args;
<   va_start(args, format);
<   size_t len = vsprintfn(buffer, buflen, format, args);
<   va_end(args);
<   return len;
< }
< 
< template<class CTYPE>
218a213,221
> template<class CTYPE>
> size_t sprintfn(CTYPE* buffer, size_t buflen, const CTYPE* format, ...) {
>   va_list args;
>   va_start(args, format);
>   size_t len = vsprintfn(buffer, buflen, format, args);
>   va_end(args);
>   return len;
> }
> 
272c275
<   inline static const char* Traits<char>::empty_str() { return ""; }
---
>   inline static const char* empty_str() { return ""; }
diff -r libjingle-0.4.0/talk/base/task.cc libjingle/files/talk/base/task.cc
5c5
<  * Redistribution and use in source and binary forms, with or without 
---
>  * Redistribution and use in source and binary forms, with or without
8c8
<  *  1. Redistributions of source code must retain the above copyright notice, 
---
>  *  1. Redistributions of source code must retain the above copyright notice,
13c13
<  *  3. The name of the author may not be used to endorse or promote products 
---
>  *  3. The name of the author may not be used to endorse or promote products
17c17
<  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
---
>  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
19c19
<  * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
---
>  * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23,24c23,24
<  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 
<  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 
---
>  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
>  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
141c141
<   if (aborted_ || done_)
---
>   if (done_)
150c150
<       Wake();  // to self-delete
---
>       GetRunner()->WakeTasks();
diff -r libjingle-0.4.0/talk/base/taskrunner.h libjingle/files/talk/base/taskrunner.h
63a64,68
>   bool HasPendingTimeoutTask() {
>     return next_timeout_task_ != NULL &&
>         next_timeout_task_->TimedOut();
>   }
> 
diff -r libjingle-0.4.0/talk/base/testclient.cc libjingle/files/talk/base/testclient.cc
29a30
> #include <cstring>
diff -r libjingle-0.4.0/talk/base/thread.cc libjingle/files/talk/base/thread.cc
100a101,105
> bool ThreadManager::ThreadActive(Thread *thread) {
>   CritScope cs(&crit_);
>   return(std::find(threads_.begin(), threads_.end(), thread) != threads_.end());
> }
> 
103a109
>   stopped_ = false;
124,125c130,135
<   pthread_create(&thread_, &attr, PreRun, this);
<   started_ = true;
---
>   CritScope cs(&started_crit_);
>   // Make sure Join() hasn't been called yet.
>   if (stopped_)
>     return;
>   if (pthread_create(&thread_, &attr, PreRun, this) == 0)
>       started_ = true;
128a139,140
>   CritScope cs(&started_crit_);
>   stopped_ = true;
131a144
>     started_ = false;
168a182,185
>   CritScope cs(&started_crit_);
>   // Make sure Join() hasn't been called yet.
>   if (stopped_)
>     return;
181a199,200
>   CritScope cs(&started_crit_);
>   stopped_ = true;
191a211,213
>   // Make sure the thread hasn't been deleted.
>   if (!g_thmgr.ThreadActive(thread))
>     return NULL;
207c229
<   MessageQueue::Stop();
---
>   MessageQueue::Quit();
329c351
<       return false;
---
>       return !IsQuitting();
diff -r libjingle-0.4.0/talk/base/thread.h libjingle/files/talk/base/thread.h
57a58
>   bool ThreadActive(Thread *thread);
134a136
>   CriticalSection started_crit_;
135a138
>   bool stopped_;
diff -r libjingle-0.4.0/talk/base/urlencode.cc libjingle/files/talk/base/urlencode.cc
0a1,2
> #include <stdlib.h>
> #include <string.h>
Only in libjingle-0.4.0/talk/base: win32socketserver.cc
Only in libjingle-0.4.0/talk/base: win32socketserver.h
Only in libjingle/files/talk/base: win32window.cc
diff -r libjingle-0.4.0/talk/base/winping.cc libjingle/files/talk/base/winping.cc
133c133
<   return sizeof(ICMP_ECHO_REPLY) + max(8UL, data_size);
---
>   return sizeof(ICMP_ECHO_REPLY) + _max((uint32)(8UL), data_size);
317c317
< } // namespace talk_base
\ No newline at end of file
---
> } // namespace talk_base
Only in libjingle/files/talk/base: winsock_initializer.cc
Only in libjingle/files/talk/base: winsock_initializer.h
Only in libjingle-0.4.0/talk: examples
Only in libjingle-0.4.0/talk: libjingle.sln
Only in libjingle-0.4.0/talk: libjingle.vcproj
Only in libjingle-0.4.0/talk: p2p
Only in libjingle-0.4.0/talk: session
Only in libjingle-0.4.0/talk: third_party
Only in libjingle-0.4.0/talk/xmllite: Makefile.in
diff -r libjingle-0.4.0/talk/xmllite/qname.cc libjingle/files/talk/xmllite/qname.cc
39c39
<   int result = ns.size() * 101;
---
>   int result = static_cast<int>(ns.size()) * 101;
diff -r libjingle-0.4.0/talk/xmllite/qname.h libjingle/files/talk/xmllite/qname.h
64d63
<       refcount_(1),
66c65,66
<       localPart_(local) {}
---
>       localPart_(local),
>       refcount_(1) {}
diff -r libjingle-0.4.0/talk/xmllite/xmlelement.cc libjingle/files/talk/xmllite/xmlelement.cc
88c88,89
<     pLastChild_(NULL) {
---
>     pLastChild_(NULL),
>     cdata_(false) {
97c98,99
<     pLastChild_(NULL) {
---
>     pLastChild_(NULL),
>     cdata_(false) {
125a128
>   cdata_ = elt.cdata_;
133c136,137
<   pLastChild_(NULL) {
---
>   pLastChild_(NULL),
>   cdata_(false) {
393a398,403
> XmlElement::AddCDATAText(const char * buf, int len) {
>   cdata_ = true;
>   AddParsedText(buf, len);
> }
> 
> void
diff -r libjingle-0.4.0/talk/xmllite/xmlelement.h libjingle/files/talk/xmllite/xmlelement.h
203a204,206
>   // Note: CDATA is not supported by XMPP, therefore using this function will
>   // generate non-XMPP compatible XML.
>   void AddCDATAText(const char * buf, int len);
217a221,222
>   bool IsCDATA() const { return cdata_; }
> 
228a234
>   bool cdata_;
diff -r libjingle-0.4.0/talk/xmllite/xmlparser.cc libjingle/files/talk/xmllite/xmlparser.cc
28,29d27
< #include "talk/xmllite/xmlparser.h"
< 
35a34
> #include "talk/xmllite/xmlconstants.h"
38c37
< #include "talk/xmllite/xmlconstants.h"
---
> #include "talk/xmllite/xmlparser.h"
119a119,121
>   context_.SetPosition(XML_GetCurrentLineNumber(expat_),
>                        XML_GetCurrentColumnNumber(expat_),
>                        XML_GetCurrentByteIndex(expat_));
127a130,132
>   context_.SetPosition(XML_GetCurrentLineNumber(expat_),
>                        XML_GetCurrentColumnNumber(expat_),
>                        XML_GetCurrentByteIndex(expat_));
134a140,142
>   context_.SetPosition(XML_GetCurrentLineNumber(expat_),
>                        XML_GetCurrentColumnNumber(expat_),
>                        XML_GetCurrentByteIndex(expat_));
168c176,180
<   if (XML_Parse(expat_, data, static_cast<int>(len), isFinal) != XML_STATUS_OK)
---
>   if (XML_Parse(expat_, data, static_cast<int>(len), isFinal) !=
>       XML_STATUS_OK) {
>     context_.SetPosition(XML_GetCurrentLineNumber(expat_),
>                          XML_GetCurrentColumnNumber(expat_),
>                          XML_GetCurrentByteIndex(expat_));
169a182
>   }
193c206,209
<     raised_(XML_ERROR_NONE) {
---
>     raised_(XML_ERROR_NONE),
>     line_number_(0),
>     column_number_(0),
>     byte_index_(0) {
247c263,285
< XmlParser::ParseContext::~ParseContext() {
---
> void
> XmlParser::ParseContext::SetPosition(XML_Size line, XML_Size column,
>                                      XML_Index byte_index) {
>   line_number_ = line;
>   column_number_ = column;
>   byte_index_ = byte_index;
> }
> 
> void
> XmlParser::ParseContext::GetPosition(unsigned long * line,
>                                      unsigned long * column,
>                                      unsigned long * byte_index) {
>   if (line != NULL) {
>     *line = static_cast<unsigned long>(line_number_);
>   }
> 
>   if (column != NULL) {
>     *column = static_cast<unsigned long>(column_number_);
>   }
> 
>   if (byte_index != NULL) {
>     *byte_index = static_cast<unsigned long>(byte_index_);
>   }
249a288
> XmlParser::ParseContext::~ParseContext() {
251a291
> }
diff -r libjingle-0.4.0/talk/xmllite/xmlparser.h libjingle/files/talk/xmllite/xmlparser.h
48a49,50
>   virtual void GetPosition(unsigned long * line, unsigned long * column,
>                            unsigned long * byte_index) = 0;
85a88,89
>     virtual void GetPosition(unsigned long * line, unsigned long * column,
>                              unsigned long * byte_index);
91a96
>     void SetPosition(XML_Size line, XML_Size column, XML_Index byte_index);
96a102,104
>     XML_Size line_number_;
>     XML_Size column_number_;
>     XML_Index byte_index_;
diff -r libjingle-0.4.0/talk/xmllite/xmlprinter.cc libjingle/files/talk/xmllite/xmlprinter.cc
46a47
>   void PrintCDATAText(const std::string & text);
134,136c135,141
<       if (pchild->IsText())
<         PrintBodyText(pchild->AsText()->Text());
<       else
---
>       if (pchild->IsText()) {
>         if (element->IsCDATA()) {
>           PrintCDATAText(pchild->AsText()->Text());
>         } else {
>           PrintBodyText(pchild->AsText()->Text());
>         }
>       } else
188a194,197
> void
> XmlPrinterImpl::PrintCDATAText(const std::string & text) {
>   *pout_ << "<![CDATA[" << text << "]]>";
> }
Only in libjingle-0.4.0/talk/xmpp: Makefile.in
Only in libjingle-0.4.0/talk/xmpp: constants.cc
Only in libjingle-0.4.0/talk/xmpp: constants.h
diff -r libjingle-0.4.0/talk/xmpp/jid.cc libjingle/files/talk/xmpp/jid.cc
33c33
< #include "talk/xmpp/constants.h"
---
> #include "talk/xmpp/xmppconstants.h"
diff -r libjingle-0.4.0/talk/xmpp/plainsaslhandler.h libjingle/files/talk/xmpp/plainsaslhandler.h
31d30
< #include "talk/xmpp/saslhandler.h"
32a32,34
> #include <string>
> 
> #include "talk/xmpp/saslhandler.h"
68a71,76
> 
>   virtual bool GetTlsServerInfo(const talk_base::SocketAddress& server,
>                                 std::string* tls_server_hostname,
>                                 std::string* tls_server_domain) {
>     return false;
>   }
diff -r libjingle-0.4.0/talk/xmpp/prexmppauth.h libjingle/files/talk/xmpp/prexmppauth.h
33d32
< #include "talk/xmpp/saslhandler.h"
64c63
< class PreXmppAuth : public SaslHandler {
---
> class PreXmppAuth {
diff -r libjingle-0.4.0/talk/xmpp/saslcookiemechanism.h libjingle/files/talk/xmpp/saslcookiemechanism.h
33c33
< #include "talk/xmpp/constants.h"
---
> #include "talk/xmpp/xmppconstants.h"
40,41c40,55
<   SaslCookieMechanism(const std::string & mechanism, const std::string & username, const std::string & cookie) :
<     mechanism_(mechanism), username_(username), cookie_(cookie) {}
---
>   SaslCookieMechanism(const std::string & mechanism,
>                       const std::string & username,
>                       const std::string & cookie,
>                       const std::string & token_service)
>     : mechanism_(mechanism),
>       username_(username),
>       cookie_(cookie),
>       token_service_(token_service) {}
> 
>   SaslCookieMechanism(const std::string & mechanism,
>                       const std::string & username,
>                       const std::string & cookie)
>     : mechanism_(mechanism),
>       username_(username),
>       cookie_(cookie),
>       token_service_("") {}
48a63,67
>     if (!token_service_.empty()) {
>       el->AddAttr(
>           QName(true, "http://www.google.com/talk/protocol/auth", "service"),
>           token_service_);
>     }
62a82
>   std::string token_service_;
diff -r libjingle-0.4.0/talk/xmpp/saslhandler.h libjingle/files/talk/xmpp/saslhandler.h
31a32,34
> #include <vector>
> 
> #include "talk/base/socketaddress.h"
53a57,63
> 
>   // Fills in the tls server hostname/domain to use for the given
>   // server (and returns true).  Return false if you want the defaults
>   // to be used.
>   virtual bool GetTlsServerInfo(const talk_base::SocketAddress& server,
>                                 std::string* tls_server_hostname,
>                                 std::string* tls_server_domain) = 0;
diff -r libjingle-0.4.0/talk/xmpp/saslmechanism.cc libjingle/files/talk/xmpp/saslmechanism.cc
30c30
< #include "talk/xmpp/constants.h"
---
> #include "talk/xmpp/xmppconstants.h"
diff -r libjingle-0.4.0/talk/xmpp/xmppclient.cc libjingle/files/talk/xmpp/xmppclient.cc
30c30
< #include "talk/xmpp/constants.h"
---
> #include "talk/xmpp/xmppconstants.h"
32a33
> #include "talk/xmpp/saslhandler.h"
68a70
>   scoped_ptr<SaslHandler> sasl_handler_;
93c95,99
< XmppClient::Connect(const XmppClientSettings & settings, const std::string & lang, AsyncSocket * socket, PreXmppAuth * pre_auth) {
---
> XmppClient::Connect(const XmppClientSettings & settings,
>                     const std::string & lang,
>                     AsyncSocket * socket,
>                     PreXmppAuth * pre_auth,
>                     SaslHandler * sasl_handler) {
113,125c119,125
<   //
<   // The talk.google.com server expects you to use "gmail.com" in the
<   // stream, and expects the domain certificate to be "gmail.com" as well.
<   // For all other servers, we leave the strings empty, which causes
<   // the jid's domain to be used.  "foo@example.com" -> stream to="example.com"
<   // tls certificate for "example.com"
<   //
<   // This is only true when using Gaia auth, so let's say if there's no preauth,
<   // we should use the actual server name
<   if ((settings.server().IPAsString() == buzz::STR_TALK_GOOGLE_COM ||
<       settings.server().IPAsString() == buzz::STR_TALKX_L_GOOGLE_COM) && 
<       pre_auth != NULL) {
<     d_->engine_->SetTlsServer(buzz::STR_GMAIL_COM, buzz::STR_GMAIL_COM);
---
>   if (sasl_handler) {
>     std::string tls_server_hostname, tls_server_domain;
>     if (sasl_handler->GetTlsServerInfo(settings.server(),
>                                        &tls_server_hostname,
>                                        &tls_server_domain)) {
>       d_->engine_->SetTlsServer(tls_server_hostname, tls_server_domain);
>     }
139a140
>   d_->sasl_handler_.reset(sasl_handler);
200a202,209
>   if (d_->sasl_handler_.get()) {
>     d_->engine_->SetSaslHandler(d_->sasl_handler_.release());
>   }
>   else {
>     d_->engine_->SetSaslHandler(new PlainSaslHandler(
>         d_->engine_->GetUser(), d_->pass_, d_->allow_plain_));
>   }
> 
209,210d217
<     d_->engine_->SetSaslHandler(new PlainSaslHandler(
<               d_->engine_->GetUser(), d_->pass_, d_->allow_plain_));
253,254d259
<   // transfer ownership of pre_auth_ to engine
<   d_->engine_->SetSaslHandler(d_->pre_auth_.release());
261a267,268
>     d_->pre_engine_error_ = XmppEngine::ERROR_SOCKET;
>     d_->pre_engine_subcode_ = d_->socket_->GetError();
347c354
< //#ifdef _DEBUG
---
> //#if !defined(NDEBUG)
375c382
< //#ifdef _DEBUG
---
> //#if !defined(NDEBUG)
diff -r libjingle-0.4.0/talk/xmpp/xmppclient.h libjingle/files/talk/xmpp/xmppclient.h
42a43
> class SaslHandler;
80c81,82
<                            PreXmppAuth * preauth);
---
>                            PreXmppAuth * preauth,
>                            SaslHandler * sasl_handler);
141c143
<   std::string XmppClient::GetStateName(int state) const {
---
>   std::string GetStateName(int state) const {
diff -r libjingle-0.4.0/talk/xmpp/xmppclientsettings.h libjingle/files/talk/xmpp/xmppclientsettings.h
31d30
< #include "talk/p2p/base/port.h"
32a32,45
> #include "talk/base/proxyinfo.h"
> 
> namespace cricket {
> 
> // This enum was taken from talk/p2p/base/port.h, which is the only
> // thing we actually need from the p2p directory.
> enum ProtocolType {
>   PROTO_UDP,
>   PROTO_TCP,
>   PROTO_SSLTCP,
>   PROTO_LAST = PROTO_SSLTCP
> };
> 
> }  // namespace cricket
59a73,75
>   void set_token_service(const std::string & token_service) {
>     token_service_ = token_service;
>   }
75a92
>   const std::string & token_service() const { return token_service_; }
93a111
>   std::string token_service_;
Only in libjingle/files/talk/xmpp: xmppconstants.cc
Only in libjingle/files/talk/xmpp: xmppconstants.h
diff -r libjingle-0.4.0/talk/xmpp/xmppengineimpl.cc libjingle/files/talk/xmpp/xmppengineimpl.cc
37c37
< #include "talk/xmpp/constants.h"
---
> #include "talk/xmpp/xmppconstants.h"
diff -r libjingle-0.4.0/talk/xmpp/xmppengineimpl_iq.cc libjingle/files/talk/xmpp/xmppengineimpl_iq.cc
32c32
< #include "talk/xmpp/constants.h"
---
> #include "talk/xmpp/xmppconstants.h"
diff -r libjingle-0.4.0/talk/xmpp/xmpplogintask.cc libjingle/files/talk/xmpp/xmpplogintask.cc
34c34
< #include "talk/xmpp/constants.h"
---
> #include "talk/xmpp/xmppconstants.h"
44c44
< #ifdef _DEBUG
---
> #if !defined(NDEBUG)
59c59
< #endif  // _DEBUG
---
> #endif  // !defined(NDEBUG)
103c103
< #if _DEBUG
---
> #if !defined(NDEBUG)
106c106
< #endif  // _DEBUG
---
> #endif  // !defined(NDEBUG)
218a219,221
>         auth->SetAttr(QN_GOOGLE_ALLOW_GENERATED_JID_XMPP_LOGIN, "true");
>         auth->SetAttr(QN_GOOGLE_AUTH_CLIENT_USES_FULL_BIND_RESULT, "true");
> 
diff -r libjingle-0.4.0/talk/xmpp/xmpplogintask.h libjingle/files/talk/xmpp/xmpplogintask.h
93c93
< #ifdef _DEBUG
---
> #if !defined(NDEBUG)
95c95
< #endif  // _DEBUG
---
> #endif  // !defined(NDEBUG)
diff -r libjingle-0.4.0/talk/xmpp/xmppstanzaparser.cc libjingle/files/talk/xmpp/xmppstanzaparser.cc
32c32
< #include "talk/xmpp/constants.h"
---
> #include "talk/xmpp/xmppconstants.h"
diff -r libjingle-0.4.0/talk/xmpp/xmpptask.cc libjingle/files/talk/xmpp/xmpptask.cc
31c31
< #include "talk/xmpp/constants.h"
---
> #include "talk/xmpp/xmppconstants.h"
40c40
< #ifdef _DEBUG
---
> #if !defined(NDEBUG)
88c88
< #ifdef _DEBUG
---
> #if !defined(NDEBUG)
174c174
< }
\ No newline at end of file
---
> }
diff -r libjingle-0.4.0/talk/xmpp/xmpptask.h libjingle/files/talk/xmpp/xmpptask.h
80c80
< #ifdef _DEBUG
---
> #if !defined(NDEBUG)
106,107c106,107
<   XmlElement *MakeIqResult(const XmlElement* query);
<   XmlElement *MakeIq(const std::string& type,
---
>   static XmlElement *MakeIqResult(const XmlElement* query);
>   static XmlElement *MakeIq(const std::string& type,
123c123
< #ifdef _DEBUG
---
> #if !defined(NDEBUG)
diff -r libjingle-0.4.0/talk/base/common.cc libjingle/files/talk/base/common.cc
62c62
< } // namespace talk_base
\ No newline at end of file
---
> } // namespace talk_base
diff -r libjingle-0.4.0/talk/base/httpbase.cc libjingle/files/talk/base/httpbase.cc
154c154
<         if (sscanf(value, "%d", &data_size_) != 1) {
---
>         if (sscanf(value, "%zu", &data_size_) != 1) {
diff -r libjingle-0.4.0/talk/base/httpcommon.cc libjingle/files/talk/base/httpcommon.cc
339c339
<                   &tval.tm_hour, &tval.tm_min, &tval.tm_sec, &zone)) {
---
>                   &tval.tm_hour, &tval.tm_min, &tval.tm_sec, zone)) {
472c472
<   uint32 vmajor, vminor;
---
>   unsigned long vmajor, vminor;
549,550c549,550
<   uint32 vmajor, vminor;
<   if ((sscanf(line, "HTTP/%lu.%lu %lu%n", &vmajor, &vminor, &scode, &pos) != 3)
---
>   unsigned long vmajor, vminor;
>   if ((sscanf(line, "HTTP/%lu.%lu %lu%zu", &vmajor, &vminor, &scode, &pos) != 3)
693c693
<     sprintf(buffer, "%d", time(0));
---
>     sprintf(buffer, "%ld", time(0));
diff -r libjingle-0.4.0/talk/base/httpcommon.h libjingle/files/talk/base/httpcommon.h
329c329
<   uint32 scode;
---
>   unsigned long scode;
diff -r libjingle-0.4.0/talk/base/diskcache.cc libjingle/files/talk/base/diskcache.cc
300c300
<   if (1 != sscanf(pathname.extension().c_str(), ".%u", index))
---
>   if (1 != sscanf(pathname.extension().c_str(), ".%zu", index))
diff -r libjingle-0.4.0/talk/base/logging.cc libjingle/files/talk/base/logging.cc
69c69
<   snprintf(buffer, sizeof(buffer), "0x%08lx", err);  
---
>   snprintf(buffer, sizeof(buffer), "0x%08x", err);  
diff -r libjingle-0.4.0/talk/base/socketadapters.cc libjingle/files/talk/base/socketadapters.cc
360,361c360,361
<     uint32 code;
<     if (sscanf(data, "HTTP/%*lu.%*lu %lu", &code) != 1) {
---
>     unsigned long code;
>     if (sscanf(data, "HTTP/%*u.%*u %lu", &code) != 1) {