X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/2285d016cf0103f03e05e53e22025282c104a164..9694f3718219a388edcf672fa0a663298bd2475c:/unix/uxmisc.c diff --git a/unix/uxmisc.c b/unix/uxmisc.c index 28ae83a2..74eb1568 100644 --- a/unix/uxmisc.c +++ b/unix/uxmisc.c @@ -2,7 +2,9 @@ * PuTTY miscellaneous Unix stuff */ +#include #include +#include #include #include #include @@ -10,6 +12,8 @@ #include "putty.h" +long tickcount_offset = 0; + unsigned long getticks(void) { struct timeval tv; @@ -19,7 +23,7 @@ unsigned long getticks(void) * because we need a decent number of them to fit into a 32-bit * word so it can be used for keepalives. */ - return tv.tv_sec * 1000 + tv.tv_usec / 1000; + return tv.tv_sec * 1000 + tv.tv_usec / 1000 + tickcount_offset; } Filename filename_from_str(const char *str) @@ -118,3 +122,14 @@ void pgp_fingerprints(void) "PuTTY Master Key (DSA), 1024-bit:\n" " " PGP_DSA_MASTER_KEY_FP "\n", stdout); } + +/* + * Set FD_CLOEXEC on a file descriptor + */ +int cloexec(int fd) { + int fdflags; + + fdflags = fcntl(fd, F_GETFD); + if (fdflags == -1) return -1; + return fcntl(fd, F_SETFD, fdflags | FD_CLOEXEC); +}