diff options
Diffstat (limited to 'libntp/buftvtots.c')
-rw-r--r-- | libntp/buftvtots.c | 38 |
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 */ |