1 Only in libjingle-0.4.0: Makefile.in
\r
2 diff -r libjingle-0.4.0/README libjingle/files/README
\r
6 < Libjingle is a set of components provided by Google to interoperate with Google
\r
7 < Talk's peer-to-peer and voice capabilities. This package will create several
\r
8 < static libraries you may link to your project as needed.
\r
10 < -talk - No source files in talk/, just these subdirectories
\r
11 < |-base - Contains basic low-level portable utility functions for
\r
12 < | things like threads and sockets
\r
13 < |-p2p - The P2P stack
\r
14 < |-base - Base p2p functionality
\r
15 < |-client - Hooks to tie it into XMPP
\r
16 < |-session - Signaling
\r
17 < |-phone - Signaling code specific to making phone calls
\r
18 < |-third_party - Components that aren't ours
\r
19 < |-mediastreamer - Media components for dealing with sound hardware and
\r
21 < |-xmllite - XML parser
\r
22 < |-xmpp - XMPP engine
\r
24 < In addition, this package contains two examples in talk/examples which
\r
25 < illustrate the basic concepts of how the provided classes work.
\r
27 < The xmllite component of libjingle depends on expat. You can download expat
\r
28 < from http://expat.sourceforge.net/.
\r
30 < mediastreamer, the media components used by the example applications depend on
\r
31 < the oRTP and iLBC components from linphone, which can be found at
\r
32 < http://www.linphone.org. Linphone, in turn depends on GLib, which can be found
\r
33 < at http://www.gtk.org. This GLib dependency should be removed in future
\r
36 < Building Libjingle
\r
38 < Once the dependencies are installed, run ./configure. ./configure will return
\r
39 < an error if it failed to locate the proper dependencies. If ./configure
\r
40 < succeeds, run 'make' to build the components and examples.
\r
42 < When the build is complete, you can run the call example from
\r
46 > Libjingle is a set of components provided by Google to interoperate with Google
\r
47 > Talk's peer-to-peer and voice capabilities. This package will create several
\r
48 > static libraries you may link to your project as needed.
\r
50 > -talk - No source files in talk/, just these subdirectories
\r
51 > |-base - Contains basic low-level portable utility functions for
\r
52 > | things like threads and sockets
\r
53 > |-p2p - The P2P stack
\r
54 > |-base - Base p2p functionality
\r
55 > |-client - Hooks to tie it into XMPP
\r
56 > |-session - Signaling
\r
57 > |-phone - Signaling code specific to making phone calls
\r
58 > |-third_party - Components that aren't ours
\r
59 > |-mediastreamer - Media components for dealing with sound hardware and
\r
61 > |-xmllite - XML parser
\r
62 > |-xmpp - XMPP engine
\r
64 > In addition, this package contains two examples in talk/examples which
\r
65 > illustrate the basic concepts of how the provided classes work.
\r
67 > The xmllite component of libjingle depends on expat. You can download expat
\r
68 > from http://expat.sourceforge.net/.
\r
70 > mediastreamer, the media components used by the example applications depend on
\r
71 > the oRTP and iLBC components from linphone, which can be found at
\r
72 > http://www.linphone.org. Linphone, in turn depends on GLib, which can be found
\r
73 > at http://www.gtk.org. This GLib dependency should be removed in future
\r
76 > Building Libjingle
\r
78 > Once the dependencies are installed, run ./configure. ./configure will return
\r
79 > an error if it failed to locate the proper dependencies. If ./configure
\r
80 > succeeds, run 'make' to build the components and examples.
\r
82 > When the build is complete, you can run the call example from
\r
87 < Libjingle will also build a relay server that may be used to relay traffic
\r
88 < when a direct peer-to-peer connection could not be established. The relay
\r
89 < server will build in talk/p2p/base/relayserver and will listen on UDP
\r
90 < ports 5000 and 5001. See the Libjingle Developer Guide at
\r
91 < http://code.google.com/apis/talk/index.html for information about configuring
\r
92 < a client to use this relay server.
\r
96 < Lastly, Libjingle builds a STUN server which implements the STUN protocol for
\r
97 < Simple Traversal of UDP over NAT. The STUN server is built as
\r
98 < talk/p2p/base/stunserver and listens on UDP port 7000. See the Libjingle
\r
99 < Developer Guide at http://code.google.com/apis/talk/index.html for information
\r
100 < about configuring a client to use this STUN server.
\r
105 > Libjingle will also build a relay server that may be used to relay traffic
\r
106 > when a direct peer-to-peer connection could not be established. The relay
\r
107 > server will build in talk/p2p/base/relayserver and will listen on UDP
\r
108 > ports 5000 and 5001. See the Libjingle Developer Guide at
\r
109 > http://code.google.com/apis/talk/index.html for information about configuring
\r
110 > a client to use this relay server.
\r
114 > Lastly, Libjingle builds a STUN server which implements the STUN protocol for
\r
115 > Simple Traversal of UDP over NAT. The STUN server is built as
\r
116 > talk/p2p/base/stunserver and listens on UDP port 7000. See the Libjingle
\r
117 > Developer Guide at http://code.google.com/apis/talk/index.html for information
\r
118 > about configuring a client to use this STUN server.
\r
119 diff -r libjingle-0.4.0/README.win libjingle/files/README.win
\r
121 < 1. Install Visual C++ Express 2005. It is free from this link:
\r
122 < http://msdn.microsoft.com/vstudio/express/visualc/
\r
124 < 2. Install the platform SDK and integrate it into VC++ express
\r
125 < http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/
\r
127 < 3. Download and install binary package for expat:
\r
128 < http://sourceforge.net/project/showfiles.php?group_id=10127&package_id=11277
\r
130 < 4. Update the Visual C++ directories in the Projects and Solutions section in the Options dialog box
\r
131 < Library files: C:\expat-VERSION\StaticLibs
\r
132 < Include files: C:\expat-VERSION\Source\Lib
\r
133 < where VERSION is the version of expat you've downoaded
\r
135 < 5. Unzip the libjingle files and open the solution.
\r
137 < 6. If you wish to build the call example with GIPS Voice Engine Lite, download Voice Engine Lite from http://developer.globalipsound.com
\r
139 < 7. Extract the Interface and Library directories from the Voice Engine Lite zip file into talk\third_party\gips
\r
141 < 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
\r
143 < 9. Build the solution
\r
146 > 1. Install Visual C++ Express 2005. It is free from this link:
\r
147 > http://msdn.microsoft.com/vstudio/express/visualc/
\r
149 > 2. Install the platform SDK and integrate it into VC++ express
\r
150 > http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/
\r
152 > 3. Download and install binary package for expat:
\r
153 > http://sourceforge.net/project/showfiles.php?group_id=10127&package_id=11277
\r
155 > 4. Update the Visual C++ directories in the Projects and Solutions section in the Options dialog box
\r
156 > Library files: C:\expat-VERSION\StaticLibs
\r
157 > Include files: C:\expat-VERSION\Source\Lib
\r
158 > where VERSION is the version of expat you've downoaded
\r
160 > 5. Unzip the libjingle files and open the solution.
\r
162 > 6. If you wish to build the call example with GIPS Voice Engine Lite, download Voice Engine Lite from http://developer.globalipsound.com
\r
164 > 7. Extract the Interface and Library directories from the Voice Engine Lite zip file into talk\third_party\gips
\r
166 > 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
\r
168 > 9. Build the solution
\r
170 Only in libjingle-0.4.0: aclocal.m4
\r
171 Only in libjingle-0.4.0: config.guess
\r
172 diff -r libjingle-0.4.0/config.h libjingle/files/config.h
\r
174 < #define HAVE_ALSA_ASOUNDLIB_H 1
\r
176 > /* #undef HAVE_ALSA_ASOUNDLIB_H */
\r
178 < #define HAVE_GLIB 1
\r
180 > /* #undef HAVE_GLIB */
\r
182 < #define HAVE_ORTP 1
\r
184 > /* #undef HAVE_ORTP */
\r
186 < #define HAVE_SPEEX 1
\r
188 > /* #undef HAVE_SPEEX */
\r
190 < #define HAVE_SPEEX_SPEEX_H 1
\r
192 > /* #undef HAVE_SPEEX_SPEEX_H */
\r
196 > /* #undef LINUX */
\r
198 < #define __ALSA_ENABLED__ 1
\r
200 > /* #undef __ALSA_ENABLED__ */
\r
201 Only in libjingle-0.4.0: config.h.in
\r
202 Only in libjingle-0.4.0: config.sub
\r
203 Only in libjingle-0.4.0: configure
\r
204 Only in libjingle-0.4.0: depcomp
\r
205 Only in libjingle-0.4.0: install-sh
\r
206 Only in libjingle-0.4.0: ltmain.sh
\r
207 Only in libjingle-0.4.0: missing
\r
208 Only in libjingle-0.4.0/talk: Makefile.in
\r
209 Only in libjingle-0.4.0/talk/base: Makefile.in
\r
210 diff -r libjingle-0.4.0/talk/base/asynchttprequest.cc libjingle/files/talk/base/asynchttprequest.cc
\r
212 < talk_base::SSLAdapter * ssl_adapter = talk_base::SSLAdapter::Create(socket);
\r
214 > talk_base::SSLAdapter * ssl_adapter = factory_->CreateSSLAdapter(socket);
\r
216 < ssl_adapter->StartSSL(hostname_.c_str(), true);
\r
218 > int error = ssl_adapter->StartSSL(hostname_.c_str(),
\r
219 > use_restartable_ssl_sockets_);
\r
220 > if (error != 0) {
\r
221 > LOG(LS_WARNING) << "Could not start SSL; error = " << error;
\r
222 > delete ssl_adapter;
\r
225 diff -r libjingle-0.4.0/talk/base/asynchttprequest.h libjingle/files/talk/base/asynchttprequest.h
\r
227 < public SignalThread,
\r
228 < public sigslot::has_slots<> {
\r
230 > public SignalThread {
\r
232 < binary_mode_(false), agent_(user_agent) { }
\r
234 > binary_mode_(false), agent_(user_agent),
\r
235 > ignore_bad_cert_(false), use_restartable_ssl_sockets_(false) { }
\r
237 > bool use_restartable_ssl_sockets() const {
\r
238 > return use_restartable_ssl_sockets_;
\r
240 > void SetUseRestartableSSLSockets(bool use_restartable_ssl_sockets) {
\r
241 > use_restartable_ssl_sockets_ = use_restartable_ssl_sockets;
\r
244 > bool use_restartable_ssl_sockets_;
\r
245 diff -r libjingle-0.4.0/talk/base/asynctcpsocket.cc libjingle/files/talk/base/asynctcpsocket.cc
\r
247 > #include <cstring>
\r
249 diff -r libjingle-0.4.0/talk/base/autodetectproxy.cc libjingle/files/talk/base/autodetectproxy.cc
\r
251 < #include "talk/base/httpcommon.h"
\r
253 > #include "talk/base/httpcommon-inl.h"
\r
255 < Thread::Current()->MessageQueue::Stop();
\r
257 > Thread::Current()->Quit();
\r
258 diff -r libjingle-0.4.0/talk/base/autodetectproxy.h libjingle/files/talk/base/autodetectproxy.h
\r
260 < class AutoDetectProxy : public SignalThread, public sigslot::has_slots<> {
\r
262 > class AutoDetectProxy : public SignalThread {
\r
263 diff -r libjingle-0.4.0/talk/base/base64.h libjingle/files/talk/base/base64.h
\r
265 < static const std::string Base64::Base64Table;
\r
266 < static const std::string::size_type Base64::DecodeTable[];
\r
268 > static const std::string Base64Table;
\r
269 > static const std::string::size_type DecodeTable[];
\r
270 diff -r libjingle-0.4.0/talk/base/common.h libjingle/files/talk/base/common.h
\r
272 < #define stdmax(x,y) max(x,y)
\r
274 > #define stdmax(x,y) _max(x,y)
\r
276 < // A macro to disallow the evil copy constructor and operator= functions
\r
277 < // This should be used in the private: declarations for a class
\r
278 < #define DISALLOW_EVIL_CONSTRUCTORS(TypeName) \
\r
279 < TypeName(const TypeName&); \
\r
280 < void operator=(const TypeName&)
\r
282 diff -r libjingle-0.4.0/talk/base/criticalsection.h libjingle/files/talk/base/criticalsection.h
\r
286 > #if !defined(NDEBUG)
\r
290 > #endif // !defined(NDEBUG)
\r
296 > pthread_mutexattr_init(&mutex_attribute);
\r
298 > pthread_mutexattr_destroy(&mutex_attribute);
\r
299 > TRACK_OWNER(thread_ = 0);
\r
301 > TRACK_OWNER(thread_ = pthread_self());
\r
303 > TRACK_OWNER(thread_ = 0);
\r
308 > #if CS_TRACK_OWNER
\r
309 > bool CurrentThreadIsOwner() const {
\r
310 > return pthread_equal(thread_, pthread_self());
\r
312 > #endif // CS_TRACK_OWNER
\r
316 > TRACK_OWNER(pthread_t thread_);
\r
317 diff -r libjingle-0.4.0/talk/base/cryptstring.h libjingle/files/talk/base/cryptstring.h
\r
319 > #include <string.h>
\r
320 diff -r libjingle-0.4.0/talk/base/diskcache.cc libjingle/files/talk/base/diskcache.cc
\r
324 > #if !defined(NDEBUG)
\r
328 > #else // defined(NDEBUG)
\r
330 < #endif // !_DEBUG
\r
332 > #endif // !defined(NDEBUG)
\r
336 > #if !defined(NDEBUG)
\r
340 > #endif // !defined(NDEBUG)
\r
341 diff -r libjingle-0.4.0/talk/base/diskcache_win32.cc libjingle/files/talk/base/diskcache_win32.cc
\r
343 < entry->streams = max(entry->streams, index + 1);
\r
345 > entry->streams = _max(entry->streams, index + 1);
\r
346 diff -r libjingle-0.4.0/talk/base/helpers.cc libjingle/files/talk/base/helpers.cc
\r
348 > #include <wincrypt.h>
\r
349 diff -r libjingle-0.4.0/talk/base/host.cc libjingle/files/talk/base/host.cc
\r
351 > #include <cstdlib>
\r
352 diff -r libjingle-0.4.0/talk/base/httpclient.cc libjingle/files/talk/base/httpclient.cc
\r
354 > HttpAuthContext *context = context_.get();
\r
356 < *context_.use(), response, auth_method);
\r
358 > context, response, auth_method);
\r
359 > context_.reset(context);
\r
360 diff -r libjingle-0.4.0/talk/base/httpcommon.h libjingle/files/talk/base/httpcommon.h
\r
362 < inline const uint16 UrlDefaultPort(bool secure) {
\r
364 > inline uint16 UrlDefaultPort(bool secure) {
\r
365 diff -r libjingle-0.4.0/talk/base/logging.cc libjingle/files/talk/base/logging.cc
\r
367 > #include <stdio.h>
\r
377 < #endif // !_DEBUG
\r
380 diff -r libjingle-0.4.0/talk/base/logging.h libjingle/files/talk/base/logging.h
\r
383 > #if defined(SAFE_TO_DEFINE_TALK_BASE_LOGGING_MACROS)
\r
385 > #endif // defined(SAFE_TO_DEFINE_TALK_BASE_LOGGING_MACROS)
\r
387 > #if defined(SAFE_TO_DEFINE_TALK_BASE_LOGGING_MACROS)
\r
389 < #if defined(_DEBUG) && !defined(NDEBUG)
\r
391 > #if !defined(NDEBUG)
\r
393 > #endif // defined(SAFE_TO_DEFINE_TALK_BASE_LOGGING_MACROS)
\r
394 diff -r libjingle-0.4.0/talk/base/messagequeue.cc libjingle/files/talk/base/messagequeue.cc
\r
397 < ss_ = new PhysicalSocketServer();
\r
399 > default_ss_.reset(new PhysicalSocketServer());
\r
400 > ss_ = default_ss_.get();
\r
402 > // The signal is done from here to ensure
\r
403 > // that it always gets called when the queue
\r
404 > // is going away.
\r
405 > SignalQueueDestroyed();
\r
414 < void MessageQueue::Stop() {
\r
416 > void MessageQueue::Quit() {
\r
418 < bool MessageQueue::IsStopping() {
\r
420 > bool MessageQueue::IsQuitting() {
\r
421 diff -r libjingle-0.4.0/talk/base/messagequeue.h libjingle/files/talk/base/messagequeue.h
\r
423 > #include "talk/base/scoped_ptr.h"
\r
426 < virtual void Stop();
\r
427 < virtual bool IsStopping();
\r
429 > virtual void Quit();
\r
430 > virtual bool IsQuitting();
\r
432 > // When this signal is sent out, any references to this queue should
\r
433 > // no longer be used.
\r
434 > sigslot::signal0<> SignalQueueDestroyed;
\r
437 > // If a server isn't supplied in the constructor, use this one.
\r
438 > scoped_ptr<SocketServer> default_ss_;
\r
439 diff -r libjingle-0.4.0/talk/base/natserver.cc libjingle/files/talk/base/natserver.cc
\r
441 > #include <cstring>
\r
442 diff -r libjingle-0.4.0/talk/base/natsocketfactory.cc libjingle/files/talk/base/natsocketfactory.cc
\r
444 > #include <cstring>
\r
445 diff -r libjingle-0.4.0/talk/base/openssladapter.cc libjingle/files/talk/base/openssladapter.cc
\r
449 > #if !defined(NDEBUG)
\r
453 > #if !defined(NDEBUG)
\r
457 > #endif // !defined(NDEBUG)
\r
461 > #if !defined(NDEBUG)
\r
465 > #if !defined(NDEBUG)
\r
466 diff -r libjingle-0.4.0/talk/base/openssladapter.h libjingle/files/talk/base/openssladapter.h
\r
470 > #if !defined(NDEBUG)
\r
472 < #endif // !_DEBUG
\r
474 > #endif // !defined(NDEBUG)
\r
475 diff -r libjingle-0.4.0/talk/base/physicalsocketserver.cc libjingle/files/talk/base/physicalsocketserver.cc
\r
477 > #include "talk/base/winsock_initializer.h"
\r
480 < class WinsockInitializer {
\r
482 < WinsockInitializer() {
\r
484 < WORD wVersionRequested = MAKEWORD(1, 0);
\r
485 < err_ = WSAStartup(wVersionRequested, &wsaData);
\r
487 < ~WinsockInitializer() {
\r
496 < WinsockInitializer g_winsockinit;
\r
501 > EnsureWinsockInit();
\r
504 < addr2.Resolve(); // TODO: Do this async later?
\r
506 > // TODO: Do this async later?
\r
507 > if (!addr2.Resolve()) {
\r
508 > LOG(LS_ERROR) << "Resolving addr failed";
\r
509 > UpdateLastError();
\r
511 > return SOCKET_ERROR;
\r
514 > LOG(LS_WARNING) << "EOF from socket; deferring close event";
\r
515 > // Must turn this back on so that the select() loop will notice the close
\r
517 > enabled_events_ |= kfRead;
\r
519 > virtual bool IsDescriptorClosed() = 0;
\r
521 > virtual bool IsDescriptorClosed() {
\r
526 > virtual bool IsDescriptorClosed() {
\r
527 > // We don't have a reliable way of distinguishing end-of-stream
\r
528 > // from readability. So test on each readable call. Is this
\r
529 > // inefficient? Probably.
\r
531 > return (0 == ::recv(s_, &ch, 1, MSG_PEEK));
\r
535 > virtual bool IsDescriptorClosed() {
\r
542 > if (pdispatcher->IsDescriptorClosed()) {
\r
547 diff -r libjingle-0.4.0/talk/base/proxydetect.cc libjingle/files/talk/base/proxydetect.cc
\r
549 < const char* list = slist.c_str();
\r
552 > const char* clist = slist.c_str();
\r
555 < if (isspace(*list)) {
\r
558 > if (isspace(*clist)) {
\r
561 < const char * start = list;
\r
562 < if (const char * end = strchr(list, sep)) {
\r
563 < len = (end - list);
\r
566 > const char * start = clist;
\r
567 > if (const char * end = strchr(clist, sep)) {
\r
568 > len = (end - clist);
\r
569 > clist += len + 1;
\r
571 < len = strlen(list);
\r
574 > len = strlen(clist);
\r
576 diff -r libjingle-0.4.0/talk/base/schanneladapter.cc libjingle/files/talk/base/schanneladapter.cc
\r
578 < size_t read = min(cb, readable.size());
\r
580 > size_t read = _min(cb, readable.size());
\r
581 diff -r libjingle-0.4.0/talk/base/scoped_ptr.h libjingle/files/talk/base/scoped_ptr.h
\r
583 < namespace talk_base {
\r
585 < template <typename T>
\r
586 < class scoped_ptr {
\r
591 < scoped_ptr(scoped_ptr const &);
\r
592 < scoped_ptr & operator=(scoped_ptr const &);
\r
596 < typedef T element_type;
\r
598 < explicit scoped_ptr(T* p = 0): ptr(p) {}
\r
601 < typedef char type_must_be_complete[sizeof(T)];
\r
605 < void reset(T* p = 0) {
\r
606 < typedef char type_must_be_complete[sizeof(T)];
\r
614 < T& operator*() const {
\r
615 < assert(ptr != 0);
\r
619 < T* operator->() const {
\r
620 < assert(ptr != 0);
\r
628 < void swap(scoped_ptr & b) {
\r
653 < template<typename T> inline
\r
654 < void swap(scoped_ptr<T>& a, scoped_ptr<T>& b) {
\r
661 < // scoped_array extends scoped_ptr to arrays. Deletion of the array pointed to
\r
662 < // is guaranteed, either on destruction of the scoped_array or via an explicit
\r
663 < // reset(). Use shared_array or std::vector if your needs are more complex.
\r
665 < template<typename T>
\r
666 < class scoped_array {
\r
671 < scoped_array(scoped_array const &);
\r
672 < scoped_array & operator=(scoped_array const &);
\r
676 < typedef T element_type;
\r
678 < explicit scoped_array(T* p = 0) : ptr(p) {}
\r
680 < ~scoped_array() {
\r
681 < typedef char type_must_be_complete[sizeof(T)];
\r
685 < void reset(T* p = 0) {
\r
686 < typedef char type_must_be_complete[sizeof(T)];
\r
694 < T& operator[](std::ptrdiff_t i) const {
\r
695 < assert(ptr != 0);
\r
704 < void swap(scoped_array & b) {
\r
725 < template<class T> inline
\r
726 < void swap(scoped_array<T>& a, scoped_array<T>& b) {
\r
730 < // scoped_ptr_malloc<> is similar to scoped_ptr<>, but it accepts a
\r
731 < // second template argument, the function used to free the object.
\r
733 < template<typename T, void (*FF)(void*) = free> class scoped_ptr_malloc {
\r
738 < scoped_ptr_malloc(scoped_ptr_malloc const &);
\r
739 < scoped_ptr_malloc & operator=(scoped_ptr_malloc const &);
\r
743 < typedef T element_type;
\r
745 < explicit scoped_ptr_malloc(T* p = 0): ptr(p) {}
\r
747 < ~scoped_ptr_malloc() {
\r
748 < typedef char type_must_be_complete[sizeof(T)];
\r
749 < FF(static_cast<void*>(ptr));
\r
752 < void reset(T* p = 0) {
\r
753 < typedef char type_must_be_complete[sizeof(T)];
\r
756 < FF(static_cast<void*>(ptr));
\r
761 < T& operator*() const {
\r
762 < assert(ptr != 0);
\r
766 < T* operator->() const {
\r
767 < assert(ptr != 0);
\r
775 < void swap(scoped_ptr_malloc & b) {
\r
789 < FF(static_cast<void*>(ptr));
\r
796 < template<typename T, void (*FF)(void*)> inline
\r
797 < void swap(scoped_ptr_malloc<T,FF>& a, scoped_ptr_malloc<T,FF>& b) {
\r
801 < } // namespace talk_base
\r
803 < // TODO: get rid of this global using
\r
804 < using talk_base::scoped_ptr;
\r
806 > #include "base/scoped_ptr.h"
\r
807 diff -r libjingle-0.4.0/talk/base/signalthread.cc libjingle/files/talk/base/signalthread.cc
\r
809 > main_->SignalQueueDestroyed.connect(this,
\r
810 > &SignalThread::OnMainThreadDestroyed);
\r
813 > void SignalThread::OnMainThreadDestroyed() {
\r
814 > EnterExit ee(this);
\r
819 > EnterExit ee(this);
\r
821 > EnterExit ee(this);
\r
823 < if (kInit == state_) {
\r
825 > if (kInit == state_ || kComplete == state_) {
\r
827 < void SignalThread::Destroy() {
\r
829 > void SignalThread::Destroy(bool wait) {
\r
830 > EnterExit ee(this);
\r
833 < } else if (kRunning == state_) {
\r
836 > } else if (kRunning == state_ || kReleasing == state_) {
\r
838 < // A couple tricky issues here:
\r
839 < // 1) Thread::Stop() calls Join(), which we don't want... we just want
\r
840 < // to stop the MessageQueue, which causes ContinueWork() to return false.
\r
841 < // 2) OnWorkStop() must follow Stop(), so that when the thread wakes up
\r
842 < // due to OWS(), ContinueWork() will return false.
\r
843 < worker_.MessageQueue::Stop();
\r
845 > // OnWorkStop() must follow Quit(), so that when the thread wakes up due to
\r
846 > // OWS(), ContinueWork() will return false.
\r
848 > // Release the thread's lock so that it can return from ::Run.
\r
857 > EnterExit ee(this);
\r
863 > EnterExit ee(this);
\r
865 > EnterExit ee(this);
\r
867 > // Before signaling that the work is done, make sure that the worker
\r
868 > // thread actually is done. We got here because DoWork() finished and
\r
869 > // Run() posted the ST_MSG_WORKER_DONE message. This means the worker
\r
870 > // thread is about to go away anyway, but sometimes it doesn't actually
\r
871 > // finish before SignalWorkDone is processed, and for a reusable
\r
872 > // SignalThread this makes an assert in thread.cc fire.
\r
874 > // Calling Stop() on the worker ensures that the OS thread that underlies
\r
875 > // the worker will finish, and will be set to NULL, enabling us to call
\r
876 > // Start() again.
\r
883 < main_->Post(this, ST_MSG_WORKER_DONE);
\r
886 > EnterExit ee(this);
\r
888 > main_->Post(this, ST_MSG_WORKER_DONE);
\r
891 diff -r libjingle-0.4.0/talk/base/signalthread.h libjingle/files/talk/base/signalthread.h
\r
893 > // Periodic tasks: Wait for SignalWorkDone, then eventually call Start()
\r
894 > // again to repeat the task. When the instance isn't needed anymore,
\r
895 > // call Release. DoWork, OnWorkStart and OnWorkStop are called again,
\r
896 > // on a new thread.
\r
898 < class SignalThread : protected MessageHandler {
\r
900 > class SignalThread : public sigslot::has_slots<>, protected MessageHandler {
\r
902 < // SignalWorkDone will not be signalled.
\r
905 > // SignalWorkDone will not be signalled. If wait is true, does not return
\r
906 > // until the thread is deleted.
\r
907 > void Destroy(bool wait);
\r
913 < // Context: Worker Thread. Subclass should call periodically to
\r
915 > // Context: Worker Thread. Subclass should call periodically to
\r
921 > class EnterExit {
\r
922 > friend class SignalThread;
\r
924 > SignalThread * t_;
\r
926 > EnterExit(SignalThread * t) : t_(t) {
\r
928 > t_->refcount_ += 1;
\r
931 > bool d = (0 == (--(t_->refcount_)));
\r
938 > friend class EnterExit;
\r
940 > CriticalSection cs_;
\r
944 > void OnMainThreadDestroyed();
\r
946 < enum State { kInit, kRunning, kComplete, kStopping, kReleasing } state_;
\r
949 > kInit, // Initialized, but not started
\r
950 > kRunning, // Started and doing work
\r
951 > kReleasing, // Same as running, but to be deleted when work is done
\r
952 > kComplete, // Work is done
\r
953 > kStopping, // Work is being interrupted
\r
955 diff -r libjingle-0.4.0/talk/base/sigslot.h libjingle/files/talk/base/sigslot.h
\r
959 > #if !defined(NDEBUG)
\r
963 > #if !defined(NDEBUG)
\r
967 > #if !defined(NDEBUG)
\r
971 > #if !defined(NDEBUG)
\r
975 > #if !defined(NDEBUG)
\r
979 > #if !defined(NDEBUG)
\r
983 > #if !defined(NDEBUG)
\r
987 > #if !defined(NDEBUG)
\r
991 > #if !defined(NDEBUG)
\r
992 diff -r libjingle-0.4.0/talk/base/socket.h libjingle/files/talk/base/socket.h
\r
994 > #undef ETIMEDOUT // remove pthread.h's definition
\r
995 diff -r libjingle-0.4.0/talk/base/socketadapters.cc libjingle/files/talk/base/socketadapters.cc
\r
997 > #include <cstring>
\r
999 diff -r libjingle-0.4.0/talk/base/socketaddress.cc libjingle/files/talk/base/socketaddress.cc
\r
1003 > #if !defined(NDEBUG)
\r
1005 < #else // !_DEBUG
\r
1007 > #else // defined(NDEBUG)
\r
1009 < #endif // !_DEBUG
\r
1011 > #endif // !defined(NDEBUG)
\r
1012 diff -r libjingle-0.4.0/talk/base/socketfactory.h libjingle/files/talk/base/socketfactory.h
\r
1014 > #include "talk/base/ssladapter.h"
\r
1017 > // Wraps the given socket in an SSL adapter.
\r
1018 > virtual SSLAdapter* CreateSSLAdapter(AsyncSocket* socket) {
\r
1019 > return SSLAdapter::Create(socket);
\r
1021 diff -r libjingle-0.4.0/talk/base/socketpool.cc libjingle/files/talk/base/socketpool.cc
\r
1026 diff -r libjingle-0.4.0/talk/base/ssladapter.cc libjingle/files/talk/base/ssladapter.cc
\r
1028 < #define SSL_USE_OPENSSL 1
\r
1030 > // Turn off OpenSSL
\r
1031 > //#define SSL_USE_OPENSSL 1
\r
1033 > #if SSL_USE_OPENSSL || SSL_USE_SCHANNEL
\r
1038 diff -r libjingle-0.4.0/talk/base/stream.cc libjingle/files/talk/base/stream.cc
\r
1040 > #include <stdio.h>
\r
1041 diff -r libjingle-0.4.0/talk/base/stringencode.cc libjingle/files/talk/base/stringencode.cc
\r
1043 > #include <stdlib.h>
\r
1047 > #if !defined(NDEBUG)
\r
1049 < #endif // _DEBUG
\r
1051 > #endif // !defined(NDEBUG)
\r
1052 diff -r libjingle-0.4.0/talk/base/stringutils.cc libjingle/files/talk/base/stringutils.cc
\r
1056 > #if !defined(NDEBUG)
\r
1058 < #endif // _DEBUG
\r
1060 > #endif // !defined(NDEBUG)
\r
1061 diff -r libjingle-0.4.0/talk/base/stringutils.h libjingle/files/talk/base/stringutils.h
\r
1063 > #include <string.h>
\r
1069 < size_t sprintfn(CTYPE* buffer, size_t buflen, const CTYPE* format, ...) {
\r
1071 < va_start(args, format);
\r
1072 < size_t len = vsprintfn(buffer, buflen, format, args);
\r
1077 < template<class CTYPE>
\r
1079 > template<class CTYPE>
\r
1080 > size_t sprintfn(CTYPE* buffer, size_t buflen, const CTYPE* format, ...) {
\r
1082 > va_start(args, format);
\r
1083 > size_t len = vsprintfn(buffer, buflen, format, args);
\r
1089 < inline static const char* Traits<char>::empty_str() { return ""; }
\r
1091 > inline static const char* empty_str() { return ""; }
\r
1092 diff -r libjingle-0.4.0/talk/base/task.cc libjingle/files/talk/base/task.cc
\r
1094 < * Redistribution and use in source and binary forms, with or without
\r
1096 > * Redistribution and use in source and binary forms, with or without
\r
1098 < * 1. Redistributions of source code must retain the above copyright notice,
\r
1100 > * 1. Redistributions of source code must retain the above copyright notice,
\r
1102 < * 3. The name of the author may not be used to endorse or promote products
\r
1104 > * 3. The name of the author may not be used to endorse or promote products
\r
1106 < * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
\r
1108 > * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
\r
1110 < * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
\r
1112 > * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
\r
1114 < * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
\r
1115 < * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
\r
1117 > * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
\r
1118 > * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
\r
1120 < if (aborted_ || done_)
\r
1124 < Wake(); // to self-delete
\r
1126 > GetRunner()->WakeTasks();
\r
1127 diff -r libjingle-0.4.0/talk/base/taskrunner.h libjingle/files/talk/base/taskrunner.h
\r
1129 > bool HasPendingTimeoutTask() {
\r
1130 > return next_timeout_task_ != NULL &&
\r
1131 > next_timeout_task_->TimedOut();
\r
1134 diff -r libjingle-0.4.0/talk/base/testclient.cc libjingle/files/talk/base/testclient.cc
\r
1136 > #include <cstring>
\r
1137 diff -r libjingle-0.4.0/talk/base/thread.cc libjingle/files/talk/base/thread.cc
\r
1139 > bool ThreadManager::ThreadActive(Thread *thread) {
\r
1140 > CritScope cs(&crit_);
\r
1141 > return(std::find(threads_.begin(), threads_.end(), thread) != threads_.end());
\r
1145 > stopped_ = false;
\r
1147 < pthread_create(&thread_, &attr, PreRun, this);
\r
1148 < started_ = true;
\r
1150 > CritScope cs(&started_crit_);
\r
1151 > // Make sure Join() hasn't been called yet.
\r
1154 > if (pthread_create(&thread_, &attr, PreRun, this) == 0)
\r
1155 > started_ = true;
\r
1157 > CritScope cs(&started_crit_);
\r
1158 > stopped_ = true;
\r
1160 > started_ = false;
\r
1162 > CritScope cs(&started_crit_);
\r
1163 > // Make sure Join() hasn't been called yet.
\r
1167 > CritScope cs(&started_crit_);
\r
1168 > stopped_ = true;
\r
1170 > // Make sure the thread hasn't been deleted.
\r
1171 > if (!g_thmgr.ThreadActive(thread))
\r
1174 < MessageQueue::Stop();
\r
1176 > MessageQueue::Quit();
\r
1180 > return !IsQuitting();
\r
1181 diff -r libjingle-0.4.0/talk/base/thread.h libjingle/files/talk/base/thread.h
\r
1183 > bool ThreadActive(Thread *thread);
\r
1185 > CriticalSection started_crit_;
\r
1188 diff -r libjingle-0.4.0/talk/base/urlencode.cc libjingle/files/talk/base/urlencode.cc
\r
1190 > #include <stdlib.h>
\r
1191 > #include <string.h>
\r
1192 Only in libjingle-0.4.0/talk/base: win32socketserver.cc
\r
1193 Only in libjingle-0.4.0/talk/base: win32socketserver.h
\r
1194 Only in libjingle/files/talk/base: win32window.cc
\r
1195 diff -r libjingle-0.4.0/talk/base/winping.cc libjingle/files/talk/base/winping.cc
\r
1197 < return sizeof(ICMP_ECHO_REPLY) + max(8UL, data_size);
\r
1199 > return sizeof(ICMP_ECHO_REPLY) + _max((uint32)(8UL), data_size);
\r
1201 < } // namespace talk_base
\r
1202 \ No newline at end of file
\r
1204 > } // namespace talk_base
\r
1205 Only in libjingle/files/talk/base: winsock_initializer.cc
\r
1206 Only in libjingle/files/talk/base: winsock_initializer.h
\r
1207 Only in libjingle-0.4.0/talk: examples
\r
1208 Only in libjingle-0.4.0/talk: libjingle.sln
\r
1209 Only in libjingle-0.4.0/talk: libjingle.vcproj
\r
1210 Only in libjingle-0.4.0/talk: p2p
\r
1211 Only in libjingle-0.4.0/talk: session
\r
1212 Only in libjingle-0.4.0/talk: third_party
\r
1213 Only in libjingle-0.4.0/talk/xmllite: Makefile.in
\r
1214 diff -r libjingle-0.4.0/talk/xmllite/qname.cc libjingle/files/talk/xmllite/qname.cc
\r
1216 < int result = ns.size() * 101;
\r
1218 > int result = static_cast<int>(ns.size()) * 101;
\r
1219 diff -r libjingle-0.4.0/talk/xmllite/qname.h libjingle/files/talk/xmllite/qname.h
\r
1223 < localPart_(local) {}
\r
1225 > localPart_(local),
\r
1227 diff -r libjingle-0.4.0/talk/xmllite/xmlelement.cc libjingle/files/talk/xmllite/xmlelement.cc
\r
1229 < pLastChild_(NULL) {
\r
1231 > pLastChild_(NULL),
\r
1234 < pLastChild_(NULL) {
\r
1236 > pLastChild_(NULL),
\r
1239 > cdata_ = elt.cdata_;
\r
1241 < pLastChild_(NULL) {
\r
1243 > pLastChild_(NULL),
\r
1246 > XmlElement::AddCDATAText(const char * buf, int len) {
\r
1248 > AddParsedText(buf, len);
\r
1252 diff -r libjingle-0.4.0/talk/xmllite/xmlelement.h libjingle/files/talk/xmllite/xmlelement.h
\r
1254 > // Note: CDATA is not supported by XMPP, therefore using this function will
\r
1255 > // generate non-XMPP compatible XML.
\r
1256 > void AddCDATAText(const char * buf, int len);
\r
1258 > bool IsCDATA() const { return cdata_; }
\r
1262 diff -r libjingle-0.4.0/talk/xmllite/xmlparser.cc libjingle/files/talk/xmllite/xmlparser.cc
\r
1264 < #include "talk/xmllite/xmlparser.h"
\r
1267 > #include "talk/xmllite/xmlconstants.h"
\r
1269 < #include "talk/xmllite/xmlconstants.h"
\r
1271 > #include "talk/xmllite/xmlparser.h"
\r
1273 > context_.SetPosition(XML_GetCurrentLineNumber(expat_),
\r
1274 > XML_GetCurrentColumnNumber(expat_),
\r
1275 > XML_GetCurrentByteIndex(expat_));
\r
1277 > context_.SetPosition(XML_GetCurrentLineNumber(expat_),
\r
1278 > XML_GetCurrentColumnNumber(expat_),
\r
1279 > XML_GetCurrentByteIndex(expat_));
\r
1281 > context_.SetPosition(XML_GetCurrentLineNumber(expat_),
\r
1282 > XML_GetCurrentColumnNumber(expat_),
\r
1283 > XML_GetCurrentByteIndex(expat_));
\r
1285 < if (XML_Parse(expat_, data, static_cast<int>(len), isFinal) != XML_STATUS_OK)
\r
1287 > if (XML_Parse(expat_, data, static_cast<int>(len), isFinal) !=
\r
1288 > XML_STATUS_OK) {
\r
1289 > context_.SetPosition(XML_GetCurrentLineNumber(expat_),
\r
1290 > XML_GetCurrentColumnNumber(expat_),
\r
1291 > XML_GetCurrentByteIndex(expat_));
\r
1295 < raised_(XML_ERROR_NONE) {
\r
1297 > raised_(XML_ERROR_NONE),
\r
1298 > line_number_(0),
\r
1299 > column_number_(0),
\r
1300 > byte_index_(0) {
\r
1302 < XmlParser::ParseContext::~ParseContext() {
\r
1305 > XmlParser::ParseContext::SetPosition(XML_Size line, XML_Size column,
\r
1306 > XML_Index byte_index) {
\r
1307 > line_number_ = line;
\r
1308 > column_number_ = column;
\r
1309 > byte_index_ = byte_index;
\r
1313 > XmlParser::ParseContext::GetPosition(unsigned long * line,
\r
1314 > unsigned long * column,
\r
1315 > unsigned long * byte_index) {
\r
1316 > if (line != NULL) {
\r
1317 > *line = static_cast<unsigned long>(line_number_);
\r
1320 > if (column != NULL) {
\r
1321 > *column = static_cast<unsigned long>(column_number_);
\r
1324 > if (byte_index != NULL) {
\r
1325 > *byte_index = static_cast<unsigned long>(byte_index_);
\r
1328 > XmlParser::ParseContext::~ParseContext() {
\r
1331 diff -r libjingle-0.4.0/talk/xmllite/xmlparser.h libjingle/files/talk/xmllite/xmlparser.h
\r
1333 > virtual void GetPosition(unsigned long * line, unsigned long * column,
\r
1334 > unsigned long * byte_index) = 0;
\r
1336 > virtual void GetPosition(unsigned long * line, unsigned long * column,
\r
1337 > unsigned long * byte_index);
\r
1339 > void SetPosition(XML_Size line, XML_Size column, XML_Index byte_index);
\r
1341 > XML_Size line_number_;
\r
1342 > XML_Size column_number_;
\r
1343 > XML_Index byte_index_;
\r
1344 diff -r libjingle-0.4.0/talk/xmllite/xmlprinter.cc libjingle/files/talk/xmllite/xmlprinter.cc
\r
1346 > void PrintCDATAText(const std::string & text);
\r
1348 < if (pchild->IsText())
\r
1349 < PrintBodyText(pchild->AsText()->Text());
\r
1352 > if (pchild->IsText()) {
\r
1353 > if (element->IsCDATA()) {
\r
1354 > PrintCDATAText(pchild->AsText()->Text());
\r
1356 > PrintBodyText(pchild->AsText()->Text());
\r
1361 > XmlPrinterImpl::PrintCDATAText(const std::string & text) {
\r
1362 > *pout_ << "<![CDATA[" << text << "]]>";
\r
1364 Only in libjingle-0.4.0/talk/xmpp: Makefile.in
\r
1365 Only in libjingle-0.4.0/talk/xmpp: constants.cc
\r
1366 Only in libjingle-0.4.0/talk/xmpp: constants.h
\r
1367 diff -r libjingle-0.4.0/talk/xmpp/jid.cc libjingle/files/talk/xmpp/jid.cc
\r
1369 < #include "talk/xmpp/constants.h"
\r
1371 > #include "talk/xmpp/xmppconstants.h"
\r
1372 diff -r libjingle-0.4.0/talk/xmpp/plainsaslhandler.h libjingle/files/talk/xmpp/plainsaslhandler.h
\r
1374 < #include "talk/xmpp/saslhandler.h"
\r
1376 > #include <string>
\r
1378 > #include "talk/xmpp/saslhandler.h"
\r
1381 > virtual bool GetTlsServerInfo(const talk_base::SocketAddress& server,
\r
1382 > std::string* tls_server_hostname,
\r
1383 > std::string* tls_server_domain) {
\r
1386 diff -r libjingle-0.4.0/talk/xmpp/prexmppauth.h libjingle/files/talk/xmpp/prexmppauth.h
\r
1388 < #include "talk/xmpp/saslhandler.h"
\r
1390 < class PreXmppAuth : public SaslHandler {
\r
1392 > class PreXmppAuth {
\r
1393 diff -r libjingle-0.4.0/talk/xmpp/saslcookiemechanism.h libjingle/files/talk/xmpp/saslcookiemechanism.h
\r
1395 < #include "talk/xmpp/constants.h"
\r
1397 > #include "talk/xmpp/xmppconstants.h"
\r
1399 < SaslCookieMechanism(const std::string & mechanism, const std::string & username, const std::string & cookie) :
\r
1400 < mechanism_(mechanism), username_(username), cookie_(cookie) {}
\r
1402 > SaslCookieMechanism(const std::string & mechanism,
\r
1403 > const std::string & username,
\r
1404 > const std::string & cookie,
\r
1405 > const std::string & token_service)
\r
1406 > : mechanism_(mechanism),
\r
1407 > username_(username),
\r
1408 > cookie_(cookie),
\r
1409 > token_service_(token_service) {}
\r
1411 > SaslCookieMechanism(const std::string & mechanism,
\r
1412 > const std::string & username,
\r
1413 > const std::string & cookie)
\r
1414 > : mechanism_(mechanism),
\r
1415 > username_(username),
\r
1416 > cookie_(cookie),
\r
1417 > token_service_("") {}
\r
1419 > if (!token_service_.empty()) {
\r
1421 > QName(true, "http://www.google.com/talk/protocol/auth", "service"),
\r
1422 > token_service_);
\r
1425 > std::string token_service_;
\r
1426 diff -r libjingle-0.4.0/talk/xmpp/saslhandler.h libjingle/files/talk/xmpp/saslhandler.h
\r
1428 > #include <vector>
\r
1430 > #include "talk/base/socketaddress.h"
\r
1433 > // Fills in the tls server hostname/domain to use for the given
\r
1434 > // server (and returns true). Return false if you want the defaults
\r
1436 > virtual bool GetTlsServerInfo(const talk_base::SocketAddress& server,
\r
1437 > std::string* tls_server_hostname,
\r
1438 > std::string* tls_server_domain) = 0;
\r
1439 diff -r libjingle-0.4.0/talk/xmpp/saslmechanism.cc libjingle/files/talk/xmpp/saslmechanism.cc
\r
1441 < #include "talk/xmpp/constants.h"
\r
1443 > #include "talk/xmpp/xmppconstants.h"
\r
1444 diff -r libjingle-0.4.0/talk/xmpp/xmppclient.cc libjingle/files/talk/xmpp/xmppclient.cc
\r
1446 < #include "talk/xmpp/constants.h"
\r
1448 > #include "talk/xmpp/xmppconstants.h"
\r
1450 > #include "talk/xmpp/saslhandler.h"
\r
1452 > scoped_ptr<SaslHandler> sasl_handler_;
\r
1454 < XmppClient::Connect(const XmppClientSettings & settings, const std::string & lang, AsyncSocket * socket, PreXmppAuth * pre_auth) {
\r
1456 > XmppClient::Connect(const XmppClientSettings & settings,
\r
1457 > const std::string & lang,
\r
1458 > AsyncSocket * socket,
\r
1459 > PreXmppAuth * pre_auth,
\r
1460 > SaslHandler * sasl_handler) {
\r
1463 < // The talk.google.com server expects you to use "gmail.com" in the
\r
1464 < // stream, and expects the domain certificate to be "gmail.com" as well.
\r
1465 < // For all other servers, we leave the strings empty, which causes
\r
1466 < // the jid's domain to be used. "foo@example.com" -> stream to="example.com"
\r
1467 < // tls certificate for "example.com"
\r
1469 < // This is only true when using Gaia auth, so let's say if there's no preauth,
\r
1470 < // we should use the actual server name
\r
1471 < if ((settings.server().IPAsString() == buzz::STR_TALK_GOOGLE_COM ||
\r
1472 < settings.server().IPAsString() == buzz::STR_TALKX_L_GOOGLE_COM) &&
\r
1473 < pre_auth != NULL) {
\r
1474 < d_->engine_->SetTlsServer(buzz::STR_GMAIL_COM, buzz::STR_GMAIL_COM);
\r
1476 > if (sasl_handler) {
\r
1477 > std::string tls_server_hostname, tls_server_domain;
\r
1478 > if (sasl_handler->GetTlsServerInfo(settings.server(),
\r
1479 > &tls_server_hostname,
\r
1480 > &tls_server_domain)) {
\r
1481 > d_->engine_->SetTlsServer(tls_server_hostname, tls_server_domain);
\r
1484 > d_->sasl_handler_.reset(sasl_handler);
\r
1486 > if (d_->sasl_handler_.get()) {
\r
1487 > d_->engine_->SetSaslHandler(d_->sasl_handler_.release());
\r
1490 > d_->engine_->SetSaslHandler(new PlainSaslHandler(
\r
1491 > d_->engine_->GetUser(), d_->pass_, d_->allow_plain_));
\r
1495 < d_->engine_->SetSaslHandler(new PlainSaslHandler(
\r
1496 < d_->engine_->GetUser(), d_->pass_, d_->allow_plain_));
\r
1498 < // transfer ownership of pre_auth_ to engine
\r
1499 < d_->engine_->SetSaslHandler(d_->pre_auth_.release());
\r
1501 > d_->pre_engine_error_ = XmppEngine::ERROR_SOCKET;
\r
1502 > d_->pre_engine_subcode_ = d_->socket_->GetError();
\r
1506 > //#if !defined(NDEBUG)
\r
1510 > //#if !defined(NDEBUG)
\r
1511 diff -r libjingle-0.4.0/talk/xmpp/xmppclient.h libjingle/files/talk/xmpp/xmppclient.h
\r
1513 > class SaslHandler;
\r
1515 < PreXmppAuth * preauth);
\r
1517 > PreXmppAuth * preauth,
\r
1518 > SaslHandler * sasl_handler);
\r
1520 < std::string XmppClient::GetStateName(int state) const {
\r
1522 > std::string GetStateName(int state) const {
\r
1523 diff -r libjingle-0.4.0/talk/xmpp/xmppclientsettings.h libjingle/files/talk/xmpp/xmppclientsettings.h
\r
1525 < #include "talk/p2p/base/port.h"
\r
1527 > #include "talk/base/proxyinfo.h"
\r
1529 > namespace cricket {
\r
1531 > // This enum was taken from talk/p2p/base/port.h, which is the only
\r
1532 > // thing we actually need from the p2p directory.
\r
1533 > enum ProtocolType {
\r
1537 > PROTO_LAST = PROTO_SSLTCP
\r
1540 > } // namespace cricket
\r
1542 > void set_token_service(const std::string & token_service) {
\r
1543 > token_service_ = token_service;
\r
1546 > const std::string & token_service() const { return token_service_; }
\r
1548 > std::string token_service_;
\r
1549 Only in libjingle/files/talk/xmpp: xmppconstants.cc
\r
1550 Only in libjingle/files/talk/xmpp: xmppconstants.h
\r
1551 diff -r libjingle-0.4.0/talk/xmpp/xmppengineimpl.cc libjingle/files/talk/xmpp/xmppengineimpl.cc
\r
1553 < #include "talk/xmpp/constants.h"
\r
1555 > #include "talk/xmpp/xmppconstants.h"
\r
1556 diff -r libjingle-0.4.0/talk/xmpp/xmppengineimpl_iq.cc libjingle/files/talk/xmpp/xmppengineimpl_iq.cc
\r
1558 < #include "talk/xmpp/constants.h"
\r
1560 > #include "talk/xmpp/xmppconstants.h"
\r
1561 diff -r libjingle-0.4.0/talk/xmpp/xmpplogintask.cc libjingle/files/talk/xmpp/xmpplogintask.cc
\r
1563 < #include "talk/xmpp/constants.h"
\r
1565 > #include "talk/xmpp/xmppconstants.h"
\r
1569 > #if !defined(NDEBUG)
\r
1571 < #endif // _DEBUG
\r
1573 > #endif // !defined(NDEBUG)
\r
1577 > #if !defined(NDEBUG)
\r
1579 < #endif // _DEBUG
\r
1581 > #endif // !defined(NDEBUG)
\r
1583 > auth->SetAttr(QN_GOOGLE_ALLOW_GENERATED_JID_XMPP_LOGIN, "true");
\r
1584 > auth->SetAttr(QN_GOOGLE_AUTH_CLIENT_USES_FULL_BIND_RESULT, "true");
\r
1586 diff -r libjingle-0.4.0/talk/xmpp/xmpplogintask.h libjingle/files/talk/xmpp/xmpplogintask.h
\r
1590 > #if !defined(NDEBUG)
\r
1592 < #endif // _DEBUG
\r
1594 > #endif // !defined(NDEBUG)
\r
1595 diff -r libjingle-0.4.0/talk/xmpp/xmppstanzaparser.cc libjingle/files/talk/xmpp/xmppstanzaparser.cc
\r
1597 < #include "talk/xmpp/constants.h"
\r
1599 > #include "talk/xmpp/xmppconstants.h"
\r
1600 diff -r libjingle-0.4.0/talk/xmpp/xmpptask.cc libjingle/files/talk/xmpp/xmpptask.cc
\r
1602 < #include "talk/xmpp/constants.h"
\r
1604 > #include "talk/xmpp/xmppconstants.h"
\r
1608 > #if !defined(NDEBUG)
\r
1612 > #if !defined(NDEBUG)
\r
1615 \ No newline at end of file
\r
1618 diff -r libjingle-0.4.0/talk/xmpp/xmpptask.h libjingle/files/talk/xmpp/xmpptask.h
\r
1622 > #if !defined(NDEBUG)
\r
1624 < XmlElement *MakeIqResult(const XmlElement* query);
\r
1625 < XmlElement *MakeIq(const std::string& type,
\r
1627 > static XmlElement *MakeIqResult(const XmlElement* query);
\r
1628 > static XmlElement *MakeIq(const std::string& type,
\r
1632 > #if !defined(NDEBUG)
\r
1633 diff -r libjingle-0.4.0/talk/base/common.cc libjingle/files/talk/base/common.cc
\r
1635 < } // namespace talk_base
\r
1636 \ No newline at end of file
\r
1638 > } // namespace talk_base
\r
1639 diff -r libjingle-0.4.0/talk/base/httpbase.cc libjingle/files/talk/base/httpbase.cc
\r
1641 < if (sscanf(value, "%d", &data_size_) != 1) {
\r
1643 > if (sscanf(value, "%zu", &data_size_) != 1) {
\r
1644 diff -r libjingle-0.4.0/talk/base/httpcommon.cc libjingle/files/talk/base/httpcommon.cc
\r
1646 < &tval.tm_hour, &tval.tm_min, &tval.tm_sec, &zone)) {
\r
1648 > &tval.tm_hour, &tval.tm_min, &tval.tm_sec, zone)) {
\r
1650 < uint32 vmajor, vminor;
\r
1652 > unsigned long vmajor, vminor;
\r
1654 < uint32 vmajor, vminor;
\r
1655 < if ((sscanf(line, "HTTP/%lu.%lu %lu%n", &vmajor, &vminor, &scode, &pos) != 3)
\r
1657 > unsigned long vmajor, vminor;
\r
1658 > if ((sscanf(line, "HTTP/%lu.%lu %lu%zu", &vmajor, &vminor, &scode, &pos) != 3)
\r
1660 < sprintf(buffer, "%d", time(0));
\r
1662 > sprintf(buffer, "%ld", time(0));
\r
1663 diff -r libjingle-0.4.0/talk/base/httpcommon.h libjingle/files/talk/base/httpcommon.h
\r
1667 > unsigned long scode;
\r
1668 diff -r libjingle-0.4.0/talk/base/diskcache.cc libjingle/files/talk/base/diskcache.cc
\r
1670 < if (1 != sscanf(pathname.extension().c_str(), ".%u", index))
\r
1672 > if (1 != sscanf(pathname.extension().c_str(), ".%zu", index))
\r
1673 diff -r libjingle-0.4.0/talk/base/logging.cc libjingle/files/talk/base/logging.cc
\r
1675 < snprintf(buffer, sizeof(buffer), "0x%08lx", err);
\r
1677 > snprintf(buffer, sizeof(buffer), "0x%08x", err);
\r
1678 diff -r libjingle-0.4.0/talk/base/socketadapters.cc libjingle/files/talk/base/socketadapters.cc
\r
1681 < if (sscanf(data, "HTTP/%*lu.%*lu %lu", &code) != 1) {
\r
1683 > unsigned long code;
\r
1684 > if (sscanf(data, "HTTP/%*u.%*u %lu", &code) != 1) {
\r