[ Automatically generated from git log ] 2017-02-04 Kim Holviala * Released version 2.4 "Millennium Edition" * Fixed logging of TLS connections (using gophers:// protocol) * Add TLS support for CGI apps and caps.txt via -T option * Fixed line wrapping in README 2017-02-03 Kim Holviala * Released version 2.3 * Document the use of Stunnel4 for gopher over TLS * Don't get TCP port number from user session data 2017-02-02 Kim Holviala * Initial support for HAproxy/Stunnel proxy protocol v1 * Skip goto labels when generating functions.h 2017-02-01 Kim Holviala * Fixed make clean to remove all old gophernicus-VERSION.tar.gz files * Enabled large file support on 32-bit Linux and AIX * Remove sendfile() support from Linux 2016-12-30 Kim Holviala * Changed copyright years to include 2017 - Happy New Year 2016-12-11 Kim Holviala * Released version 2.2 * Small fix for git2changelog so that it keeps \ and / in comments * Fixed systemd-based installation for openSUSE and RedHat 2016-11-14 Kim Holviala * Re-released version 2.1 \m/ * Ignore exit errors in systemd configuration 2016-11-13 Kim Holviala * Updated TODO * Released version 2.1 * Added systemd support for Debian package * Removed dependency for update-inetd in Debian package * Fix Debian package building for inetd systems * Added systemd entries to Debian logcheck ignore file 2016-10-18 Kim Holviala * Fixed a potentially uninitialized char in strcut() * Autogenerated CAPS now shows release codename 2016-09-08 Kim Holviala * Released version 2.0 * Updated deb package control files (still borken) 2016-01-01 Kim Holviala * Released version 2.0-alpha "for Workgroups" * Added option -v to display version number and build date * Updated TODO (removed tasks that were done) * Added detection for non-DMI Linux hypervisors (Xen) * Added support for release codenames * Fixed make install for non-systemd systems * Added optional support for TCP wrappers 2015-12-31 Kim Holviala * Installing now explicitly clears the SHM block Gophernicus uses 2015-12-30 Kim Holviala * Updated TODO (removed tasks that are now done) * Installation now shows the current configuration file * Move configuration from systemd unit file to separate enviroment file * Increased default page width from 70 to 76 chars * Added detection for Gentoo Linux version * Fixed installation for CentOS 7 2015-12-29 Kim Holviala * Added install/uninstall support for Linux systemd * Get hardware vendor and type from DMI data on Linux * Tiny fix for 'make ChangeLog' to force overwrite of old file * Added filetype definition for webm and ogv movies * Fixed installation for Mac OSX 10.11 El Capitan * Removed last remaining 'for inetd' form docs * Removed 'for inetd' from docs because it's not a requirement * Code needed more cows * Changed copyright years to 2009-2016 2015-10-16 Kim Holviala * Released version 1.8.1 (1.8 had broken gophermap support) * Fix for executing shell commands inside gophermaps (previous commit broke this) 2015-09-23 Kim Holviala * Released version 1.8 * Fix for executable gophermaps in directories with spaces (bugreport from Black Rider) * Fixed whitespace formatting 2015-03-02 Kim Holviala * Changed copyright years include 2015 * Released version 1.7 2015-01-04 Kim Holviala * Added ServerDefaultEncoding to automatic caps.txt 2015-01-01 Kim Holviala * Added ServerSupportsStdinScripts to automatic caps.txt 2014-12-19 Kim Holviala * Fixed a comment & formatting * Added detection for CRUX Linux * Added $SESSION_ID environment variable for CGI scripts 2014-11-10 Kim Holviala * Added MacOSX 10.10 to the list of supported systems in INSTALL * Released version 1.6 * Fix compiling for MacOS X Yosemite 2014-05-15 Kim Holviala * Updated TODO for systemd/upstart * Fix platform detection for Slackware (and possibly others) 2014-02-01 Kim Holviala * Add license header to bin2c.c * Up version number to 1.6-whatever 2014-01-25 Kim Holviala * Remove 'only tested with GCC' from INSTALL * Automatically copy ChangeLog to distribution dir on release * Automatically copy INSTALL & README to distribution dir on release * Add deb packaging leftovers to .gitignore * Up version number to 1.5 + include forgotten file git2changelog * Don't update ChangeLog unless the source tree is a git repo * Make ChangeLog update itself automatically from git log * Up Debian package version to 1.5 * Added .gitignore * Clean up supported platforms list * Up version number to 1.5-rc1 (I mean really, this time) * Up version number to 1.5-rc1 & update copyright years to 2014 * Search strings were being urldecoded against the specs (bugreport from Kacper Gutowski) * Fixed a (non-security) bug in strcut() * Initial git commit with version 1.4 2012-12-02 Kim Holviala * Released version 1.4 * Added logcheck ignore file for Debian * Fixed compile without HAVE_SHMEM * Autogenerated caps.txt now works without SHMEM * Support for Haiku R1 (make && make install works) * CGIs now have $LOCAL_ADDR * Debian package no longer depends on lsb-release * CPU type is now properly detected on AIX * Makefile supports cross-compiling (CC & HOSTCC) * Option -nr disables root user checking (for debugging) * Platform detection for Linux/mips boards (routers) * Fixes for OpenBSD (thanks to Brian Callahan) * Last remaining sprintf() replaced with snprintf() * max() is no longer a function but a #define * Clang fixes (thanks to Jacob Dahl Pind) * Removed system-info.sh & dmidecode from Debian package 2012-06-12 Kim Holviala * Released version 1.3 * Support for headerless HTTP/0.9 * Code cleanups * Platform probing now knows about RedHat and Slackware * lsb_release no longer gets called if it doesn't exist (bugreport from Jacob Dahl Pind) * Changed menu errors from type "i" text to type "3" (bugreport from Damien Carol) * Removed the special OSX Carbonized build * Fixed a bug in menu.c: popen() needs pclose() * Fixed a off-by-one in gopher_filetype() * Changed the filetype of documents (doc/ps/pdf) to "d" 2012-05-04 Kim Holviala * Released version 1.2 (finally...) * On the fly selector rewriting (like Apache mod_rewrite) * Gophertags are properly converted to output charset * Server admin email can be specified for caps.txt * Server location for caps.txt * Split options.c from gophernicus.c * Removed support for Gopher over HTTP proxies * Hack to make "gopher example.com" work (UMN gopher client assumes gopher+ which we don't support) 2010-12-01 Kim Holviala * Released version 1.1 * Content-based detection of gif/png/jpg/ps/pdf/html/gz * Gophermap virtual host list (%) only lists FQDNs * Serve out caps.txt from a file if it exists * Option -na disables autogenerated caps.txt * Changed option -l to -b (show BSD license) * Changed option -m to -l (log to file) * README and LICENSE weren't zero-terminated strings (duh) * Querying /server-status no longer updates statistics (because Munin statistics collection was being throttled) * Internal charset variables are now enums and not strings 2010-10-05 Kim Holviala * Released version 1.0 * Support for caps.txt as suggested by Cameron Kaiser * Support for gophertags (lifted from Bucktooth) * HTTP requests are redirected to a public gopher proxy * Allow directories named "gophermap" and "gophertag" (only files are special) * Removed duplicate call to strniconv() * A few ENABLE_STRICT_RFC1436 additions * Much more descriptive error logging * Self references /./ are removed from request * Apache-compatible file logging in combined log format (-m) * FIFOs in directories no longer crash the server (duh!) * Support for Mac OS X (tested with 10.5 on Intel) * Reworked Makefile with platform-specific build targets * Fixed a call to dirname(path) (don't assume it modifies path) * Makefile installer now supports xinetd and launchd * Makefile installer installs default /var/gopher/gophermap and links the document directory as /docs/ * Added SERVER_ARCH, SERVER_VERSION and SERVER_DESCRIPTION to CGI env variables * Fixed a segfault where shm was used uninitialized (duh!) * Generate native Debian/Ubuntu package with "make deb" * platform() now tries to figure out Linux distribution * platform() knows about Linux ARM boards * Added argument -nm (No shared Memory) for debugging * Fixed AIX make glitch when compiling bin2c (bug in make?) * Changed the name of the project from "Gophernicus Server" to plain "Gophernicus" * Menus without footer (-nf) were missing the dot at the end * Footer message is now right-aligned * server-status and caps.txt requests now update sessions * Compile-time option ENABLE_AUTOHIDING hides manually listed resources from generated menus (to prevent double listings) 2010-07-03 Kim Holviala * Released version 0.9 * Added option to disable HTTP-style query strings * Fixed a regression where some binary files were served out as text (which broke them) * BinHex files are now mapped to filetype 4 * Disabling vhosting disables sessions (mostly) 2010-04-30 Kim Holviala * Released version 0.8 * Security bug in hURL handler fixed * Error pages are now correctly generated for type 'h' * Menu error page more compatible with clients * New macro sstrncmp() compares without explicit sizeof() * Removed all traces of gopher++ protocol (extra headers) as it just didn't work with older (circa '92) servers * Added option to disable automatic menu headers (titles) * Do a chdir() to the resource dir before doing anything * Double-slashes were slashed in QUERY_STRING by accident * Relative links to external hosts work properly in gophermap * Gophermaps can include other gophermaps with =/path/to/file * Executable gophermaps are parsed just like static ones 2010-04-13 Kim Holviala * Released version 0.7 * This release is feature complete, no new features in sight * Support for NetBSD (a typo prevented building - duh) * Replaced the poorly-working scandir() with opendir/qsort * Directory listings (menus) are limited to 1024 entries * Changed the filetype of movies from "v" to ";" (which sucks) * Fixed a compatibility issue with bucktooth gophermaps * Finally wrote decent documentation (README and INSTALL) 2010-04-11 Kim Holviala * Released version 0.6 * platform() results are kept in shared memory * Support for AIX 5.1 and newer * IPv4-in-IPv6 prefix ::ffff: is removed from remote_addr * Replaced install(1) with the install-sh script * /server-status CPULoad can be parsed from /usr/bin/uptime * Replaced text2c/hexdump with bin2c.c (less dependencies) * Files with extension .q (type 7 query) are considered CGIs * Filetype handling completely rewritten * Configurable gopher filetypes using the "-e ext=X" argument * Per-directory filetype overrides in gophermaps with ":ext=X" * Refuse to serve out gophermaps (why didn't I catch this before?) * Cleaned up main() * Output filters - run files through an external program (php!) 2010-04-05 Kim Holviala * Released version 0.5 * Code tested to work on 32-bit Linux/armv5tel * Filetype 7 query errors are now handled properly * HTTP-style query string overrides type 7 query * Protocol detection (0/+/++) works properly * gopher++ extra headers parsed correctly * gopher++ works ok with a patched NSCA Mosaic! * ISO-8859-1 (Latin-1) output * Full UTF-8 output support (without widechars) * Gophermaps are converted to output charset * All type 0 output is converted to output charset * All charset conversions can be disabled with option -no * !Titles in gophermaps are converted to gopher menu titles * Automatically generates gopher title resources for menus * Compile-time option to strictly adhere to RFC 1436 * Compile-time option to disable all gopher++ support 2010-03-29 Kim Holviala * Released version 0.4 * Renamed the project to "Gophernicus Server" * Major rewrite with much cleaner code * Changed all strncpy's to the OpenBSD strlcpy * Server can guess the request type (menu/text/binary) * Errors are formatted for current filetype (menu/text) * Errors for images (types g&I) are outputted as an image * /~luser (/home/luser/public_gopher) must be owned by luser * Configurable output width for menus * Files are outputted using sendfile() if available * Locale forced to POSIX for strftime() * Filetype '-' in gophermaps hides files * Gopher+ requests are now handled gracefully * Relative selectors in gophemaps work * Filesizes in menus are now human-readable (KB/MB/GB etc) * Refuse to serve world-writeable content * Support for Apache-style /server-status * HTTP requests for /server-status work (munin monitoring ftw!) * Session tracking using shared memory * Referer support for CGIs * Replaced iconv() with own charset conversion routine * Automatic throttling for users who hit the server too much * Replaced static compile-time uname with uname() * Support for virtual hosting (with gopher0 no less!) 2010-01-07 Kim Holviala * Released version 0.3 * Automatic detection of text vs. binary filetype for files which have no (known) suffix * hURL redirect pages now respect -f (no footer) option * IPv6 support for logging & CGI REMOTE_ADDR * Inline gophermaps * Removed support for relative resource names in gophermaps * Support for virtual userdirs (~user -> /home/user/public_gopher) * Automatic listing of userdirs in gophermap * Redirect accidental http requests to gopher * License included in the binary -> install no longer installs docs * Changed command line options (I was running out of arg letters...) * Debug to syslog with '-d' option 2010-01-02 Kim Holviala * Released version 0.2 * Logging to syslog * Support for gophermaps * Support for executable gophermaps * Support for CGI scripts * Support for type 7 search queries * Support for hURL redirect pages * Support for non-ASCII resource/file names (tested with UTF-8) * Support for both %hex and #octal request encodings * Try to get server hostname from $HOSTNAME or gethostname() * Basic support for different platforms via HAVE_XX defines 2009-12-30 Kim Holviala * Released version 0.1 * Basic rfc1436 functionality works * Fancy menus with file dates & sizes * Options via command line (with sensible defaults) 2009-12-28 Kim Holviala * Started coding kgopherd * Trying to remember how "C" works...