triggers 0.41 ------------- This is beta level software. Triggers is a generic service that allows programs to notify users about events. Programs activate triggers when something interesting happens and users tie arbitrary behavior to them (run a program, play a sound) as directed by a home directory config file; the interaction occuring through an efficient daemon. Triggers can be passed off to other hosts, facilitating distributed actions. Triggers are lightweight and asynchronous. A simple, fast library call is available to add triggers to software. Scripts can use an executable version. ?? Programs trying to initiate triggers always talk to a local daemon, ?? returning instantly to other tasks, even in failure. The trigger daemon does not write anything to disk, but will reliably transmit triggers while a machine is up; undeliverable triggers are destroyed after 48 hours. User root cannot receive triggers. See section Setup for installation instructions. Caveats ------- Triggers are never stored to disk. If your machine tanks, so do any extant messages. Faking a trigger is easy. Failure of configuration files, hostnames, bogus users, etc., results in a trigger's destruction. Usage ----- They must be strings without null bytes. Internals --------- triggerd is implemented with three threads. The first (and highest priority) manages locally generated triggers. 2 - socket server. 3 - outgoing triggers. triggerd keeps a small cache of most-used user trigger commands, to avoid re-reading triggerrc files. Protocol -------- port 861. picked at will. This section is probably interesting only to bla... version (1) + length/field pairs (user, service, action, data) (2/?) + timestamp (8) + delay (4) + hops (4) Following rules: 1. A server must discard triggers violating length restrictions. 2. A server must ... rounding on delay ... timestamping. 3. A trigger undeliverable for 24 hours must be discarded. 4. A server must initialize a trigger to one hop. 1. After 48 hours, a server may discard a trigger. [??] 2. ... Ideas ----- 1. Be alerted to mail on a faraway server when you actually receive it, instead of polling it every 5 minutes. Combine this with real-time channel mixing, and some ducking algorithms, and you can centralize audio cues. 2. Custom handle talkd. tcl/tk popup 3. bla Setup ----- q) Depending on your version of libc, you might want to grab Tom ..'s latest regular expression package, prep.ai.mit.edu/Rx-1.1..., # follow his instructions :) r) If you're using libc prior to version 6, install LinuxThreads. ftp://ftp.inria.fr/INRIA/Projects/cristal/Xavier.Leroy/linuxthreads.tar.gz Credits ------- Thanks to Anders Brownworth for testing. References ---------- 1. http://www.evantide.com/~jeremyw/software.html 2. http://www.pobox.com/~djb Finale ------ This package is released into the public domain. Do with it what you will; I'm not responsible in any way for its use. Thoughts, criticism, patches and hate mail, welcome and appreciated. April 22, 1998 Jeremy Wohl / jeremyw@evantide.com http://www.evantide.com/~jeremyw/software