diff --git a/config.h b/config.h index d2118c9..d139dc5 100644 --- a/config.h +++ b/config.h @@ -138,7 +138,7 @@ #define STDC_HEADERS 1 /* Most recent revision number in the version control system */ -#define VCS_REVISION "165" +#define VCS_REVISION "166" /* Version number of package */ #define VERSION "2.9" diff --git a/configure b/configure index 37e5ae4..a9b93d9 100755 --- a/configure +++ b/configure @@ -2317,7 +2317,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $ ac_compiler_gnu=$ac_cv_c_compiler_gnu -VCS_REVISION=165 +VCS_REVISION=166 cat >>confdefs.h <<_ACEOF diff --git a/configure.ac b/configure.ac index b214501..f640637 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ AC_PREREQ(2.57) dnl This is the one location where the authoritative version number is stored AC_INIT(shellinabox, 2.9, markus@shellinabox.com) -VCS_REVISION=165 +VCS_REVISION=166 AC_SUBST(VCS_REVISION) AC_DEFINE_UNQUOTED(VCS_REVISION, "${VCS_REVISION}", [Most recent revision number in the version control system]) diff --git a/demo/vt100.js b/demo/vt100.js index e66f163..15a555b 100644 --- a/demo/vt100.js +++ b/demo/vt100.js @@ -1801,7 +1801,7 @@ VT100.prototype.toggleBell = function() { }; VT100.prototype.about = function() { - alert("VT100 Terminal Emulator " + "2.9 (revision 165)" + + alert("VT100 Terminal Emulator " + "2.9 (revision 166)" + "\nCopyright 2008-2009 by Markus Gutschke\n" + "For more information check http://shellinabox.com"); }; @@ -2251,7 +2251,8 @@ VT100.prototype.keyDown = function(event) { event.keyCode >= 65 && event.keyCode <= 90; var alphNumKey = asciiKey || - event.keyCode >= 96 && event.keyCode <= 105; + event.keyCode >= 96 && event.keyCode <= 105 || + event.keyCode == 226; var normalKey = alphNumKey || event.keyCode == 59 || event.keyCode == 61 || @@ -2259,7 +2260,7 @@ VT100.prototype.keyDown = function(event) { event.keyCode >= 109 && event.keyCode <= 111 || event.keyCode >= 186 && event.keyCode <= 192 || event.keyCode >= 219 && event.keyCode <= 222 || - event.keyCode == 226 || event.keyCode == 252; + event.keyCode == 252; try { if (navigator.appName == 'Konqueror') { normalKey |= event.keyCode < 128; diff --git a/libhttp/httpconnection.c b/libhttp/httpconnection.c index a41c0c1..c4a4673 100644 --- a/libhttp/httpconnection.c +++ b/libhttp/httpconnection.c @@ -492,6 +492,16 @@ void httpTransfer(struct HttpConnection *http, char *msg, int len) { check(msg); check(len >= 0); + // Internet Explorer prior to version 7 seems to have difficulties with + // compressed data. It also has difficulties with SSL connections that + // are being proxied. + int ieBug = 0; + const char *userAgent = getFromHashMap(&http->header, "user-agent"); + const char *msie = userAgent ? strstr(userAgent, "MSIE ") : NULL; + if (msie && msie[5] >= '4' && msie[5] <= '6') { + ieBug++; + } + int compress = 0; char *contentLength = NULL; if (!http->totalWritten) { @@ -528,7 +538,7 @@ void httpTransfer(struct HttpConnection *http, char *msg, int len) { #ifdef HAVE_ZLIB // Compress replies that might exceed the size of a single IP packet - compress = !isHead && + compress = !ieBug && !isHead && !http->isPartialReply && len > 1400 && httpAcceptsEncoding(http, "deflate"); @@ -630,18 +640,6 @@ void httpTransfer(struct HttpConnection *http, char *msg, int len) { http->msgLength = len; } - // Internet Explorer prior to version 7 has a bug when sending - // XMLHttpRequests over HTTPS that go through a proxy. It won't see the - // reply until we close the connection. - int ieBug = 0; - if (http->sslHndl) { - const char *userAgent = getFromHashMap(&http->header, "user-agent"); - const char *msie = userAgent ? strstr(userAgent, "MSIE ") : NULL; - if (msie && msie[5] >= '4' && msie[5] <= '6') { - ieBug++; - } - } - // The caller can suspend the connection, so that it can send an // asynchronous reply. Once the reply has been sent, the connection // gets reactivated. Normally, this means it would go back to listening @@ -688,7 +686,7 @@ void httpTransfer(struct HttpConnection *http, char *msg, int len) { } } - if (ieBug) { + if (http->sslHndl && ieBug) { httpCloseRead(http); } } diff --git a/shellinabox/shell_in_a_box.js b/shellinabox/shell_in_a_box.js index 90bf13a..7b8c872 100644 --- a/shellinabox/shell_in_a_box.js +++ b/shellinabox/shell_in_a_box.js @@ -355,7 +355,7 @@ ShellInABox.prototype.extendContextMenu = function(entries, actions) { }; ShellInABox.prototype.about = function() { - alert("Shell In A Box version " + "2.9 (revision 165)" + + alert("Shell In A Box version " + "2.9 (revision 166)" + "\nCopyright 2008-2009 by Markus Gutschke\n" + "For more information check http://shellinabox.com" + (typeof serverSupportsSSL != 'undefined' && serverSupportsSSL ? diff --git a/shellinabox/vt100.js b/shellinabox/vt100.js index e66f163..15a555b 100644 --- a/shellinabox/vt100.js +++ b/shellinabox/vt100.js @@ -1801,7 +1801,7 @@ VT100.prototype.toggleBell = function() { }; VT100.prototype.about = function() { - alert("VT100 Terminal Emulator " + "2.9 (revision 165)" + + alert("VT100 Terminal Emulator " + "2.9 (revision 166)" + "\nCopyright 2008-2009 by Markus Gutschke\n" + "For more information check http://shellinabox.com"); }; @@ -2251,7 +2251,8 @@ VT100.prototype.keyDown = function(event) { event.keyCode >= 65 && event.keyCode <= 90; var alphNumKey = asciiKey || - event.keyCode >= 96 && event.keyCode <= 105; + event.keyCode >= 96 && event.keyCode <= 105 || + event.keyCode == 226; var normalKey = alphNumKey || event.keyCode == 59 || event.keyCode == 61 || @@ -2259,7 +2260,7 @@ VT100.prototype.keyDown = function(event) { event.keyCode >= 109 && event.keyCode <= 111 || event.keyCode >= 186 && event.keyCode <= 192 || event.keyCode >= 219 && event.keyCode <= 222 || - event.keyCode == 226 || event.keyCode == 252; + event.keyCode == 252; try { if (navigator.appName == 'Konqueror') { normalKey |= event.keyCode < 128; diff --git a/shellinabox/vt100.jspp b/shellinabox/vt100.jspp index 36d6828..8759856 100644 --- a/shellinabox/vt100.jspp +++ b/shellinabox/vt100.jspp @@ -2251,7 +2251,8 @@ VT100.prototype.keyDown = function(event) { event.keyCode >= 65 && event.keyCode <= 90; var alphNumKey = asciiKey || - event.keyCode >= 96 && event.keyCode <= 105; + event.keyCode >= 96 && event.keyCode <= 105 || + event.keyCode == 226; var normalKey = alphNumKey || event.keyCode == 59 || event.keyCode == 61 || @@ -2259,7 +2260,7 @@ VT100.prototype.keyDown = function(event) { event.keyCode >= 109 && event.keyCode <= 111 || event.keyCode >= 186 && event.keyCode <= 192 || event.keyCode >= 219 && event.keyCode <= 222 || - event.keyCode == 226 || event.keyCode == 252; + event.keyCode == 252; try { if (navigator.appName == 'Konqueror') { normalKey |= event.keyCode < 128;