Allow named pipes for our log files.

Closes ticket 12061. Based on a patch from "carlo von lynX" on tor-dev at
  https://lists.torproject.org/pipermail/tor-dev/2014-April/006705.html
This commit is contained in:
Nick Mathewson
2014-08-20 13:45:16 -04:00
parent fb762f6db0
commit a32913d5aa
2 changed files with 15 additions and 2 deletions
+4
View File
@@ -0,0 +1,4 @@
o Minor features:
- On unix, you can now use named pipes as the target of the Log
option, and other options that try to append to files. Closes
ticket 12061. Patch from "carlo von lynX".
+11 -2
View File
@@ -981,14 +981,23 @@ tor_fd_getpos(int fd)
#endif
}
/** Move <b>fd</b> to the end of the file. Return -1 on error, 0 on success. */
/** Move <b>fd</b> to the end of the file. Return -1 on error, 0 on success.
* If the file is a pipe, do nothing and succeed.
**/
int
tor_fd_seekend(int fd)
{
#ifdef _WIN32
return _lseek(fd, 0, SEEK_END) < 0 ? -1 : 0;
#else
return lseek(fd, 0, SEEK_END) < 0 ? -1 : 0;
int rc = lseek(fd, 0, SEEK_END) < 0 ? -1 : 0;
#ifdef ESPIPE
/* If we get an error and ESPIPE, then it's a pipe or a socket of a fifo:
* no need to worry. */
if (rc < 0 && errno == ESPIPE)
rc = 0;
#endif
return rc;
#endif
}