chiark / gitweb /
New poll(2) stuff etc. Does not work yet, but compiles.
[adns.git] / regress / hcommon.c.m4
index 5d6f471389e3cd14b40c0e3bd3a63f5a59df4676..d1f72b793b8382fe8f8e65cb9dd715a7d059027d 100644 (file)
@@ -2,7 +2,7 @@ m4_dnl hcommon.c
 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 Copyright (C) 1997, 1998 Ian Jackson
+m4_dnl  This file is part of adns, which is Copyright (C) 1997-1999 Ian Jackson
 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
@@ -33,6 +33,7 @@ m4_include(hmacros.i4)
 
 vbuf vb;
 FILE *Toutputfile= 0;
+struct timeval currenttime;
 
 const struct Terrno Terrnos[]= {
   { "EAGAIN",                    EAGAIN                       },
@@ -50,6 +51,12 @@ const struct Terrno Terrnos[]= {
 
 static vbuf vbw;
 
+int Hgettimeofday(struct timeval *tv, struct timezone *tz) {
+  Tmust("gettimeofday","tz",!tz);
+  *tv= currenttime;
+  return 0;
+}
+
 int Hwritev(int fd, const struct iovec *vector, size_t count) {
   size_t i;
   
@@ -80,9 +87,11 @@ void Q$1(hm_args_massage($3,void)) {
  m4_define(`hm_arg_fd', `Tvbf(" $'`1=%d",$'`1);')
  m4_define(`hm_arg_fcntl_cmd_arg', `
   if ($'`1 == F_SETFL) {
-   Tvbf(" $'`1=F_SETFL %ld",arg);
-  } else {
+   Tvbf(" $'`1=F_SETFL %s",arg & O_NONBLOCK ? "O_NONBLOCK|..." : "~O_NONBLOCK&...");
+  } else if ($'`1 == F_GETFL) {
    Tvba(" $'`1=F_GETFL");
+  } else {
+   Tmust("$'`1","F_GETFL/F_SETFL",0);
   }')
  m4_define(`hm_arg_addr_in', `Tvba(" $'`1="); Tvbaddr($'`1,$'`2);')
  m4_define(`hm_arg_bytes_in', `')