Omar Polo
27b2fa9ae5
don't mmap
...
Before we mmap(2) file for reading, and use a buffer to handle CGI
scripts. Turns out, for sequential access over the whole mmap isn't
better than our loop on read. This has also the additional advantage
that we can use handle_cgi (now handle_copy) for both files and CGI,
which is pretty cool.
This also fixes a nasty bug where we could hang a connection forever,
because we scheduled the wrong type of event (read on POLLOUT and
write on POLLIN, it's the other way around!)
2021-02-12 11:27:33 +00:00
Omar Polo
a6e689d745
fix config reload
...
the old server processes would stick around waiting on the signals
events. While there, also drop the `struct server_events' and define
events as globals.
2021-02-12 08:50:25 +00:00
Omar Polo
e1b4612359
dup line
2021-02-12 08:49:31 +00:00
Omar Polo
a72cc6be31
improve compat/getprogname on GNU libc
...
but why'd they called it program_invocation_short_name? They couldn't
find a longer name?
2021-02-11 09:13:58 +00:00
Omar Polo
4d7043e33c
add check for program_invocation_short_name
2021-02-11 09:12:40 +00:00
Omar Polo
1606927ea1
add -levent in the example
2021-02-11 09:12:10 +00:00
Omar Polo
8e56d6adc4
use fatal instead of err/fprintf+exit
...
fatal logs to the correct place, err only on stderr.
2021-02-11 09:07:28 +00:00
Omar Polo
2a911637be
fix compilation on OSes without sandbox
2021-02-11 09:04:47 +00:00
Omar Polo
0b040b9909
fix setproctitle detection on FreeBSD
2021-02-10 22:17:20 +00:00
Omar Polo
4ad0601d18
link to compat/ even in regress
...
this unlocks the full regress tests on arch, for instance, or every
OS where we don't have strl*
2021-02-10 22:06:16 +00:00
Omar Polo
6827d2781e
[seccomp] allow newfstatat and gettimeofday
...
these are required to run on arch linux (at least)
2021-02-10 19:20:59 +00:00
Omar Polo
4c857c0afc
[seccomp] epoll_wait(2) isn't available on every arch
2021-02-10 18:02:08 +00:00
Omar Polo
aa37287565
add newline after usage
2021-02-10 17:58:43 +00:00
Omar Polo
49b73ba1ab
fix "first location" bug
...
reported by devel at datenbrei dot de. The first location would
overwrite the default value for a server, triggering the "`foo' rule
specified more than once" error. This also needed a small tweak on
how we match locations to avoid breaking other tests.
2021-02-10 16:37:08 +00:00
Omar Polo
2898780aea
fix ca generation
2021-02-10 15:09:08 +00:00
Omar Polo
4283d65fc1
don't allocate BIGNUM on the stack
...
on fedora 33 the BIGNUM type is opaque. Allocate always to avoid headaches.
2021-02-10 14:25:39 +00:00
Omar Polo
f6b9a079e3
allow epoll_wait
...
fedora 33 issue an epoll_wait instead of pwait.
2021-02-10 14:21:56 +00:00
Omar Polo
2d34f732f1
typo
2021-02-10 13:13:17 +00:00
Omar Polo
002a84a123
improve errors during config parsing
2021-02-10 11:53:05 +00:00
Omar Polo
d3f073c9ed
don't delete valid.ext
2021-02-09 22:40:04 +00:00
Omar Polo
eb59f87e67
sort
2021-02-09 22:38:10 +00: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
2ff026b09b
add conf for a ca
2021-02-09 22:12:19 +00:00
Omar Polo
31b3662c54
gg: add support for client certs
2021-02-09 15:01:12 +00:00
Omar Polo
57ec3e776e
refactor apply_block_return
...
move the strip and fmt logic to their own function
2021-02-08 20:50:30 +00:00
Omar Polo
747b35d0da
align
2021-02-08 18:54:34 +00:00
Omar Polo
b9231167fb
mention libevent
2021-02-08 18:47:36 +00:00
Omar Polo
c214d1ab67
allow sigreturn and sigaction on linux
2021-02-08 18:39:23 +00:00
Omar Polo
df58efff26
fix seccomp for the new event loop
...
add/remove syscalls from the BPF filter and move sandbox() after
libevent initialisation
2021-02-08 12:46:46 +00:00
Omar Polo
d090dc8491
define config_path as global variable
2021-02-08 12:44:34 +00:00
Omar Polo
319b7fa909
define conf in the test program, not in puny.c
2021-02-08 12:43:36 +00:00
Omar Polo
1516fd4dad
fix detection on non-openbsd systems
2021-02-08 10:28:56 +00:00
Omar Polo
337c74209b
look for libevent
2021-02-08 10:12:04 +00:00
Omar Polo
0b8133c264
add check for libevent
2021-02-08 10:11:23 +00:00
Omar Polo
abc007d2b3
rewrite main loop using libevent
2021-02-08 10:01:45 +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
a13739138b
add trailing \n in yyerror
2021-02-07 18:08:50 +00:00
Omar Polo
7e9b7812b3
move logging code to log.c
2021-02-07 16:15:51 +00:00
Omar Polo
3077ce5bee
don't fprintf
2021-02-07 16:10:09 +00:00
Omar Polo
a64959c99a
use log_err instead of fprintf
2021-02-07 16:09:49 +00:00
Omar Polo
3abf91b0b4
improve logs management
2021-02-07 15:30:28 +00:00
Omar Polo
a709ddf5eb
added prefork option
2021-02-07 12:05:32 +00:00
Omar Polo
cfb8a77fd4
handle also EAGAIN together with EWOULDBLOCK
2021-02-07 12:04:11 +00:00
Omar Polo
2564eddee4
add set -e to env script
...
It avoids some long sequences of "echo: IO error" when the client
close the connection before EOF.
2021-02-07 11:32:53 +00:00
Omar Polo
809c4bd0f8
keep original CFLAGS
2021-02-07 11:28:42 +00:00
Omar Polo
eef0492e35
add missing declaration of TENTRYPOINT
2021-02-07 11:27:15 +00:00
Omar Polo
60dbafbf2f
define MANDIR
2021-02-07 09:24:00 +00:00
Omar Polo
1487e11eda
drop sample.conf and add something to the README.md
2021-02-06 19:05:40 +00:00
Omar Polo
2b92a4477a
reorder stuff
2021-02-06 18:50:42 +00:00