Sat, 25 Nov 2017 21:42:28 +0800
jabber.c: fix #17270, ignore STARTTLS when using BOSH.
Pidgin wants to establish a TLS connection with a STARTTLS request, but
it doesn't make any sense, since the XMPP stream is proxied by the BOSH
connection, which is already encrypted by HTTPS. It is impossible to
STARTTLS with BOSH.
According to XEP-0206: The client SHOULD ignore any Transport Layer Security
(TLS) feature since BOSH channel encryption SHOULD be negotiated at the HTTP
layer.
Failing to do it causes Pidgin fails to create any connection with BOSH to any
XMPP server with STARTTLS enabled.
https://developer.pidgin.im/ticket/17270
{ X oddness 1 Memcheck:Param write(buf) fun:__write_nocancel fun:_X11TransWrite obj:/usr/X11R6/lib/libX11.so.6.2 fun:_XReply } { NSS Memcheck:Cond obj:/usr/lib/libsoftokn3.so obj:/usr/lib/libsoftokn3.so obj:/usr/lib/libsoftokn3.so obj:/usr/lib/libsoftokn3.so } { X oddness 2 Memcheck:Param writev(vector[...]) fun:writev obj:/usr/X11R6/lib/libX11.so.6.2 fun:_X11TransWritev fun:_XSend } { X oddness 3 Memcheck:Cond fun:XcursorImageHash fun:XcursorNoticePutBitmap fun:_XNoticePutBitmap fun:XPutImage } { X oddness 4 Memcheck:Param write(buf) fun:__write_nocancel fun:_X11TransWrite obj:/usr/X11R6/lib/libX11.so.6.2 fun:XFlush } { X oddness 5 Memcheck:Param write(buf) fun:__write_nocancel fun:_X11TransWrite obj:/usr/X11R6/lib/libX11.so.6.2 fun:XDrawLine } { X oddness 6 Memcheck:Param write(buf) fun:__write_nocancel fun:_X11TransWrite obj:/usr/X11R6/lib/libX11.so.6.2 fun:_XEventsQueued } { File selector Memcheck:Value4 fun:_itoa_word fun:_IO_vfprintf_internal fun:_IO_vsprintf_internal fun:_IO_sprintf } { File selector 2 Memcheck:Param write(buf) fun:__write_nocancel fun:_X11TransWrite obj:/usr/X11R6/lib/libX11.so.6.2 fun:XRenderComposite } { TCL leak Memcheck:Leak fun:malloc fun:TclpAlloc fun:Tcl_Alloc fun:Tcl_StaticPackage } { FontConfig Maybe Memcheck:Leak fun:malloc fun:FcStrCopy fun:FcStrSetAdd fun:FcLangSetCopy } { File selector 3 Memcheck:Param write(buf) fun:__write_nocancel fun:_X11TransWrite obj:/usr/X11R6/lib/libX11.so.6.2 fun:_XFlushGCCache } { File selector 4 Memcheck:Param write(buf) fun:__write_nocancel fun:_X11TransWrite obj:/usr/X11R6/lib/libX11.so.6.2 fun:XCreateGC } { Something else Memcheck:Param write(buf) fun:__write_nocancel fun:_X11TransWrite obj:/usr/X11R6/lib/libX11.so.6.2 fun:_XSetClipRectangles } { New conversation windows Memcheck:Cond obj:/usr/lib/libgtk-x11-2.0.so.0.400.14 obj:/usr/lib/libgtk-x11-2.0.so.0.400.14 obj:/usr/lib/libgtk-x11-2.0.so.0.400.14 obj:/usr/lib/libgtk-x11-2.0.so.0.400.14 } { New conversation windows 2 Memcheck:Cond obj:/usr/lib/libgtk-x11-2.0.so.0.400.14 obj:/usr/lib/libgtk-x11-2.0.so.0.400.14 obj:/usr/lib/libgtk-x11-2.0.so.0.400.14 obj:/usr/lib/libgobject-2.0.so.0.400.8 } { NSS Init Memcheck:Leak fun:malloc fun:PR_Malloc fun:PR_CreateStack fun:_PR_InitFdCache fun:_PR_InitIO fun:_PR_ImplicitInitialization fun:PR_Init fun:rsa_nss_init fun:GE_plugin_load fun:purple_plugin_load fun:purple_plugins_load_saved fun:main }