X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=adns.git;a=blobdiff_plain;f=regress%2Fhcommon.c.m4;h=dfd0f280a55c431722fcb03e307aee43ecadc234;hp=17f6955a84cc122c3593799a733dc2b1c3907284;hb=b582ca0f999ffd51e26c5543d2023ea137af3bec;hpb=87dd63455668503e4f929e741856a3cfc880d570 diff --git a/regress/hcommon.c.m4 b/regress/hcommon.c.m4 index 17f6955..dfd0f28 100644 --- a/regress/hcommon.c.m4 +++ b/regress/hcommon.c.m4 @@ -2,12 +2,11 @@ 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 -m4_dnl Copyright (C) 1997-2000 Ian Jackson -m4_dnl -m4_dnl It is part of adns, which is -m4_dnl Copyright (C) 1997-2000 Ian Jackson -m4_dnl Copyright (C) 1999-2000 Tony Finch +m4_dnl This file is part of adns, which is +m4_dnl Copyright (C) 1997-2000,2003,2006 Ian Jackson +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 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 @@ -101,6 +100,10 @@ void Q$1(hm_args_massage($3,void)) { m4_define(`hm_arg_must', `') m4_define(`hm_arg_socktype', ` Tvbf($'`1==SOCK_STREAM ? " $'`1=SOCK_STREAM" : " $'`1=SOCK_DGRAM");') + m4_define(`hm_arg_addrfam', ` + Tvbf($'`1==PF_INET ? " $'`1=PF_INET" : + $'`1==PF_INET6 ? " $'`1=PF_INET6" : + " $'`1=AF_???");') m4_define(`hm_arg_ign', `') m4_define(`hm_arg_fd', `Tvbf(" $'`1=%d",$'`1);') m4_define(`hm_arg_fcntl_cmd_arg', ` @@ -114,7 +117,7 @@ void Q$1(hm_args_massage($3,void)) { m4_define(`hm_arg_addr_in', `Tvba(" $'`1="); Tvbaddr($'`1,$'`2);') m4_define(`hm_arg_bytes_in', `') m4_define(`hm_arg_bytes_out', `Tvbf(" $'`4=%lu",(unsigned long)$'`4);') - m4_define(`hm_arg_addr_out', `Tvbf(" *$'`2=%d",$'`2);') + m4_define(`hm_arg_addr_out', `') $3 hm_create_nothing @@ -130,11 +133,14 @@ m4_define(`hm_specsyscall', `') m4_include(`hsyscalls.i4') void Tvbaddr(const struct sockaddr *addr, int len) { - const struct sockaddr_in *ai= (const struct sockaddr_in*)addr; - - assert(len==sizeof(struct sockaddr_in)); - assert(ai->sin_family==AF_INET); - Tvbf("%s:%u",inet_ntoa(ai->sin_addr),htons(ai->sin_port)); + char buf[ADNS_ADDR2TEXT_BUFLEN]; + int err, port; + int sz= sizeof(buf); + + err= adns_addr2text(addr, 0, buf,&sz, &port); + assert(!err); + + Tvbf(strchr(buf, ':') ? "[%s]:%d" : "%s:%d", buf,port); } void Tvbbytes(const void *buf, int len) { @@ -309,9 +315,14 @@ void Hexit(int rv) { if (mallocedlist.head) { fprintf(stderr,"adns test harness: memory leaked:"); for (loopnode=mallocedlist.head; loopnode; loopnode=loopnode->next) - fprintf(stderr," %lu(%lu)",loopnode->count,(unsigned long)loopnode->sz); + fprintf(stderr," %lu",loopnode->count); putc('\n',stderr); if (ferror(stderr)) exit(-1); } exit(rv); } + +pid_t Hgetpid(void) { + return 2264; /* just some number */ +} +