7.8 backport: Fixed bugs in handling of abrupt remote close. This could cause a (temporary) memory and fd leak if the remote side closes the connection before the handshake finishes. sslfile now also trigs EPIPE errors if the user attempts to read or write to a connection that has been abruptly closed (to detect truncation attacks better). Rev: server/etc/modules/RoxenSSLFile.pike:1.28
Backported from 7.8 a couple of optimizations for write() on very large strings. Rev: server/etc/modules/RoxenSSLFile.pike:1.27
Moving to pike 7.8 and dropping compatibility with earlier pikes. Rev: server/arg_cache_plugins/replicate.pike:1.27 Rev: server/base_server/__default.pmod:1.2 Rev: server/base_server/cache.pike:1.90 Rev: server/base_server/config_userdb.pike:1.53 Rev: server/base_server/configuration.pike:1.653 Rev: server/base_server/emit_object.pike:1.7 Rev: server/base_server/fonts.pike:1.87 Rev: server/base_server/global_variables.pike:1.110 Rev: server/base_server/javamodule.pike:1.7 Rev: server/base_server/language.pike:1.43 Rev: server/base_server/module.pike:1.231 Rev: server/base_server/module_support.pike:1.135 Rev: server/base_server/prototypes.pike:1.219 Rev: server/base_server/roxen.pike:1.981 Rev: server/base_server/roxenlib.pike:1.224 Rev: server/base_server/roxenloader.pike:1.397 Rev: server/base_server/rxmlhelp.pike:1.65 Rev: server/base_server/smtprelay.pike:3.2 Rev: server/base_server/snmpagent.pike:1.24 Rev: server/bin/buildenv.pike:1.10 Rev: server/bin/create_testcert.pike:1.2 Rev: server/bin/functions:1.19 Rev: server/bin/garbagecollector.pike:1.23 Rev: server/bin/setup_nsr.pike:1.4 Rev: server/bin/sqlhelper.pike:1.4 Rev: server/config_interface/actions/change_version.pike:1.15 Rev: server/config_interface/actions/debug_info.pike:1.40 Rev: server/config_interface/actions/feature_list.pike:1.14 Rev: server/config_interface/actions/ftpstatus.pike:1.4 Rev: server/config_interface/actions/generate_rsa.pike:1.7 Rev: server/config_interface/actions/make_rsa_csr.pike:1.11 Rev: server/config_interface/actions/make_selfsigned_dsa.pike:1.11 Rev: server/config_interface/actions/make_selfsigned_rsa.pike:1.10 Rev: server/config_interface/actions/ssl_common.pike:1.8 Rev: server/config_interface/actions/tablist.pike:1.10 Rev: server/config_interface/actions/threads.pike:1.8 Rev: server/etc/env.d/java.pike:1.19 Rev: server/etc/include/variables.h:1.18 Rev: server/etc/modules/DBManager.pmod:1.76 Rev: server/etc/modules/ExtSQL.pmod:1.4 Rev: server/etc/modules/ExtScript.pmod:1.22 Rev: server/etc/modules/GText.pmod:1.20 Rev: server/etc/modules/HTML.pmod:1.8 Rev: server/etc/modules/JavaModule.pmod:1.25 Rev: server/etc/modules/LazyImage.pmod/CoordinateSystem.pike:1.4 Rev: server/etc/modules/LazyImage.pmod/Legend.pike:1.5 Rev: server/etc/modules/LazyImage.pmod/module.pmod:1.19 Rev: server/etc/modules/License.pmod:1.27 Rev: server/etc/modules/Map.pmod:1.7 Rev: server/etc/modules/PropertySet.pike:1.12 Rev: server/etc/modules/RXML.pmod/PEnt.pike:1.24 Rev: server/etc/modules/RXML.pmod/PXml.pike:1.65 Rev: server/etc/modules/RXML.pmod/module.pmod:1.367 Rev: server/etc/modules/Roxen.pmod:1.246 Rev: server/etc/modules/RoxenDebug.pmod:1.12 Rev: server/etc/modules/RoxenRPC.pmod/HTTP.pmod/Client.pike:1.10 Rev: server/etc/modules/RoxenRPC.pmod/HTTP.pmod/Server.pike:1.6 Rev: server/etc/modules/RoxenSSLFile.pike:1.27(DEAD) Rev: server/etc/modules/SNMP.pmod:1.10 Rev: server/etc/modules/Servlet.pmod:1.31 Rev: server/etc/modules/SloppyDOM.pmod:1.16 Rev: server/etc/modules/StateHandler.pmod:1.13 Rev: server/etc/modules/VFS.pmod:1.7 Rev: server/etc/modules/Variable.pmod/Date.pike:1.9 Rev: server/etc/modules/Variable.pmod/Email.pike:1.15 Rev: server/etc/modules/Variable.pmod/Image.pike:1.5 Rev: server/etc/modules/Variable.pmod/Language.pike:1.2 Rev: server/etc/modules/Variable.pmod/MapLocation.pike:1.6 Rev: server/etc/modules/Variable.pmod/Mapping.pike:1.9 Rev: server/etc/modules/Variable.pmod/Upload.pike:1.5 Rev: server/etc/modules/Variable.pmod/module.pmod:1.108 Rev: server/etc/modules/_NewLDAP.pmod/client.pike:1.11(DEAD) Rev: server/etc/modules/_NewLDAP.pmod/ldap_globals.h:1.1(DEAD) Rev: server/etc/modules/_NewLDAP.pmod/ldap_privates.pmod:1.1(DEAD) Rev: server/etc/modules/_NewLDAP.pmod/module.pmod:1.4(DEAD) Rev: server/etc/modules/_NewLDAP.pmod/protocol.pike:1.1(DEAD) Rev: server/etc/roxen_master.pike:1.150 Rev: server/etc/test/tests/ftp/ftp_test.pike:1.4 Rev: server/font_handlers/freetype.pike:1.30 Rev: server/font_handlers/imagedir.pike:1.15 Rev: server/font_handlers/imagetar.pike:1.10 Rev: server/font_handlers/ttf.pike:1.18 Rev: server/languages/catala.pike:1.11 Rev: server/languages/chinese.pike:1.2 Rev: server/languages/croatian.pike:1.11 Rev: server/languages/czech.pike:1.18 Rev: server/languages/dutch.pike:1.11 Rev: server/languages/finnish.pike:1.10 Rev: server/languages/french.pike:1.13 Rev: server/languages/german.pike:1.11 Rev: server/languages/hungarian.pike:1.7 Rev: server/languages/italian.pike:1.13 Rev: server/languages/japanese.pike:1.22 Rev: server/languages/maori.pike:1.9 Rev: server/languages/norwegian.pike:1.12 Rev: server/languages/polish.pike:1.8 Rev: server/languages/portuguese.pike:1.11 Rev: server/languages/russian.pike:1.10 Rev: server/languages/serbian.pike:1.10 Rev: server/languages/slovenian.pike:1.17 Rev: server/languages/spanish.pike:1.12 Rev: server/languages/swedish.pike:1.20 Rev: server/modules/configuration/config_tags.pike:1.197 Rev: server/modules/configuration/roxen_test.pike:1.68 Rev: server/modules/configuration/update.pike:1.40 Rev: server/modules/examples/userdb_ex.pike:1.8 Rev: server/modules/filesystems/filesystem.pike:1.157 Rev: server/modules/filesystems/incoming.pike:1.19 Rev: server/modules/filesystems/restrictedfs.pike:1.24 Rev: server/modules/filesystems/sqlfs.pike:1.9 Rev: server/modules/filesystems/userfs.pike:1.71 Rev: server/modules/filters/tableborder.pike:1.13 Rev: server/modules/filters/whitespace_remover.pike:1.4 Rev: server/modules/graphics/business.pike:1.152 Rev: server/modules/graphics/gxml.pike:1.38 Rev: server/modules/graphics/pimage.pike:1.31 Rev: server/modules/graphics/rimage/rimage.pike:1.23 Rev: server/modules/icecast/icecast.pike:1.12 Rev: server/modules/icecast/pl_common.pike:1.9 Rev: server/modules/js-support/javascript_support.pike:1.68 Rev: server/modules/ldap/ldaptag.pike:2.38 Rev: server/modules/ldap/userdb_ldap.pike:1.14 Rev: server/modules/logging/home_logger.pike:1.35 Rev: server/modules/misc/preferred_language.pike:1.32 Rev: server/modules/misc/randomtext.pike:1.10 Rev: server/modules/misc/wapadapter.pike:1.13 Rev: server/modules/misc/webdav.pike:1.38 Rev: server/modules/proxies/connect.pike:1.20 Rev: server/modules/proxies/proxy.pike:1.57 Rev: server/modules/proxies/wais.pike:1.28 Rev: server/modules/scripting/cgi.pike:2.65 Rev: server/modules/scripting/fastcgi.pike:2.13 Rev: server/modules/scripting/perl.pike:2.26 Rev: server/modules/scripting/php.pike:2.5 Rev: server/modules/scripting/piketag.pike:2.38 Rev: server/modules/scripting/servlet.pike:2.24 Rev: server/modules/scripting/webapp.pike:2.32 Rev: server/modules/security/auth_httpbasic.pike:1.12 Rev: server/modules/security/auth_httpcookie.pike:1.12 Rev: server/modules/security/htaccess.pike:1.106 Rev: server/modules/security/userdb_sql.pike:1.10 Rev: server/modules/security/userdb_system.pike:1.12 Rev: server/modules/tags/accessed.pike:1.57 Rev: server/modules/tags/email.pike:1.43 Rev: server/modules/tags/emit_exec.pike:1.4 Rev: server/modules/tags/emit_timerange.pike:1.29 Rev: server/modules/tags/insert_cached_href.pike:1.22 Rev: server/modules/tags/obox.pike:1.41 Rev: server/modules/tags/rxmltags.pike:1.553 Rev: server/modules/tags/wizz.pike:1.10 Rev: server/modules/tags/writefile.pike:1.20 Rev: server/modules/throttling/throttling_byaddress.pike:1.6 Rev: server/modules/throttling/throttling_bytime.pike:1.8 Rev: server/ntroxenloader.pike:1.9 Rev: server/protocols/ftp.pike:2.125 Rev: server/protocols/http.pike:1.561 Rev: server/protocols/prot_hilfe.pike:2.15 Rev: server/protocols/prot_snmp.pike:2.8 Rev: server/sbin/roxen-create-server:1.5 Rev: server/tools/ntroxen/startdll/cmdline.cpp:1.21
Kludge to avoid bogus backtraces on exit. Rev: server/etc/modules/RoxenSSLFile.pike:1.26
Handle extra read callback in RUN_MAYBE_BLOCKING even when ENABLE_READS is zero, so that it's done before the write callback might get called. (The only thing the extra read callback might do in this case is to schedule a close packet for writing.) Rev: server/etc/modules/RoxenSSLFile.pike:1.25
Don't install the alert callback wrapper when the alert callback is zero. (This also avoids trampoline garbage.) Fixed regression in rev 1.19: Should still try to put the close packet on the wire before close() returns, even in nonblocking mode. Rev: server/etc/modules/RoxenSSLFile.pike:1.24
(..and some more.) Rev: server/etc/modules/RoxenSSLFile.pike:1.23
Removed some code in the write and close callbacks that should be dead now, provided the scheduling of the extra read callback works correctly. (Also minimized differences wrt the pike 7.6 version - just some comment and debug printout changes.) Rev: server/etc/modules/RoxenSSLFile.pike:1.22
Have to completely disable the session cache in 7.4 due to garbage problems. Rev: server/etc/modules/RoxenSSLFile.pike:1.21
Fixed bug where other callbacks could be called when the extra read call out is scheduled. The effect of this could be that a close or write callback got lost. Rev: server/etc/modules/RoxenSSLFile.pike:1.20
Fixed bug in close() where the write callback was installed to write the close package even when it was done synchronously in blocking mode. This could cause a race if the backend is waiting in another thread. Rev: server/etc/modules/RoxenSSLFile.pike:1.19
Fixed bug introduced in rev 1.13 where the callbacks sometimes weren't correctly reinstalled after switching from the local backend. Also fixed a bug where the handshake packet wasn't sent from the client in nonblocking mode with no write callback installed. Rev: server/etc/modules/RoxenSSLFile.pike:1.18
Don't do blocking I/O in destroy() - it's too dangerous (might e.g. lock up the gc). Rev: server/etc/modules/RoxenSSLFile.pike:1.17
More info in the thread debug errors. Rev: server/etc/modules/RoxenSSLFile.pike:1.16
Don't throw close errors from destroy(), to avoid spook backtraces when destructed from the gc. Rev: server/etc/modules/RoxenSSLFile.pike:1.15
Fixed possible clobbering of errno in close(). Don't use the old sslfile when running in 7.6 in 7.4 compat mode. Rev: server/etc/modules/RoxenSSLFile.pike:1.14
Fixed a race when switching from the local backend. Rev: server/etc/modules/RoxenSSLFile.pike:1.13
Trap windows WSAECONNRESET properly. Rev: server/etc/modules/RoxenSSLFile.pike:1.12
Ensure that the read callback gets a call if it's installed when there already is data in the internal read buffer. Thanks to Thomas Bopp for bug hunting. Rev: server/etc/modules/RoxenSSLFile.pike:1.11
Ported fix from 7.6: Return the stream from shutdown() also when no close at all has been requested. Fixed delaying of ssl_read_callback work also when the alert callback is called. Fixes [bug 4080 (#4080)]. Rev: server/etc/modules/RoxenSSLFile.pike:1.10
Removed some sprintf. Removed RoxenSSLFile. Rev: server/etc/modules/RoxenSSLFile.pike:1.2(DEAD) Rev: server/plugins/protocols/prot_https.pike:2.15 Rev: server/server_core/core.pike:1.877
Fixed local backend loop condition for blocking reads. This bug caused blocking read() calls to loop infinitely if the stream is closed remotely. Rev: server/etc/modules/RoxenSSLFile.pike:1.9
Sync with webserver. Fix in location "environment" Rev: server/admin_interface/tasks/change_version.pike:1.23 Rev: server/admin_interface/tasks/debug_summary.pike:1.12 Rev: server/bin/buildenv.pike:1.11 Rev: server/etc/modules/RoxenSSLFile.pike:1.1 Rev: server/plugins/protocols/http.pike:1.415 Rev: server/plugins/protocols/prot_https.pike:2.14 Rev: server/server_core/core.pike:1.876
Synched with fixes made in rev 1.80 of sslfile.pike in pike 7.6. Rev: server/etc/modules/RoxenSSLFile.pike:1.8
Minor fixes in SSL3_DEBUG messages. Rev: server/etc/modules/RoxenSSLFile.pike:1.7
Reapplied some more fixes for the old style backend, and some for the old style SSL module. Rev: server/etc/modules/RoxenSSLFile.pike:1.6
Reapplied fixes to work with the old style backend in pike 7.4. (It still uses the extended return values for callbacks, but it doesn't matter much since the 7.4 backend simply ignores them.) Rev: server/etc/modules/RoxenSSLFile.pike:1.5
Imported bugfixed version from revision 1.78 in pike 7.6. Rev: server/etc/modules/RoxenSSLFile.pike:1.4
Added wrapper for Stdio.File.is_open. Rev: server/etc/modules/RoxenSSLFile.pike:1.3
Removed some stuff that requires 7.6 backend extensions. It should work ok anyway except some details in the propagation of I/O errors. Rev: server/etc/modules/RoxenSSLFile.pike:1.2
Replacement for the buggy SSL.sslfile in 7.4, so we can get working ssl/tls in Roxen. Rev: server/etc/modules/RoxenSSLFile.pike:1.1