aboutsummaryrefslogtreecommitdiff
path: root/ChangeLog
blob: 1bfd4b7a1c81507977cbdccaa35ec7619dc758a8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
2023-07-25  Omar Polo  <op@omarpolo.com>

	* gmid.c (log_request): allow to change the logging style.

2023-07-24  Omar Polo  <op@omarpolo.com>

	* parse.y: add ability to log to files with `log access <path>'.

2023-07-23  Omar Polo  <op@omarpolo.com>

	* parse.y: revamp fastcgi configuration; make it per-location

2023-07-22  Omar Polo  <op@omarpolo.com>

	* titan.c (main): add titan(1), a simple titan client

	* gg.c (get): warn when the server doesn't use TLS' close notify

2023-07-01  Omar Polo  <op@omarpolo.com>

	* fcgi.c (fcgi_handle_stdout): parse and log the fastcgi reply

2023-06-24  Omar Polo  <op@omarpolo.com>

	* server.c (handle_handshake): correctly handle TLS handshake failures.

	* server.c (client_close_ev): plug memory leak

2023-06-23  Omar Polo  <op@omarpolo.com>

	* parse.y: implement `listen on'

2023-06-13  Omar Polo  <op@omarpolo.com>

	* regress/sha: remove regress/sha; sha256/sha256sum is no more required for the regress suite.

2023-06-12  Omar Polo  <op@omarpolo.com>

	* regress/lib.sh (run_test): use the default prefork in tests

2023-06-11  Omar Polo  <op@omarpolo.com>

	* crypto.c: add a privsep crypto engine (enabled only on OpenBSD)

	* configure: add -Wpointer-sign to the mix, adjust the code to cope.

2023-05-05  Omar Polo  <op@omarpolo.com>

	* contrib/gencert: add -e to generate EC keys

2023-05-08  Omar Polo  <op@omarpolo.com>

	* sandbox.c: drop landlock, seccomp and capsicum support

2022-09-10  Omar Polo  <op@omarpolo.com>

	* parse.y (string): retire the deprecated `mime' and `map' config options

2022-09-07  Omar Polo  <op@omarpolo.com>

	* ge.c (main): add `ge': small program to quickly export a directory over Gemini.

2022-09-06  Omar Polo  <op@omarpolo.com>

	* server.c: drop CGI support.

2022-07-07  Omar Polo  <op@omarpolo.com>

	Included as part of gmid 1.8.5:

	* log.c (logger_main): fix timestamps in log files.  Reported by Karl Jeacle, thanks!

	* dirs.c (scandir_fd): drop d_reclen; it's not available on DragonflyBSD (at least.)

2022-07-07  Anna “CyberTailor”

	* Makefile: include contrib/ in dist

2022-07-04  Omar Polo  <op@omarpolo.com>

	* contrib/gmid: remove OpenBSD' rc file: it's now maintained in the ports tree

	* configure (VERSION): 1.8.4 tagged

	* server.c (check_path): log when it fails to open a file because of permissions
	(client_write): encode file names in the directory index, spotted by cage
	(client_write): add a trailing / for dirs in the directory index.

	* iri.c (parse_path): allow '@' and ':' in paths

2022-04-08  Omar Polo  <op@omarpolo.com>

	* mime.c (mime): do a binary search to match the MIME time

	* gmid.c (listener_main): don't load the default mime listing when
	`types' is used.  (text/gemini -> gmi/gemini is still hardcoded)

	* mime.c (add_mime): fix memory leak in the mime handling

2022-04-07  Omar Polo  <op@omarpolo.com>

	* gmid.conf.5: move config file documentation into a new man page

	* parse.y (option): deprecate `map' rule in favour of the `types' block

2022-03-27  Omar Polo  <op@omarpolo.com>

	* configure (VERSION): 1.8.3 tagged

	* server.c (start_cgi): fix a possible out-of-bound access in the
	CGI handling.

2022-03-26  Omar Polo  <op@omarpolo.com>

	* configure (VERSION): 1.8.2 tagged

	* server.c (handle_imsg_cgi_res): fix a CGI timing issue: if a
	connection handled by a CGI scripts is interrupted with the right
	timing it causes the server process to exit with "fatal in
	client_by_id: invalid id X"

2022-02-26  Omar Polo  <op@omarpolo.com>

	* parse.y: add the types block

2022-02-13  Omar Polo  <op@omarpolo.com>

	* sandbox.c (filter): tightens seccomp policy wrt openat: allow
	only with the O_RDONLY flag.

2022-02-13  Tobias Berger  <tobi.berger13@gmail.com>

	* sandbox.c (filter): allow fstatat64, llseek and sigreturn;
	needed by glibc on armv7

2022-02-10  Omar Polo  <op@omarpolo.com>

	* configure (VERSION): 1.8.1 tagged

	* sandbox.c (open_landlock): fix landlock usage

2022-01-30  Omar Polo  <op@omarpolo.com>

	* configure (VERSION): 1.8 “Lightbulb Sun” tagged

	* proxy.c (proxy_setup_tls): allow to specify a custom hostname as SNI for the TLS handshake with the proxied host.

2022-01-02  Omar Polo  <op@omarpolo.com>

	* server.c (matched_proxy): allow to specify multiple proxy blocks and add matching rules

	* parse.y (servbody): relax the strict ordering of options, location and proxy blocks

2022-01-01  Omar Polo  <op@omarpolo.com>

	* proxy.c (proxy_init): add support for client certificate when proxying

2021-12-29  Omar Polo  <op@omarpolo.com>

	* proxy.c (proxy_init): add proxying support via `proxy relay-to'

2021-12-11  Max  <vdrummer@posteo.net>

	* sandbox.c (filter): [seccomp]: allow ugetrlimit(2), needed by glibc on armv7l

2021-12-09  Omar Polo  <op@omarpolo.com>

	* server.c (client_read): don't check if the port in the request is the same we're listening on.  Suggested by Allen Sobot, thanks!
	* configure: add --prefix=... long argument.

2021-11-16  Omar Polo  <op@omarpolo.com>

	* configure (singletest): fix the cross-compilation: don't run the test binaries just built.  Suggested by Nikolay Korotkiy (@sikmir), thanks!

2021-10-24  Omar Polo  <op@omarpolo.com>

	* log.c (log_request): fix "double slash" in logs: gmid ended up printing two slashes between the hostname and the path when logging the request IRI.

2021-10-15  Stephen Gregoratto  <dev@sgregoratto.me>

	* gmid.c (add_keypair): implement OCSP stapling support

2021-10-13  Omar Polo  <op@omarpolo.com>

	* server.c (do_accept): don't die on ECONNABORTED (``Software caused connection abort'')

2021-10-11  Omar Polo  <op@omarpolo.com>

	* contrib/renew-certs: add script to automatically renew self-signed certificates

2021-10-09  Omar Polo  <op@omarpolo.com>

	* parse.y (print_conf): multiple -n to dump the parsed configuration

	* contrib/gencert: add gencert, a simple script to generate self-signed certs

2021-10-04  Omar Polo  <op@omarpolo.com>

	* regress/lib.sh (raw): reduced the timeout time for single checks from 30 to 10 seconds

	* regress/runtime: regression test restructured.  still implemented as a set of POSIX-scripts

2021-10-02  Omar Polo  <op@omarpolo.com>

	* server.c (client_read): reworked the internal structure.  Now we leverage libevent' bufferevents more.
	(cgi_read): be more strict with CGI scripts: don't pass through illegal CGI responses.

2021-09-26  Omar Polo  <op@omarpolo.com>

	* fcgi.c (fcgi_req): the FastCGI implementation is fully asynchronous

2021-09-24  Omar Polo  <op@omarpolo.com>

	* configure (VERSION): 1.7.4 tagged

	* server.c (check_for_cgi): fix out-of-bound access, found with lots of help from cage, thanks!

2021-09-19  Omar Polo  <op@omarpolo.com>

	* sandbox.c (gmid_create_landlock_rs): [linux] use landlock on the server and logger process to reduce the fs access

	* configure (VERSION): 1.7.3 tagged

2021-09-17  Omar Polo  <op@omarpolo.com>

	* log.c (logger_main): fix syslog logging on FreeBSD

2021-08-24  Omar Polo  <op@omarpolo.com>

	* gmid.c (main): don't crash on -n without -c

2021-07-29  Anna “CyberTailor”

	* gmid.1: document logging, openssl key generation example, spelling/grammar and crosslinks

2021-07-27  Omar Polo  <op@omarpolo.com>

	* server.c (check_path): allow symlinks

2021-07-23  Omar Polo  <op@omarpolo.com>

	* sandbox.c: seccomp allow fstat64 (used by glibc an aarch64).  Reported by pine, thanks!

2021-07-19  Omar Polo  <op@omarpolo.com>

	* gmid.c (setup_configless): unbreak configless mode

2021-07-13  Anna “CyberTailor”

	* parse.y (yyerror): error and warning messages are prefixed with "error:" and "warning:"
	(yywarn): fix off-by-one line number in warnings

2021-07-11  Omar Polo  <op@omarpolo.com>

	* configure (VERSION): 1.7.1 tagged

2021-07-11  Anna “CyberTailor”

	* gmid.1 (common): fix misleading example in man page: macros names may not be reserved words

2021-07-10  Omar Polo  <op@omarpolo.com>

	* configure (VERSION): 1.7 tagged

2021-07-09  Omar Polo  <op@omarpolo.com>

	* parse.y (STRING): add `include' directive
	(yylex): add @-macros (real macros)

2021-07-08  Omar Polo  <op@omarpolo.com>

	* parse.y (option): rename `mime MIME EXT' to `map MIME to-ext EXT', but retain the old `mime' for compatibility.

2021-07-06  Omar Polo  <op@omarpolo.com>

	* regress/gg.c (main): add -T timeout

	* configure (guessing_cflags): try to preserve CFLAGS/LDFLAGS

2021-07-02  Omar Polo  <op@omarpolo.com>

	* sandbox.c (filter): seccomp filter reworked: now it should work on x86 and possibly other arches too!

2021-06-29  Omar Polo  <op@omarpolo.com>

	* parse.y (conf): don't require the strict order macro > options > servers
	c-like strings: when two or more strings are next to each others, concat them

	* gmid.c (main): add -D to define macros from the cmd line

	* parse.y (yylex): allow to define macros in the config file

	* gmid.c (main): use getopt_long, add --help as synonym of -h and -V/--version

2021-06-17  Omar Polo  <op@omarpolo.com>

	* gmid.1: document `log' option

2021-06-16  Omar Polo  <op@omarpolo.com>

	* parse.y (yylex): 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-11  Omar Polo  <op@omarpolo.com>

	* parse.y (servopt): add `param' keyword

	* fcgi.c (send_fcgi_req): send GATEWAY_INTERFACE, AUTH_TYPE,
	REMOTE_USER, TLS_CLIENT_ISSUER, TLS_CLIENT_HASH, TLS_VERSION,
	TLS_CIPHER, TLS_CIPHER_STRENGTH and TLS_CLIENT_NOT_BEFORE/AFTER.
	(send_fcgi_req): support a custom list of params

2021-05-24  Omar Polo  <op@omarpolo.com>

	* gg.c: move `gg' to regress, as it's only used for the tests

2021-05-12  Omar Polo  <op@omarpolo.com>

	* utils.c (gen_certificate): don't add gmid as organisation when generating the certificate, and now it set the version 3, so it's compatible with java/android

2021-05-09  Omar Polo  <op@omarpolo.com>

	* server.c (apply_fastcgi): added fastcgi support!

2021-05-03  Omar Polo  <op@omarpolo.com>

	* parse.y: errors on duplicate values instead of silently using only the last value.

2021-04-30  Omar Polo  <op@omarpolo.com>

	* server.c (fmt_sbuf): ensure %p (path) is always absolute

	* gmid.c (load_vhosts): allow ``root'' rule to be specified per-location block

2021-04-29  Omar Polo  <op@omarpolo.com>

	* parse.y (servopt): added ``alias'' option to define hostname aliases for a server

2021-04-28  Omar Polo  <op@omarpolo.com>

	* gmid.c (main): pidfile support with `-P pidfile'

2021-04-27  Omar Polo  <op@omarpolo.com>

	* parse.y (servopt): added ``env'' option to define environment vars for CGI scripts

	* log.c (fatal): lower the log priority for fatal errors from CRIT to ERR

2021-04-25  Omar Polo  <op@omarpolo.com>

	* server.c (open_dir): sort the auto index alphabetically

2021-04-21  Omar Polo  <op@omarpolo.com>

	* mime.c (load_default_mime): use `text/x-patch' for .patch and .diff files

2021-04-14  Omar Polo  <op@omarpolo.com>

	* log.c (handle_imsg_log): print the datetime when logging to stderr

2021-04-13  Omar Polo  <op@omarpolo.com>

	* ex.c (launch_cgi): define TLS_VERSION, TLS_CIPHER and TLS_CIPHER_STRENGTH for CGI scripts

2021-04-12  Omar Polo  <op@omarpolo.com>

	* 1.6.1 tagged

	* iri.c (path_clean): fix possible infinite loop in the IRI parsing code.

2021-03-31  Omar Polo  <op@omarpolo.com>

	* gmid.h (struct vhost): remove limits on the number of vhosts and location blocks

	* gmid.c (mkdirs): fix recursive mkdirs for configless mode

2021-03-29  Omar Polo  <op@omarpolo.com>

	* Makefile (static): fixed `static' target

2021-03-29  kornellapacz @ github

	* Dockerfile: add missing libevent-dev dependency, thanks!

2021-03-27  Omar Polo  <op@omarpolo.com>

	* gmid.h (struct client): correctly handle CGI scripts that replies with the maximum header length allowed

2021-03-20  Omar Polo  <op@omarpolo.com>

	* 1.6 tagged

	* sandbox.c (sandbox_logger_process): add capsicum to the logger process

2021-03-19  Omar Polo  <op@omarpolo.com>

	* gmid.c (main): use imsg for all IPC; only the main process
	listens for SIGHUP: this means that finally the config reload will
	work with OpenBSD' rc (and probably other service manager too)

2021-02-22  Omar Polo  <op@omarpolo.com>

	* log.c (log_request): add `log on/off' to enable/disable logs per-server or per-location

2021-02-09  Omar Polo  <op@omarpolo.com>

	* parse.y (locopt): add `require client ca' rule to require client certs signed by a specified CA

2021-02-07  Omar Polo  <op@omarpolo.com>

	* ex.c (do_exec): [cgi] split the query in words if needed and add them to the argv
	(launch_cgi): define TLS_CLIENT_NOT_BEFORE/NOT_AFTER in CGI scripts

	* parse.y (option): added prefork option

2021-02-06  Omar Polo  <op@omarpolo.com>

	* parse.y (locopt): added ``block return'' and ``strip'' options
	(servopt): add the ``entrypoint'' option

2021-02-05  Omar Polo  <op@omarpolo.com>

	* iri.c (parse_query): don't %-decode the query part.  This affects the value of QUERY_STRING for CGI scripts too, since that must be %-encoded and we're currently shipping it decoded.

2021-02-04  Omar Polo  <op@omarpolo.com>

	* gmid.c (main): reload configuration on SIGHUP, without disconnecting the clients

2021-02-02  Omar Polo  <op@omarpolo.com>

	* server.c (handle_dirlist_head): print the header in the directory listing
	(open_file): cgi follows globbing rules, just like location and hostname matching

2021-02-01  Omar Polo  <op@omarpolo.com>

	* parse.y (servopt): require absolute paths in config file

2021-01-31  Omar Polo  <op@omarpolo.com>

	* gmid.c (main): cgi scripts now have only std{in,out,err} open

2021-01-30  Omar Polo  <op@omarpolo.com>

	* 1.5 tagged
	* server.c: change precedence of location rules

2021-01-29  Omar Polo  <op@omarpolo.com>

	* iri.c (parse_authority): accept a wider range of unicode
	codepoints while parsing the host name.

2021-01-26  Omar Polo  <op@omarpolo.com>

	* puny.c (puny_decode): initial punycode support!

2021-01-25  Omar Polo  <op@omarpolo.com>

	* gmid.1: manpage improvements (example and usage)

	* gmid.c (main): Dropping -C, -K, -f, changing the meaning of -d:
	now it's the certificate directory.  Serve the directory given as
	positional argument (or the current one) when running in
	config-less mode.
	(gen_certificate): automatically generate a certificate

	* parse.y (option): added chroot and user options

2021-01-24  Omar Polo  <op@omarpolo.com>

	* server.c (open_dir): add directory listing (disabled by default)

	* parse.y (vhost): added support for location blocks

	* server.c (send_dir): make the directory index customizable

2021-01-23  Omar Polo  <op@omarpolo.com>

	* gg.c (main): added gg, a barebone gemini client.  used by the
	regress suite

2021-01-21  Omar Polo  <op@omarpolo.com>

	* configure: added a configure script

	* server.c (handle_handshake): glob for vhost domain

	* gmid.c (log_request): logs the full IRI and the response code (even for CGI)

2021-01-19  Omar Polo  <op@omarpolo.com>

	* parse.y (servopt): add "lang" server option
	(servopt): moving "default type" from global options to server options

	* Dockerfile: add a dockerfile

2021-01-18  Omar Polo  <op@omarpolo.com>

	* parse.y (option): add mime and "default type" options for media types.

2021-01-17  Omar Polo  <op@omarpolo.com>

	* sandbox.c (sandbox): added initial seccomp(2) support

2021-01-15  Omar Polo  <op@omarpolo.com>

	* cgi.c (start_cgi): set SERVER_NAME to the vhost when executing CGI scripts

	* parse.y (option): add ability to specify the tls versions with "protocols"

	* gmid.c (handle_open_conn): ensure the port number of the request matches

	* sandbox.c (sandbox): sandbox on OpenBSD (pledge/unveil, as before) and on FreeBSD (capsicum) too

	* sample.conf: added sample configuration

	* 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-13  Omar Polo  <op@omarpolo.com>

	* iri.c (parse_scheme): normalize scheme while parsing, so we're
	RFC3986 compliant.

2021-01-11  Omar Polo  <op@omarpolo.com>

	* 1.4 and 1.4.1 tagged

	* gmid.c (main): ipv6 disabled by default and -6 flag to enable it
	(handle): reject non-gemini protocols with 53

2021-01-10  Omar Polo  <op@omarpolo.com>

	* gmid.c (logs): log also the port of the client
	(loop): accept both ipv4 and ipv6

2020-12-26  Omar Polo  <op@omarpolo.com>

	* uri.c (parse_uri): IRI support

2020-12-21  Omar Polo  <op@omarpolo.com>

	* gmid.c (main): -d supports relative paths

2020-12-02  Omar Polo  <op@omarpolo.com>

	* gmid.c: logging reworked and daemonize.  The -l option was
	removed: now it logs on syslog if -f (foreground) is not passed.

2020-11-18  Omar Polo  <op@omarpolo.com>

	* 1.3.2 tagged

	* gmid.c (url_after_proto): fix bug introduced in last version
	regarding full URLs with explicit gemini protocol.

	* 1.3.1 tagged

	* gmid.c (url_after_proto): correct url parsing: accept URLs
	without explicit protocol
	(url_start_of_request): correct handling of relative URLs

2020-11-17  Omar Polo  <op@omarpolo.com>

	* gmid.c (main): add flag -p to change the port

2020-11-10  Omar Polo  <op@omarpolo.com>

	* ChangeLog: 1.3 tagged, fixed ChangeLog format

	* gmid.c (open_file): added support for path parameters for CGI
	scripts

2020-11-06  Omar Polo  <op@omarpolo.com>

	* gmid.1: great improvements to the documentation

	* gmid.c (url_after_proto): ensure that the requested protocol is
	“gemini” and not something else that’s long 6 bytes.

	* gmid.c (loop): added support for cgi scripts (can handle multiple
	concurrently)

2020-11-06  Omar Polo  <op@venera>

	* gmid.1: added option to log to a file

2020-11-05  Omar Polo  <op@omarpolo.com>

	* gmid.c (filetypes): add MIME type for xml files

2020-11-03  Omar Polo  <op@omarpolo.com>

	* 1.2 tagged

	* gmid.c (main): ignore SIGPIPE

2020-10-14  Omar Polo  <op@omarpolo.com>

	* 1.1 tagged

	* switching to mmap() based file handling

2020-10-07  Omar Polo  <op@omarpolo.com>

	* 1.0 tagged