Commit Graph

136 Commits

Author SHA1 Message Date
Omar Polo
3b21cca385 allow to define macros in the config file
Macros can be defined at the top of the configuration file:

	dir = "/var/gemini"
	cert = "/etc/keys"

and re-used later, for example

	server "foo" {
		root "$dir/foo"       # -> /var/gemini/foo
		cert "$cert/foo.pem" # -> /etc/keys/foo.pem
	}
2021-06-29 12:17:40 +00:00
Omar Polo
5777923bb0 use getopt_long, add --help as synonym of -h and -V/--version 2021-06-29 10:49:59 +00:00
Omar Polo
2c43dcceb6 document `log' option 2021-06-17 09:27:09 +00:00
Omar Polo
74f0778b9a drop the dependency on lex by implementing yylex by ourselves
The actual implementation is based off doas' parse.y.  This gave us
various benefits, like cleaner code, \ to break long lines, better
handling of quotes etc...
2021-06-16 14:43:16 +00:00
Omar Polo
c92b802b6a add `param' keyword 2021-06-11 15:49:46 +00:00
Omar Polo
f740b61b03 more params from and send a custom list 2021-06-11 15:48:56 +00:00
Omar Polo
3a1bd9ab49 sync 2021-05-27 09:46:00 +00:00
Omar Polo
1eb3631d10 certificate generation (bugfix and improvement)
don't add gmid as organisation when generating the certificate, and
set the version to 3, so it's compatible with java/android clients.

Found by Gnuserland, thanks!
2021-05-12 17:37:22 +00:00
Omar Polo
84821dc0ac sync 2021-05-09 18:31:18 +00:00
Omar Polo
419e32b05e sync 2021-05-03 16:12:53 +00:00
Omar Polo
737a6b50c5 ensure %p (path) is always absolute
with the recent changes, sometimes the path may not start with a '/'.
This ensures that %s is ALWAYS an absolute path.
2021-04-30 19:07:37 +00:00
Omar Polo
fdea6aa0bc allow ``root'' rule to be specified per-location block 2021-04-30 17:16:34 +00:00
Omar Polo
cc8c2901ad added ``alias'' option to define hostname aliases for a server 2021-04-29 18:23:35 +00:00
Omar Polo
8e8b2e252c pidfile support with `-P pidfile' 2021-04-28 12:45:22 +00:00
Omar Polo
9cc630aa63 added ``env'' option to define environment vars for CGI scripts 2021-04-28 12:43:17 +00:00
Omar Polo
e6ca8eb156 lower log priority for fatal errors from CRIT to ERR
found by Anna, thanks!
2021-04-28 12:43:17 +00:00
Omar Polo
11c986679a sort the auto index alphabetically 2021-04-25 12:06:54 +00:00
Omar Polo
4d820b6cd2 use `text/x-patch' for .patch and .diff files 2021-04-21 07:51:29 +00:00
Omar Polo
b33425827e print the datetime when logging to stderr 2021-04-14 14:52:47 +00:00
Omar Polo
89541eeec0 define TLS_VERSION, TLS_CIPHER and TLS_CIPHER_STRENGTH for CGI scripts 2021-04-13 06:59:54 +00:00
Omar Polo
b211d0f7d9 sync changelog 2021-04-12 21:13:51 +00:00
Omar Polo
b8e64ccd44 list instead of fixed-size array for vhosts and locations
saves some bytes of memory and removes the limit on the maximum number
of vhosts and location blocks.
2021-03-31 16:32:18 +00:00
Omar Polo
e0ebdf2d94 sync changelog 2021-03-31 13:58:31 +00:00
Omar Polo
33b455ada3 sync changes 2021-03-31 13:23:29 +00:00
Omar Polo
c836cdfadb handle CGI scripts that replies with the maximum header length allowed
the 1024 bytes limits is for the META only, not for the whole
response.  That means that the maximum size for the header line is
1029!
2021-03-29 09:42:06 +00:00
Omar Polo
c8249bada3 gmid v1.6 -- "Stargazers" 2021-03-20 12:04:23 +00:00
Omar Polo
7e3aaf3752 sync changelog 2021-03-20 08:54:03 +00:00
Omar Polo
ad5301d1a0 sync ChangeLog 2021-03-20 07:46:47 +00:00
Omar Polo
793835cb26
add `log on/off' to enable/disable logs per-location 2021-02-23 13:43:24 +01:00
Omar Polo
02be96c6dd add `require client ca' rule to require certs signed by a CA 2021-02-09 22:30:04 +00:00
Omar Polo
b63e30ff44 define TLS_CLIENT_NOT_BEFORE/NOT_AFTER in CGI scripts 2021-02-07 21:47:01 +00:00
Omar Polo
9f006a2127 [cgi] split the query in words if needed and add them to the argv 2021-02-07 18:55:04 +00:00
Omar Polo
a709ddf5eb added prefork option 2021-02-07 12:05:32 +00:00
Omar Polo
e3ddf39095 add the ``entrypoint'' option 2021-02-06 18:28:43 +00:00
Omar Polo
6abda252e9 added `block return'' and `strip'' options 2021-02-06 17:22:37 +00:00
Omar Polo
8404ec301f don't %-decode the query 2021-02-05 14:31:53 +00:00
Omar Polo
ca21e10043 reload configuration on SIGHUP 2021-02-04 13:23:15 +00:00
Omar Polo
87f2b68b58 cgi now follows globbing rules 2021-02-02 22:38:35 +00:00
Omar Polo
5f715ce43f print the header in the directory listing 2021-02-02 09:48:32 +00:00
Omar Polo
38f8a798b1 mention v1.5 2021-02-01 12:30:34 +00:00
Omar Polo
e17642a7bb require absolute paths in config file 2021-02-01 11:08:57 +00:00
Omar Polo
ee29b5a63b sync 2021-01-31 11:09:15 +00:00
Omar Polo
e99923477a sync 2021-01-30 12:13:49 +00:00
Omar Polo
dceca3b69d sync 2021-01-29 17:29:21 +00:00
Omar Polo
3300cbe06a initial punycode support 2021-01-27 10:47:49 +00:00
Omar Polo
a5d04ea066 sync 2021-01-25 14:31:40 +00:00
Omar Polo
145ba43e16 sync 2021-01-25 10:34:05 +00:00
Omar Polo
252908e6bb added support for location blocks 2021-01-24 18:53:26 +00:00
Omar Polo
c8b7433918 added support for location blocks 2021-01-24 14:11:40 +00:00
Omar Polo
ba7b2faa86 sync 2021-01-24 09:55:19 +00:00
Omar Polo
0ac2dceccc sync changes 2021-01-21 16:19:11 +00:00
Omar Polo
1213c735bf sync 2021-01-21 09:17:19 +00:00
Omar Polo
6119e13e8a moving "default type" from global options to server options 2021-01-19 11:28:41 +00:00
Omar Polo
05c23a54ea add "lang" server option 2021-01-19 10:58:29 +00:00
Omar Polo
17b09e3cb7 add a dockerfile 2021-01-18 23:15:45 +00:00
Omar Polo
d89aa7630d typo 2021-01-18 22:09:17 +00:00
Omar Polo
e7ecf9a528 sync 2021-01-18 21:53:36 +00:00
Omar Polo
7a11e8a5d3 sync changes 2021-01-17 09:43:29 +00:00
Omar Polo
bd726b55be set SERVER_NAME to the vhost when executing CGI scripts 2021-01-15 19:23:43 +00:00
Omar Polo
5bc3c98ed4 add protocols to the config 2021-01-15 18:55:05 +00:00
Omar Polo
8696c5ea24 sync changes 2021-01-15 18:24:58 +00:00
Omar Polo
dafb57b8af sandbox also on FreeBSD with capsicum 2021-01-15 14:03:45 +00:00
Omar Polo
6214c12719 added sample configuration 2021-01-15 09:31:52 +00:00
Omar Polo
1590277007 conf & vhosts
* gmid.c (main): changed behaviour: daemon off by default
(main): changed -c in -C (cert option)
(main): changed -k in -K (key option, for consistency with -C)
(main): added -c to load a configuration
(main): certs, key and doc (-C -K and -d) doesn't have a default value anymore
(handle_handshake): add vhosts support
2021-01-15 09:17:43 +00:00
Omar Polo
9939ddcf9d sync changes 2021-01-13 19:03:21 +00:00
Omar Polo
7b1d979032 reject non-gemini protocols with 53 2021-01-11 14:45:57 +00:00
Omar Polo
85dff1f9c3 fix remote_user for CGI and add -6 flag to enable ipv6 2021-01-11 12:08:50 +00:00
Omar Polo
33756bd235 accept both ipv4 and ipv6 2021-01-10 22:56:33 +00:00
Omar Polo
709d6e5ead log also the port of the client 2021-01-10 22:29:22 +00:00
Omar Polo
60ff035518
mention IRI in changelong 2020-12-26 10:15:16 +01:00
Omar Polo
4f12842dfe
mention change in changelog file 2020-12-21 14:40:04 +01:00
Omar Polo
d7802bb44a
logging reworked and daemonize by default
The -l option was removed: now it logs on syslog if -f (foreground) is
not passed.
2020-12-02 21:18:01 +01:00
Omar Polo
c603f1260d
fix bug introduced in last version regarding full URLs
gemini://example.com was incorrectly parsed.
2020-11-18 09:45:28 +01:00
Omar Polo
dd3895586f
mention the bugfix and tag 1.3.1 2020-11-18 09:36:18 +01:00
Omar Polo
ae2ad03ec0
handle //example.com urls 2020-11-18 09:32:07 +01:00
Omar Polo
721e232529
make port number configurable 2020-11-18 09:12:27 +01:00
Omar Polo
d431188c66
fixed changelog format for old entries 2020-11-10 18:14:07 +01:00
Omar Polo
a5d310bc0d
[cgi] added support for path parameters
enhance the CGI scripting support so that script can take path
parameters.  That is, a script at /cgi/foo is called when the request
path is /cgi/foo/bar/...

This commit also introduce some backward incompatible changes as the
default env variables set for the CGI script changed.
2020-11-10 14:07:36 +01:00
Omar Polo
0ed5656795
documentation improvements 2020-11-06 18:11:45 +01:00
Omar Polo
aff8d19010
handle CGI concurrently
don’t stop-the-world-until-cgi-end, but rather poll on the script, so
we can handle other requests in the meantime.
2020-11-06 17:09:14 +01:00
Omar Polo
3c19febb01
ensure the requested protocol is “gemini”
…and not something else that happens to be 6-bytes long.
2020-11-06 14:24:25 +01:00
Omar Polo
2c3a40faf8
added option to log to a file 2020-11-06 10:58:30 +01:00
Omar Polo
dd080e1f75
define a MIME type for xml files 2020-11-05 17:05:28 +01:00
Omar Polo
19f68393e6
update the changelog and tag 1.2 2020-11-03 15:51:13 +01:00
Omar Polo
4f6eb772cb
new release: 1.1 2020-10-14 10:17:27 +02:00
Omar Polo
2b897a2cea
added a changelog file 2020-10-14 10:14:11 +02:00