summaryrefslogtreecommitdiff
path: root/usr.sbin/relayctl/relayctl.c
AgeCommit message (Collapse)Author
2014-07-09Replace the protocol directives for HTTP with a new generic filteringReyk Floeter
language. The grammar is inspired by pf and allows to write versatile last-matching filter rules in protocol sections starting with the "pass", "block" or "match" keywords. This work was started almost two years ago and replaces large parts of relayd(8)'s HTTP and filtering code. The initial version reimplements and extends HTTP filtering, but will be improved to support generic TCP and other protocols later. With some testing, feedback, and help from benno@ and andre@. OK benno@
2014-06-25I did enough significant changes and/or additions since 2007 afterReyk Floeter
pyr@'s initial version to rightfully add my copyright to these files: sync with reality.
2013-11-14cope with the EAGAIN API change for msgbuf_write()Theo de Raadt
ok benno
2013-04-27time_t 64bit fixes for relayd and relayctl:Sebastian Benoit
- fix statistics - set INT_MAX limit on session timeouts - make sure we dont use to large session timeouts in pf redirects and openssl tested with old and new time_t ok florian@
2013-04-03Handle big time_tPhilip Guenther
ok deraadt@
2013-03-10This diff changes relayd to use the monotonic clock instead ofReyk Floeter
gettimeofday(). It was also bugging me for some time to have all these checks of gettimeofday()'s return value: it should not fail. So this diff introduces a void getmonotime(struct timeval *tv) that calls clock_gettime(CLOCK_MONOTONIC, &ts) and converts the output to a struct timeval that can be used with the existing code and the timeval-specific timer functions (timerclear, timersub, ...). It does not return a status but calls fatal() on error-that-should-not-happen. ok sthen@ chris@
2011-05-20Concurrent calls of "relayctl show sessions" could crash relayd. FixReyk Floeter
the show sessions handler by implementing it in an asynchronous way. Closes PR 6509 ok pyr@
2011-05-19Fix reload support in relayd(8) by reimplementing large parts of theReyk Floeter
daemon infrastructure. The previous design made it fairly hard to reload the complex data structures, especially relays and protocols. One of the reasons was that the privsep'd relayd processes had two ways of getting their configuration: 1) from memory after forking from the parent process and 2) and (partially) via imsgs after reload. The new implementation first forks the privsep'd children before the parents loads the configuration and sends it via imsgs to them; so it is only like 2) before. It is based on an approach that I first implemented for iked(8) and I also fixed many bugs in the code. Thanks to many testers including dlg@ sthen@ phessler@ ok pyr@ dlg@ sthen@
2011-05-09Reorganize the relayd code to use the proc.c privsep API/commodityReyk Floeter
functions that are based on work for iked and smtpd. This simplifies the setup of privsep processes and moves some redundant and repeated code to a single place - which is always good from a quality and security point of view. The relayd version of proc.c is different to the current version in iked because it uses 1:N communications between processes, eg. a single parent process is talking to many forked relay children while iked only needs 1:1 communications. ok sthen@ pyr@
2010-12-31Add missing #includes instead of assuming that some system header pulls inPhilip Guenthe
the needed bits ok deraadt@, millert@
2010-01-11add "log brief" and "log verbose" to change logging verbosityJonathan Gray
like several other things in the tree. ok reyk@ looks fine claudio@
2009-09-01If relayd returned an error don't exit with success. This may help scriptsClaudio Jeker
to recognize when something did not work in a much easier way then parsing the relayctl output. OK reyk@
2009-08-17also report routers and their host states in relayctlReyk Floeter
ok pyr@, jmc@ for man bits
2009-08-07rename 'struct session' to 'struct rsession' because it conflicts withReyk Floeter
another 'struct session' in sys/sysctl.h.
2009-06-054 handed diff with eric:Pierre-Yves Ritschard
Stop pushing event handling in the imsg framework. Instead, provide a small glue layer on top of both imsg and libevent. This finally clearly separates event handling and imsg construction. Sidetrack bonus: remove the mega-ugly hack of having a dummy imsg_event_add stub in relayctl. This will make bgpd (and thus henning) happy. Next up are smtpd and ospfd. ok eric@
2008-12-31an ellipsis allows more than one argument being specified;Igor Sobrado
sync synopsis/usage.
2008-12-05change the way relayd reports check results: instead of logging anReyk Floeter
arbitrary string in debugging mode, it will store an error code (HCE_*) for each host. the error code can be translated to a string (in log.c) for debugging but it will also be passed to relayctl via the control socket. from a user point of view, this will print a human-readable error message in the "relayctl show hosts" output if a host is down because the check failed. the relayctl(8) manpage includes detailed explanations of the error messages including mitigations for the most-common problems. ok jmc@ (manpages) ok phessler@
2008-07-19print the host parent id if availableReyk Floeter
2008-01-31add prefixes to names of structure elements to make it easier to grepThordur I. Bjornsson
for code, next struct session; ok reyk@;
2008-01-31add prefixes to names of structure elements to make it easier to grepReyk Floeter
for code, next struct relay. knf long line fixes will follow later. ok thib@
2007-12-20implement statistics for redirections, like the existing statisticsReyk Floeter
for relays. they can be viewed with the new "relayctl show redirects" command. (uses the previous change to pf_table.c to get the statistics) looks good pyr@
2007-12-08Rename everything which reffered to services refer to rdr for internalsPierre-Yves Ritschard
(for instance: rename struct service to struct rdr), refer to redirects otherwise (hoststatectl output). ok reyk@
2007-12-08service -> redirectReyk Floeter
ok pyr@
2007-12-07hoststated gets renamed to relayd. easier to type, and actually saysReyk Floeter
what the daemon does - it is a relayer that pays attention to the status of pools of hosts; not a status checkers that happens to do some relaying
2007-11-24style(9) for includesReyk Floeter
2007-11-23re-implement the "mark" action and document it in the manpage:Reyk Floeter
it is possible to attach a mark to a session based on matching an entity (header, url, cookie, ...) and add conditional action for this mark. it works a bit like the tag/tagged keywords in pf, but i decided to pick a different name to avoid confusion. ok pyr@ gilles@
2007-10-19Add the ability to schedule an immediate check through hoststatectl.Pierre-Yves Ritschard
Especially useful when interval is rather long. I was supposed to commit this before 4.2.
2007-09-29KNF.Pierre-Yves Ritschard
2007-09-28Correct my mail address.Pierre-Yves Ritschard
2007-09-07add a "show sessions" command to dump the complete list of running relayReyk Floeter
sessions.
2007-09-07simple style change in the switchReyk Floeter
2007-06-12reflect msf's changes to the imsg framework in hoststated.Pierre-Yves Ritschard
2007-05-29allow the control handling code to send messages back to the parent.Pierre-Yves Ritschard
forward IMSG_CTL_RELOAD which ends up not doing anything for now.
2007-05-29move struct relay to the runtime + config scheme.Pierre-Yves Ritschard
this time around, include hoststatectl changes too.
2007-05-28Reflect recent hoststated changes into hoststatectlPierre-Yves Ritschard
This unbreaks the tree. Fixed from the depth of the OpenBSD lair.
2007-02-22spacingReyk Floeter
2007-02-22Add layer 7 functionality to hoststated used for layer 7Reyk Floeter
loadbalancing, SSL acceleration, general-purpose TCP relaying, and transparent proxying. see hoststated.conf(5) and my upcoming article on undeadly.org for details. ok to commit deraadt@ pyr@
2007-02-06inform hoststatectl monitor of ruleset changes and table syncs.Pierre-Yves Ritschard
ok reyk@
2007-02-03wait for hoststated to become available in monitor mode.Reyk Floeter
ok pyr@
2007-02-01print id name in the monitor output if availableReyk Floeter
2007-02-01modify the imsg monitor to look even nicer and to use a more flexibleReyk Floeter
API (inspired by the ipsec pfkey monitor). ok pyr@ niallo@
2007-02-01add a monitor mode to hoststatectl to continuously report changes inPierre-Yves Ritschard
hoststated. ok reyk@, "looks nice and clean" niallo@
2007-01-29Add SSL support to hoststated.Pierre-Yves Ritschard
with help and OK reyk@ with help and advice by claudio@ and Srebrenko Sehic
2007-01-09Finish renaming hostated to hoststated.Pierre-Yves Ritschard
Note to testers: the user the daemon changes its id to is now _hoststated, don't forget to update master.passwd. ok reyk@
2007-01-09adapt to renameTheo de Raadt
2006-12-16- allow to use host/service/table names instead of Ids in hostatectl.Reyk Floeter
- minor change of the "hostatectl show" command output - increase the max service and tag names (max pf tag name size is 64 now!) thanks to pyr who found a bug in my initial diff
2006-12-16spacing, plus dubious \% in format stringTheo de Raadt
2006-12-16more spacingReyk Floeter
2006-12-16Fix two comments. ok reyk@Bernd Ahlers
2006-12-16knf, spacingReyk Floeter