m4_dnl (part of complex test harness, not of the library)
m4_dnl - routines used for both record and playback
-m4_dnl This file is part of adns, which is
-m4_dnl Copyright (C) 1997-2000,2003,2006,2014-2016,2020 Ian Jackson
-m4_dnl Copyright (C) 2014 Mark Wooding
-m4_dnl Copyright (C) 1999-2000,2003,2006 Tony Finch
-m4_dnl Copyright (C) 1991 Massachusetts Institute of Technology
-m4_dnl (See the file INSTALL for full details.)
+m4_dnl This file is part of adns, which is Copyright Ian Jackson
+m4_dnl and contributors (see the file INSTALL for full details).
m4_dnl
m4_dnl This program is free software; you can redistribute it and/or modify
m4_dnl it under the terms of the GNU General Public License as published by
#include <unistd.h>
#include <fcntl.h>
+#include <time.h>
#include "harness.h"
#include "internal.h"
{ 0, 0 }
};
+const int Tnerrnos= sizeof(Terrnos)/sizeof(Terrnos[0]) - 1;
+
static vbuf vbw;
int Hgettimeofday(struct timeval *tv, struct timezone *tz) {
- Tensurerecordfile();
+ Tensuresetup();
Tmust("gettimeofday","tz",!tz);
+ T_gettimeofday_hook();
*tv= currenttime;
return 0;
}
+int Hclock_gettime(clockid_t clk, struct timespec *ts) {
+ Tensuresetup();
+ ts->tv_sec = currenttime.tv_sec;
+ ts->tv_nsec = currenttime.tv_usec * 1000 + 666;
+ switch (clk) {
+ case CLOCK_MONOTONIC: ts->tv_sec -= 1500000000; break;
+ case CLOCK_REALTIME: break;
+ default: Tmust("clock_gettime","clk",0);
+ }
+ return 0;
+}
int Hwritev(int fd, const struct iovec *vector, size_t count) {
size_t i;
m4_include(`hsyscalls.i4')
+hm_stdsyscall_close
+
void Tvbaddr(const struct sockaddr *addr, int len) {
char buf[ADNS_ADDR2TEXT_BUFLEN];
int err, port;
}
void Hexit(int rv) {
+ Tensuresetup();
vb.used= 0;
Tvbf("exit %d", rv);
Q_vb();