Commits
- Commit:
86693a33abd5e8c31530adb3045c9f4664d4d6c9
- From:
- Omar Polo <op@omarpolo.com>
- Date:
add a privsep crypto engine
Incorporate the OpenSMTPD' privsep crypto engine. The idea behind
it is to never load the certificate' private keys in a networked
process, instead they are loaded in a separate process (the `crypto'
one) which signs payloads on the behalf of the server processes.
This way, we greatly reduce the risk of leaking the certificate'
private key should the server process be compromised.
This currently compiles only on LibreSSL (portable fix is in the
way).
- Commit:
7fff8aa6cb567a62113d9877af5bcb5bb4494111
- From:
- Omar Polo <op@omarpolo.com>
- Date:
parse the config file only once
Don't have all the processes read gmid.conf. The parent needs to do
that, and the will send the config to the children (already
happening.) The other processes were reading the config anyway to
figure out the user and the chroot (if enabled); make the parent pass
additional flag to propagate that info.
We dissociate a bit from the "usual" proc.c but it's a change worth
having.
- Commit:
5af19830c3bbec71b3db5c2c19335e5e0c7ff76f
- From:
- Omar Polo <op@omarpolo.com>
- Date:
move print_conf and make it take the config as argument
- Commit:
792f302acee3122ed0f9469d8676dbb271f60849
- From:
- Omar Polo <op@omarpolo.com>
- Date:
use fatal/fatalx instead of err/errx in daemon code
- Commit:
68368f4c29e208c67724b04fd0142e233a247a2a
- From:
- Omar Polo <op@omarpolo.com>
- Date:
parse_conf: don't die on error, return -1
this avoids having the daemon dieing on SIGHUP with a bad config
file.
- Commit:
af1dab18702cf135aa80bf15065f73050c915347
- From:
- Omar Polo <op@omarpolo.com>
- Date:
don't have the config being a global
- Commit:
e45334e6ae0b658a2d3d4f47bc3e9ddfdb83a44f
- From:
- Omar Polo <op@omarpolo.com>
- Date:
move hosts into the config struct
- Commit:
5d22294a59e7e9cbe6457b9e6244fff2ede09956
- From:
- Omar Polo <op@omarpolo.com>
- Date:
move fastcgi from global var to the config struct
while here also make them a list rather than a fixed-size array.
- Commit:
ca84625a7f59c0c6816cc101c975c134660946f8
- From:
- Omar Polo <op@omarpolo.com>
- Date:
remove foreground / verbose from config
set them as global vars; rename foreground -> debug
- Commit:
85a575a444f08cf40de0eb553500b79b7a644a0f
- From:
- Omar Polo <op@omarpolo.com>
- Date:
remove forgotten include of logger.h
- Commit:
47b0ff105a152b5f44bddaacc41318872370a222
- From:
- Omar Polo <op@omarpolo.com>
- Date:
move log_request to gmid.c
so that ge can provide its own log_request without requiring a
separate logger process.
- Commit:
4f4937f06a536661ffafa589d1cfb5d91ca27bf3
- From:
- Omar Polo <op@omarpolo.com>
- Date:
move make_socket to config.c and make it private
- Commit:
c26f2460e42aa0822c283c805958989f339e7d8b
- From:
- Omar Polo <op@omarpolo.com>
- Date:
rework the daemon to do fork+exec
It uses the 'common' proc.c from various OpenBSD-daemons.
gmid grew organically bit by bit and it was also the first place where I
tried to implement privsep. It wasn't done very well, in fact the
parent process (that retains root privileges) just fork()s a generation
of servers, all sharing *exactly* the same address space. No good!
Now, we fork() and re-exec() ourselves, so that each process has a fresh
address space.
Some features (require client ca for example) are temporarly disabled,
will be fixed in subsequent commits. The "ge" program is also
temporarly disabled as it needs tweaks to do privsep too.
- Commit:
f1f13cb7dc588c90f14efcb513ff177d2798194b
- From:
- Omar Polo <op@omarpolo.com>
- Date:
absolutify the path to the pid file
- Commit:
eae52ad493f582222b4f2b748c0043c42bb851cb
- From:
- Omar Polo <op@omarpolo.com>
- Date:
switch to the more usual log.c