summaryrefslogtreecommitdiff
path: root/usr.sbin/relayd
AgeCommit message (Collapse)Author
2019-04-24restrict filesystem access to read only on main process via unveil(2)Ricardo Mestre
ok benno@ deraadt@
2019-03-13remove unused keyword "virtual".Sebastian Benoit
ok gcc, claudio@ agrees
2019-03-04Support for rfc 6455 Websockets connection upgrade. Add a new protocolSebastian Benoit
option 'http { [no] websockets }' to allow such connections (default is no). Original diff from Daniel Lamando (dan AT danopia DOT net), option and header checks by me. suggestions and ok bluhm@ and earlier diff claudio@
2019-02-13(unsigned) means (unsigned int) which on ptrdiff_t or size_t or otherTheo de Raadt
larger types really is a range reduction... Almost any cast to (unsigned) is a bug. ok millert tb benno
2018-11-01- odd condition/test in PF lexerAlexandr Nedvedicky
(and other lexers too) This commit rectifies earlier change: in the lex... even inside quotes, a \ followed by space or tab should expand to space or tab, and a \ followed by newline should be ignored (as a line continuation). compatible with the needs of hoststated (which has the most strict quoted string requirements), and ifstated (where one commonly does line continuations in strings). OK deraadt@, OK millert@
2018-10-22Make host_*() AF-agnosticdenis
Merge host_v{4,6}() into much simpler host_ip() using just getaddrinfo(). With input & test by kn@ and benno@ OK benno@ kn@
2018-09-19Do not abort when the ca privenc runs into a timeout.Reyk Floeter
OK claudio@
2018-09-09During the fork+exec implementation, daemon(3) was moved afterAlexander Bluhm
proc_init(). As a consequence httpd(8) and relayd(8) child processes did not detach from the terminal anymore. Dup /dev/null to the stdio file descriptors in the children. OK benno@
2018-09-07replace malloc()+strlcpy() with strndup() in cmdline_symset().miko
"looks good" gilles@ halex@
2018-09-01Accidentally relayd(8) closed file descriptor 0 in the pfe childAlexander Bluhm
process. If env->sc_snmp is initialized with 0, snmp_init() closes it. Set it to -1 to prevent the close(2). OK reyk@ benno@ millert@
2018-08-06space required between macro args and punctuation;Jason McIntyre
2018-08-06replace the current log optionsSebastian Benoit
log updates|all with log state changes log host checks log connection [errors] The first two control the logging of host check results: either changes in host state only or all checks. The third option controls logging of connections in relay mode: Either log all connections, or only errors. Additionaly, errors will be logged with LOG_WARN and good connections will be logged with LOG_INFO, so they can be differentiated in syslog. ok and feedback from claudio@
2018-07-11Do for most running out of memory err() what was done for most runningKenneth R Westerback
out of memory log_warn(). i.e. ("%s", __func__) instead of manual function names and redundant verbiage about which wrapper detected the out of memory condition. ok henning@
2018-07-09No need to mention which memory allocation entry point failed (malloc,Kenneth R Westerback
calloc or strdup), we just need to log that we ran out of memory in a particular function. Recommended by florian@ and deraadt@ ok benno@ henning@ tb@
2018-06-18remove the SECTIONS header, since a one line DESCRIPTION is a bit silly;Jason McIntyre
use a more general text for the sections, and avoid the catchup issue that was trying to document how many there were; ok benno rob
2018-06-11Fix an off-by-one line count when using include statements.denis
Thanks to otto@ for the initial diff. OK benno@
2018-06-10When a TLS error occurs, print the tls_error() message as part of theSebastian Benoit
connection closed log message, not just as debug message. ok claudio@ reyk@
2018-04-26Plug leak in error case of the common 'varset' implementations.Kenneth R Westerback
ok benno@
2018-04-20adjust the example to make it work;Jason McIntyre
from matt schwartz ok claudio
2018-04-18Remove RELAY_MAX_SESSIONS from relayd, there is no reason to limit relaysClaudio Jeker
to 1024 session per process (esp. with keep-alive). Now the fd limit is the new maximum and relayd will make sure to not accept too many sessions. The tcp backlog config maximum is now 512, adjust manpage accordingly. OK benno@ deraadt@
2018-04-14In case of a tcp read timeout, the destination host state needs to beSebastian Benoit
set to HOST_DOWN. Noticed and fixed by Rivo Nurges <Rivo DOT Nurges AT smit DOT ee> ok and reminder florian@
2018-01-24Log some more errors in the ca code, since there seems to be still a bugClaudio Jeker
hidden somewhere. Also return after a poll timeout, there is no reason to wait longer than a second for the answer of the ca process. OK jsing@
2018-01-01RSA_private_{en,de}crypt() can fail and will return -1 in that case.Claudio Jeker
Check for this in the ca process and return a valid answer to the relay process. This fixes rsae_send_imsg poll timeouts blocking relay processes as seen by Mischa Peters and myself. OK benno@
2017-12-27log specific error when connect() fails.Sebastian Benoit
ok claudio@, feedback bluhm@
2017-12-18always initialize the hce_launch_checks event timer.Sebastian Benoit
Fixes a crash when poll is run without any checks. Found and fixed by Hiltjo Posthuma (hiltjo -AT- codemadness -DOT- org). ok claudio@
2017-11-29fix double dot;Jason McIntyre
2017-11-29add options to specify the control socket in relayd and relayctl.Sebastian Benoit
From Kapetanakis Giannis, thanks. ok claudio@
2017-11-28One less lie in commentsClaudio Jeker
2017-11-28Introduce relay_reset_event() which closes and resets a relay connection.Claudio Jeker
Currently this is only used by relay_close() but will be needed in near future. OK benno@
2017-11-28In TLS inspection mode we also need to keep the server tls object around.Claudio Jeker
For this we need to add an additional pointer to the ctl_relay_event. Diff from Petri Mikkila (pmikkila at gmail) OK benno@
2017-11-28relay_load_fd() is no longer clobering errno in the error case so useClaudio Jeker
fatal() instead of fatalx()
2017-11-28Add space between to and read like in other DPRINTFs.Claudio Jeker
2017-11-27Change the ecdhe curve configuration to the same way httpd is doing it.Claudio Jeker
This removes 'no ecdh' and renames 'ecdh curve auto' to ecdhe default. The code uses now tls_config_set_ecdhecurves(3) so it is possible to specify multiple curves now. If people specified curves in their config they need to adjust their config now. OK beck@
2017-11-27Make ca_launch error messages unique.Alexander Bluhm
OK claudio@
2017-11-27lseek/read is racy when there is multiple consumers. Use pread instead.Claudio Jeker
Solves the startup issues seen by bluhm@. pread idea from guenther@. While there save the errno in the error case. OK bluhm@
2017-11-27Add a DPRINTF() in relay_error() that helped me out way too many times.Claudio Jeker
2017-11-27Use file descriptor passing to load certificates into the relays. EspeciallyClaudio Jeker
the ca file (having all the trusted certs in them) can be so big that loading via imsg fails. OK beck@
2017-11-27Do not rip out the output buffer of the bufferevent. Instead just use anClaudio Jeker
initial bufferevent_write_buffer() to write out the queued up HTTP request. OK benno@
2017-11-27rfc 7230 mandates that a "204 No Content" http status must not come with aSebastian Benoit
Content-Lenght Header. Of course some servers still so it and send Content-Lenght: 0. Adjust accordingly. ok claudio@
2017-11-27relay_tls_connected() is playing with the inner bowels of bufferevents.Claudio Jeker
Be more careful and remove the events before resetting them to the new backends. This is also what some of the bufferevent functions are doing. OK benno@
2017-11-27Simplify relay_close_http(), make relay_httpdesc_free() accept and ignoreClaudio Jeker
a NULL pointer argument (like free()). Also switch a !size to size == 0. OK benno@
2017-11-16Check that http options are only configured in http protocols.Alexander Bluhm
OK benno@
2017-11-15make the maximum size of http headers configurable in the protocol.Sebastian Benoit
ok bluhm@, >8k makes sense claudio@
2017-09-23The relayd regression tests for chunked HTTP traffic were failingAlexander Bluhm
sporadically. If the \r and \n were read in separate chunks, relayd got out of sync with the protocol as they were interpreted as two lines. Use evbuffer_readln() with EVBUFFER_EOL_CRLF instead of evbuffer_readline(). OK benno@
2017-09-14Differentiate between a style string not being specified and an emptyJonathan Gray
style string by including NUL in imsg and set the pointer in the struct passed over imsg to NULL in the receiving process to be sure nothing tries to use it. Avoids a crash when specifying an empty style string reported by Karl-Andre' Skevik. ok bluhm@
2017-08-28Do not close the relay if data is still in the output buffer.Alexander Bluhm
Otherwise data not written could get lost. Also try to drain the buffers when socket splicing should be enabled. The latter was lost when the expicit bufferevent_enable() was added in relay_write(). bug report, analysis, initial fix, testing Rivo Nurges; OK beck@
2017-08-2865535 is a valid port to listen on.Florian Obser
Off-by-one pointed out by and diff from Kris Katterjohn katterjohn AT gmail, thanks! chris@ pointed out that more than httpd(8) is effected. OK gilles@
2017-08-09Use X509_pubkey_digest() like libtls to hash the keys for the TLS privsepClaudio Jeker
code. This fixes interception mode (since there we rewrite the CERT which would alter the hash of the cert but the keys still remain the same). OK bluhm@ and jsing@
2017-08-09Call tls_config_skip_private_key_check() to disable the key checking inClaudio Jeker
the inspect case (same is done in the regular server mode). OK bluhm@ and jsing@
2017-07-30Fix a double free of the TLS config in the error path.Alexander Bluhm
OK claudio@