* Added configure option "--disable-utmp" which must be used when
building with MUSL libc. This option disables login records which
are stubed out in MUSL anyway.
* Added missing include "sys/ttydefaults.h".
* Direct usage of BIO struct members is removed for new versions of
OpenSSL.
* Workaround for double BIO free in SSL_free() was updated to work
with new and old OpenSSL versions.
* Note that this patch only fixes compatibilty when building with
configure option "--disable-runtime-loading" (like it is done
for Debia package.).
On FreeBSD 12.0 I get within a minute:
Check failed at libhttp/httpconnection.c:433 in destroyHttpConnection(): !close(http->fd)
See also:
https://github.com/shellinabox/shellinabox/issues/389
I assume that close() fails with ECONNRESET and that we should just check
for errno != EBADF, which should also be OK for Linux and other systems,
which might return EIO in some conditions.
Linux close(2) manual page:
EBADF fd isn't a valid open file descriptor.
EINTR The close() call was interrupted by a signal; see signal(7).
EIO An I/O error occurred.
FreeBSD close(2) manual page:
[EBADF] The fd argument is not an active descriptor.
[EINTR] An interrupt was received.
[ENOSPC] The underlying object did not fit, cached data was
lost.
[ECONNRESET] The underlying object was a stream socket that was
shut down by the peer before all pending data was
delivered.
In case of any error except EBADF, the supplied file descriptor is
deallocated and therefore is no longer valid.
2016-02-23 23:18 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
Edit and function keys pressed with CTRL, ALT or SHIFT modifiers generated wrong key sequences.
* Workaround for random "Session closed" issues related to /bin/login
closing and reopening our pty during initialization. This happens only
on some systems like Fedora for example. Now we allow that our pty is
closed by ignoring POLLHUP on first read. Delay is also needed so that
login process has some time to reopen pty.
* Note that the issue may occur anyway but with this workaround we reduce
the chances.
* Disabled all methods of HTTP fallback when HTTPS is enabled. This
is enforced on server side so that even modified client code (JS)
can not redirect client from HTTPS to HTTP, like it was possible
before (issue #355).
* Current solution unfortunately also disables automatic upgrade from
HTTP to HTTPS (when available), since all non-SSL connections are
droped immediately.
* Added limited support for middle click pasting. For most browsers
and operating systems middle click pasting works only for concent
selected in current shellinabox window.
* Added new CSS class for handling reverse video with default terminal
colors. For colors given with value 0-255 background and foreground
values are just switched.
* New CSS classes were also added to Black On White and White On Black
color themes.
* Use stdout for usage and version information. Patch taken from
issue #344.
* Removed automatic usage display when command line parsing fails.
* Added version information in debug output.
* Session key is returned in first HTTP response if CGI mode is used.
Header filed is named 'X-ShellInABox-Session'. This can be used by
some special applications that need unique token.