aboutsummaryrefslogtreecommitdiff
path: root/src/common/util.h
Commit message (Expand)AuthorAge
* Make process_handle_t private and fix some unit tests•••Let's *not* expose more cross-platform-compatibility structures, or expect code to use them right. Also, don't fclose() stdout_handle and stdin_handle until we do tor_process_handle_destroy, or we risk a double-fclose. Nick Mathewson2011-11-25
* Merge remote-tracking branch 'asn/bug3472_act2'Nick Mathewson2011-11-25
|\
| * Rename tor_process_destroy() to tor_process_handle_destroy().George Kadianakis2011-10-24
| * Improve general code quality.•••- Add a tor_process_get_pid() function that returns the PID of a process_handle_t. - Conform to make check-spaces. - Add some more documentation. - Improve some log messages. George Kadianakis2011-10-24
| * Prepare util.[ch] to use the new process_handle_t API.•••Also, create tor_process_destroy() which destroys a process_handle_t. George Kadianakis2011-10-24
| * Port managed proxy launching code to the new subprocess API.George Kadianakis2011-10-17
* | Purge ATTR_PURE from the code•••We're using it incorrectly in many cases, and it doesn't help as far as we know. Sebastian Hahn2011-11-25
|/
* Merge remote-tracking branch 'asn2/bug3656'•••Conflicts: src/common/util.c src/common/util.h src/or/config.h src/or/main.c src/test/test_util.c Nick Mathewson2011-10-07
|\
| * Enforce transport names being C identifiers.•••Introduce string_is_C_identifier() and use it to enforce transport names according to the 180 spec. George Kadianakis2011-09-11
| * Introduce tor_terminate_process() function.George Kadianakis2011-09-11
| * Improve the code a tad.•••* Use strcmpstart() instead of strcmp(x,y,strlen(y)). * Warn the user if the managed proxy failed to launch. * Improve function documentation. * Use smartlist_len() instead of n_unconfigured_proxies. * Split managed_proxy_destroy() to managed_proxy_destroy() and managed_proxy_destroy_with_transports(). * Constification. George Kadianakis2011-08-15
| * Replaced ST_* enum prefix for stream status with IO_STREAM_*.George Kadianakis2011-07-18
| * Make some utility functions.•••* Create a function that will get input from a stream, so that we can communicate with the managed proxy. * Hackish change to tor_spawn_background() so that we can specify an environ for our spawn. George Kadianakis2011-07-13
* | Fix double-closing a stdio stream•••After a stream reached eof, we fclose it, but then test_util_spawn_background_partial_read() reads from it again, which causes an error and thus another fclose(). Some platforms are fine with this, others (e.g. debian-sid-i386) trigger a double-free() error. The actual code used by Tor (log_from_pipe() and tor_check_port_forwarding()) handle this case correctly. Steven Murdoch2011-09-01
* | Make a version of tor_read_all_handle() for non-Windows platforms•••Mainly used for testing reading from subprocesses. To be more generic we now pass in a pointer to a process_handle_t rather than a Windows- specific HANDLE. Steven Murdoch2011-09-01
* | Rename tor_join_cmdline to tor_join_win_cmdline; tweak doxygenNick Mathewson2011-08-30
* | Factor out and re-write code for splitting lines from a handle•••Now handles non-printable characters and will not output a spurious new-line if given a partial line. Steven Murdoch2011-08-30
* | Refactor out command line formatting•••Now correctly handles whitespace, quotes and backslashes. Passes all unit tests. Steven Murdoch2011-08-29
* | Replace two magic tristates with #define'd names•••- process_handle_t.status - return value of tor_get_exit_code() Steven Murdoch2011-08-29
* | Make signature of tor_spawn_background more conventional•••Conventionally in Tor, structs are returned as pointers, so change tor_spawn_background() to return the process handle in a pointer rather than as return value. Steven Murdoch2011-08-28
* | Appease "make check-spaces"Steven Murdoch2011-08-24
* | Improve comments and fix one bugSteven Murdoch2011-08-24
* | Fix compilation errors under *nixSteven Murdoch2011-08-23
* | Tidy up subprocess code•••- Better error handling - Write description of functions - Don't assume non-negative process return values Steven Murdoch2011-08-22
* | Merge remote branch 'origin/master' into bug2046Steven Murdoch2011-08-18
|\ \
| * | Add smartlist_[v]asprintf_add•••I should have added this before implementing #2411. Robert Ransom2011-08-10
| * | Turn streq_opt into a generic strcmp_opt.Nick Mathewson2011-07-19
| * | Implement stream isolation•••This is the meat of proposal 171: we change circuit_is_acceptable() to require that the connection is compatible with every connection that has been linked to the circuit; we update circuit_is_better to prefer attaching streams to circuits in the way that decreases the circuits' usefulness the least; and we update link_apconn_to_circ() to do the appropriate bookkeeping. Nick Mathewson2011-07-19
* | | Complete logging of output from port forwarding helperSteven Murdoch2011-08-18
* | | Test case for reading the partial output of a background processSteven Murdoch2011-07-25
* | | Add Windows version of tor_spawn_background and ancillary functionsSteven Murdoch2011-07-21
* | | Generalize process spawning so its test compiles (but fails) in Windows•••- pid, stdout/stderr_pipe now encapsulated in process_handle - read_all replaced by tor_read_all_from_process_stdin/stderr - waitpid replaced by tor_get_exit_code Untested on *nix Steven Murdoch2011-07-21
|/ /
* | Merge remote-tracking branch 'origin/maint-0.2.2'Nick Mathewson2011-06-14
|\ \ | |/ |/|
| * Make ControlSocketsGroupWritable work with User.•••Original message from bug3393: check_private_dir() to ensure that ControlSocketsGroupWritable is safe to use. Unfortunately, check_private_dir() only checks against the currently running user… which can be root until privileges are dropped to the user and group configured by the User config option. The attached patch fixes the issue by adding a new effective_user argument to check_private_dir() and updating the callers. It might not be the best way to fix the issue, but it did in my tests. (Code by lunar; changelog by nickm) Jérémy Bobbio2011-06-14
* | Merge remote-tracking branch 'origin/maint-0.2.2'•••The conflicts were mainly caused by the routerinfo->node transition. Conflicts: src/or/circuitbuild.c src/or/command.c src/or/connection_edge.c src/or/directory.c src/or/dirserv.c src/or/relay.c src/or/rendservice.c src/or/routerlist.c Nick Mathewson2011-05-30
|\|
| * whitespace fixesNick Mathewson2011-05-30
* | Merge remote-tracking branch 'origin/maint-0.2.2'•••Conflicts: src/common/compat.c src/or/main.c Nick Mathewson2011-05-30
|\|
| * Use a 64-bit type to hold sockets on win64.•••On win64, sockets are of type UINT_PTR; on win32 they're u_int; elsewhere they're int. The correct windows way to check a socket for being set is to compare it with INVALID_SOCKET; elsewhere you see if it is negative. On Libevent 2, all callbacks take sockets as evutil_socket_t; we've been passing them int. This patch should fix compilation and correctness when built for 64-bit windows. Fixes bug 3270. Nick Mathewson2011-05-23
* | Merge remote-tracking branch 'origin/maint-0.2.2'Nick Mathewson2011-05-15
|\|
| * Add a new flag to check_private_dir to make it _not_ change permissions•••We'll need this for checking permissions on the directories that hold control sockets: if somebody says "ControlSocket ~/foo", it would be pretty rude to do a chmod 700 on their homedir. Nick Mathewson2011-05-15
| * Make check_private_dir accept g+rx dirs if told to do so.Nick Mathewson2011-05-15
* | Merge remote-tracking branch 'public/bug3122_memcmp_022' into bug3122_memcmp_023•••Conflicts in various places, mainly node-related. Resolved them in favor of HEAD, with copying of tor_mem* operations from bug3122_memcmp_022. src/common/Makefile.am src/or/circuitlist.c src/or/connection_edge.c src/or/directory.c src/or/microdesc.c src/or/networkstatus.c src/or/router.c src/or/routerlist.c src/test/test_util.c Nick Mathewson2011-05-11
|\|
| * Merge remote-tracking branch 'public/3122_memcmp_squashed' into bug3122_memcm...•••Conflicts throughout. All resolved in favor of taking HEAD and adding tor_mem* or fast_mem* ops as appropriate. src/common/Makefile.am src/or/circuitbuild.c src/or/directory.c src/or/dirserv.c src/or/dirvote.c src/or/networkstatus.c src/or/rendclient.c src/or/rendservice.c src/or/router.c src/or/routerlist.c src/or/routerparse.c src/or/test.c Nick Mathewson2011-05-11
| |\
| | * Hand-conversion and audit phase of memcmp transition•••Here I looked at the results of the automated conversion and cleaned them up as follows: If there was a tor_memcmp or tor_memeq that was in fact "safe"[*] I changed it to a fast_memcmp or fast_memeq. Otherwise if there was a tor_memcmp that could turn into a tor_memneq or tor_memeq, I converted it. This wants close attention. [*] I'm erring on the side of caution here, and leaving some things as tor_memcmp that could in my opinion use the data-dependent fast_memcmp variant. Nick Mathewson2011-05-11
| | * Add a "di_ops.h" include to util.hNick Mathewson2011-05-11
* | | Merge remote-tracking branch 'origin/maint-0.2.2'•••Conflicts: src/common/address.c src/common/compat_libevent.c src/common/memarea.c src/common/util.h src/or/buffers.c src/or/circuitbuild.c src/or/circuituse.c src/or/connection.c src/or/directory.c src/or/networkstatus.c src/or/or.h src/or/routerlist.c Nick Mathewson2011-04-07
|\| |
| * | Remove the "fuzzy time" code•••It was the start of a neat idea, but it only got used in 3 places, none of which really needed it. Nick Mathewson2011-03-25
* | | Merge remote branch 'origin/maint-0.2.2'Nick Mathewson2011-01-03
|\| |
| * | Merge remote branch 'origin/maint-0.2.1' into maint-0.2.2•••Conflicts: src/common/test.h src/or/test.c Nick Mathewson2011-01-03
| |\|
| | * Bump copyright statements to 2011Nick Mathewson2011-01-03