[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[or-cvs] [tor/master 1/2] Add a portable tor_timercmp
Author: Nick Mathewson <nickm@xxxxxxxxxxxxxx>
Date: Fri, 15 Oct 2010 12:32:19 -0400
Subject: Add a portable tor_timercmp
Commit: 94a99ad205665bc387831de37566b9cb16d40397
We can't use the platform timercmp, because
1) some platforms don't have them
2) some that do have them only support certain relational operators
---
src/common/compat.h | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/src/common/compat.h b/src/common/compat.h
index 5b6cfc4..2471e6b 100644
--- a/src/common/compat.h
+++ b/src/common/compat.h
@@ -332,6 +332,13 @@ struct tm *tor_localtime_r(const time_t *timep, struct tm *result);
struct tm *tor_gmtime_r(const time_t *timep, struct tm *result);
#endif
+/** Return true iff the tvp is related to uvp according to the relational
+ * operator cmp. Recognized values for cmp are ==, <=, <, >=, and >. */
+#define tor_timercmp(tvp, uvp, cmp) \
+ (((tvp)->tv_sec == (uvp)->tv_sec) ? \
+ ((tvp)->tv_usec cmp (uvp)->tv_usec) : \
+ ((tvp)->tv_sec cmp (uvp)->tv_sec))
+
/* ===== File compatibility */
int replace_file(const char *from, const char *to);
int touch_file(const char *fname);
--
1.7.1