summaryrefslogtreecommitdiff
path: root/libntp/buftvtots.c
diff options
context:
space:
mode:
Diffstat (limited to 'libntp/buftvtots.c')
-rw-r--r--libntp/buftvtots.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/libntp/buftvtots.c b/libntp/buftvtots.c
new file mode 100644
index 0000000..a77e9f7
--- /dev/null
+++ b/libntp/buftvtots.c
@@ -0,0 +1,38 @@
+/*
+ * buftvtots - pull a Unix-format (struct timeval) time stamp out of
+ * an octet stream and convert it to a l_fp time stamp.
+ * This is useful when using the clock line discipline.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+#include "ntp_fp.h"
+#include "ntp_string.h"
+#include "timevalops.h"
+
+#ifndef SYS_WINNT
+int
+buftvtots(
+ const char *bufp,
+ l_fp *ts
+ )
+{
+ struct timeval tv;
+
+ /*
+ * copy to adhere to alignment restrictions
+ */
+ memcpy(&tv, bufp, sizeof(tv));
+
+ /*
+ * and use it
+ */
+ if (tv.tv_usec > MICROSECONDS - 1)
+ return FALSE;
+
+ *ts = tval_stamp_to_lfp(tv);
+
+ return TRUE;
+}
+#endif /* !SYS_WINNT */