Skip to content

Releases: omar-polo/gmid

“Space-dye Vest”

10 Jul 10:13
Compare
Choose a tag to compare

NB: there's an error in the man page, a 1.7.1 version with fixes is being worked on.

Starting from this version gmid doesn't depend on lex anymore, but
yacc is still needed.

New features

  • initial fastcgi support! (it's still young!)
  • added user-defined macros, either via -Dname=val or directly in
    the configuration file.
  • new include keyword to load additional configuration files.
  • new env rule to define environment vars for CGI scripts.
  • new alias rule to define hostname aliases for a server.
  • allow root to be specified per-location block.
  • pidfile support with the new -P cli flag.
  • define TLS_VERSION, TLS_CIPHER and TLS_CIPHER_STRENGTH for CGI
    scripts.

Improvements

  • remove limits on the number of virtual hosts and location blocks
    that can be defined.
  • print the datetime when logging to stderr.
  • use text/x-patch for .patch and .diff files.
  • sort the auto index alphabetically.
  • various improvements to the log management.
  • drop the dependency on lex.
  • added --help as synonym of -h and -V/--version to print the
    version.
  • c-like handling of strings in the configuration file: when two or
    more strings are next to each-others, are automatically joined into
    a single string. This is particularly useful with $-macros.

Bug fixes

  • correctly handle CGI scripts that replies with the maxium header
    length allowed.
  • fixed the static target.
  • fixed recursive mkdirs for configless mode (i.e. create
    ~/.local/share/gmid)
  • logs sent to syslog now have proper priority (before every message
    ended up as LOG_CRIT). Found by Anna "CyberTailor", thanks!
  • ensure %p (path) is always absolute in block return rules.
  • fix automatic certificate generation, it caused problems on some
    adroid devices. Found by Gnuserland, thanks!
  • document the log rule.
  • the seccomp filter was reworked and now it's known to work properly
    on a vast range of architectures (to be more specific: all the
    architectures supported by alpine linux), see github issue #4.
    Prompted and tested by @begss, thanks!
  • various improvements to the configure script, notified and fixed by
    Anna "CyberTailor", thanks!
  • added a timeout to the regression tests.

Breaking changes

  • if duplicate rules are found in the configuration file, an error is
    now raised instead of silently using only the last value.
  • (sort of) gg moved to regress as it's only used in the
    regression suite.
  • (notice) the mime "mime-type" "extension" rule was deprecated and
    replaced by the new map "mime-type" to-ext "extension". The
    mime rule will be removed in a future version because its syntax
    is incompatible with the new string auto-concat mechanism.

“Stargazers” bugfix release

03 Jul 07:06
Compare
Choose a tag to compare

This release improves the seccomp filter on linux, so now it should compile and work also on architectures different from amd64 and aarch64.

See the GitHub issue #4.

“Stargazers” hotfix

12 Apr 20:59
Compare
Choose a tag to compare

This is an hotfix release for a bug in the IRI parser that can lead to a denial of service.

IRIs with multiple .. components that ends with .. (but not ../) and that don't escapes the root will cause an infinite loop, locking up one server process.


This release also backports the fix for the Dockerfile by @kornellapacz.

“Stargazers”

20 Mar 12:13
Compare
Choose a tag to compare

Blog post.

New features

  • reload configuration on SIGHUP without disconnecting the clients
  • added block return, strip and entrypoint options
  • added a prefork option to control the number of server processes (default: 3)
  • added require client ca option to require client certificates signed by a specific CA
  • added log option to enable/disable logging per-vhost
  • define TLS_CLIENT_NOT_BEFORE and TLS_CLIENT_NOT_AFTER for CGI scripts

Improvements

  • improved the directory listing: print the path of the current directory
  • for CGI scripts, split the query in words and pass each of them via argv too
  • [FreeBSD] add capsicum to the logger process

Bug fixes

  • CGI scripts now have only std{in,out,err} open
  • change some CGI variables to match the correct behaviour

Breaking changes

  • relative paths are not allowed in the configuration file
  • some environment variables for CGI script were changed.

“Interstellar Overdrive”

30 Jan 13:30
Compare
Choose a tag to compare

Blog post.

New features

  • vhost support
  • configuration file
  • sandboxed by default on OpenBSD, FreeBSD and linux
  • customize the accepted TLS version
  • customizable default type
  • customizable mime mappings
  • provide a dockerfile
  • provide a lang parameter when serving text/gemini files
  • added a ‘configure’ script
  • customizable directory index
  • directory listings (disabled by default)
  • [config] location blocks support
  • chroot support
  • punycode support

Improvements

  • log ip, port, full request and response code (even for CGI scripts)
  • host name matching with globbing rules
  • automatically generate TLS certificates when running in config-less mode and no certificate was found

Bugfixes

  • [IRI] normalize scheme
  • [IRI] normalize hostnames
  • [IRI] accept a wider range of codepoints in hostnames
  • set SERVER_NAME when executing CGI scripts

Breaking changes

  • removed -C, -K flags
  • -d changed meaning: the directory to serve is now given as positional parameter and -d is used to specify the directory for the TLS certificates (either autogenerated or not.)

1.4.1: fix build on non-OpenBSD systems

11 Jan 15:18
Compare
Choose a tag to compare

fixes the build on non OpenBSD system

1.4

11 Jan 14:56
Compare
Choose a tag to compare
1.4

New stuff:

  • uri parser rewritten
  • accept only absolute URI in requests
  • IRI (Internationalized Resource Identifiers) support (RFC3987)
  • dual stack: with -6 will accept also connections over IPv6
  • daemon mode by default: pass -f to stays in the foreground
  • log also the port, not only the remote IP

Possible breaking changes:

  • -l flag retired. Now we log to syslog, or to stderr if -f is given

Bugfixes:

  • -d accepts relative paths
  • reject connections if the scheme isn't gemini