tor/src/lib/process
Alexander Færøy 35509978dd Add new Process subsystem.
This patch adds a new Process subsystem for running external programs in
the background of Tor. The design is focused around a new type named
`process_t` which have an API that allows the developer to easily write
code that interacts with the given child process. These interactions
includes:

- Easy API for writing output to the child process's standard input
  handle.
- Receive callbacks whenever the child has output on either its standard
  output or standard error handles.
- Receive callback when the child process terminates.

We also support two different "protocols" for handling output from the
child process. The default protocol is the "line" protocol where the
process output callbacks will be invoked only when there is complete
lines (either "\r\n" or "\n" terminated). We also support the "raw"
protocol where the read callbacks will get whatever the operating system
delivered to us in a single read operation.

This patch does not include any operating system backends, but the Unix
and Windows backends will be included in separate commits.

See: https://bugs.torproject.org/28179
2018-12-17 16:39:28 -05:00
..
.may_include Add new Process subsystem. 2018-12-17 16:39:28 -05:00
daemon.c Add a missing function for windows 2018-09-14 15:02:11 -04:00
daemon.h Run crypto_prefork() before start_daemon(). 2018-09-13 08:58:28 -04:00
env.c Rename torlog.[ch] to log.[ch] 2018-07-10 15:20:30 -04:00
env.h File-level summary documentation for src/lib/*/*.[ch] 2018-07-10 12:22:01 -04:00
include.am Add new Process subsystem. 2018-12-17 16:39:28 -05:00
pidfile.c Rename torlog.[ch] to log.[ch] 2018-07-10 15:20:30 -04:00
pidfile.h File-level summary documentation for src/lib/*/*.[ch] 2018-07-10 12:22:01 -04:00
process.c Add new Process subsystem. 2018-12-17 16:39:28 -05:00
process.h Add new Process subsystem. 2018-12-17 16:39:28 -05:00
restrict.c Rename torlog.[ch] to log.[ch] 2018-07-10 15:20:30 -04:00
restrict.h File-level summary documentation for src/lib/*/*.[ch] 2018-07-10 12:22:01 -04:00
setuid.c Rename torlog.[ch] to log.[ch] 2018-07-10 15:20:30 -04:00
setuid.h File-level summary documentation for src/lib/*/*.[ch] 2018-07-10 12:22:01 -04:00
subprocess.c Rename torlog.[ch] to log.[ch] 2018-07-10 15:20:30 -04:00
subprocess.h File-level summary documentation for src/lib/*/*.[ch] 2018-07-10 12:22:01 -04:00
waitpid.c Rename torlog.[ch] to log.[ch] 2018-07-10 15:20:30 -04:00
waitpid.h Extract process-management functionality into a new lib/process 2018-06-28 11:18:13 -04:00
winprocess_sys.c Rename subsystem callback functions to make them consistent 2018-11-09 11:12:12 -05:00
winprocess_sys.h Make the windows process parameter initialization a subsystem 2018-11-05 09:22:02 -05:00