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 > 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 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 diff -r libjingle-0.4.0/talk/base/host.cc libjingle/files/talk/base/host.cc 30a31 > #include 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 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 default_ss_; diff -r libjingle-0.4.0/talk/base/natserver.cc libjingle/files/talk/base/natserver.cc 28a29 > #include diff -r libjingle-0.4.0/talk/base/natsocketfactory.cc libjingle/files/talk/base/natsocketfactory.cc 29a30 > #include 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 < 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 inline < void swap(scoped_ptr& a, scoped_ptr& 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 < 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 inline < void swap(scoped_array& a, scoped_array& 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 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(ptr)); < } < < void reset(T* p = 0) { < typedef char type_must_be_complete[sizeof(T)]; < < if (ptr != p) { < FF(static_cast(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(ptr)); < ptr = 0; < } < return &ptr; < } < }; < < template inline < void swap(scoped_ptr_malloc& a, scoped_ptr_malloc& 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 > 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 diff -r libjingle-0.4.0/talk/base/stringencode.cc libjingle/files/talk/base/stringencode.cc 34a35 > #include 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 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 218a213,221 > template > 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::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 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 > #include 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(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(len), isFinal) != XML_STATUS_OK) --- > if (XML_Parse(expat_, data, static_cast(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(line_number_); > } > > if (column != NULL) { > *column = static_cast(column_number_); > } > > if (byte_index != NULL) { > *byte_index = static_cast(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_ << ""; > } 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 > > #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 > > #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 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) {